所以我正在嘗試獲取一個默認的通用資料庫表。在 MySQL 中,我可以洗掉整個資料庫并運行我的代碼以再次生成默認資料庫。例如 MySQL 的唯一檔案 -> wwfsaew.sql
DROP DATABASE IF EXISTS wwfsaew;
CREATE DATABASE IF NOT EXISTS wwfsaew;
CREATE TABLE Flughafen (...)
...
INSERT INTO Flughafen (...)
...
UPDATE Flughafen SET ...
...
CREATE VIEW ...
...
CREATE PROCEDURE ...
...
但是在 Neo4J 中同樣的方法不起作用。我總是收到錯誤訊息:“Neo.TransientError.General.OutOfMemoryError”
LOAD CSV WITH HEADERS FROM
'file:///C:/Users/Enes/CSV_import/ingredients.csv'
AS a
LOAD CSV WITH HEADERS FROM
'file:///C:/Users/Enes/CSV_import/users.csv'
AS b FIELDTERMINATOR ';'
LOAD CSV WITH HEADERS FROM
'file:///C:/Users/Enes/CSV_import/recipes.csv'
AS c FIELDTERMINATOR ';'
CREATE (ing:ingredients{name:a.ingredientName,
ingredientName:a.ingredientName})
CREATE (use:users{
name:b.userName,
userName:b.userName,
userEmail:b.userEmail,
userPassword:b.userPassword,
enabled:b.enabled})
CREATE (rec:recipe{
name:c.recipeName,
recipeName:c.recipeName,
prepTimeInMin: c.prepTimeInMin,
restTimeInMinutes: c.restTimeInMinutes,
prepText: c.prepText,
people: c.people,
viewCount: c.viewCount,
difficultyName: c.difficultyName,
mealTypeName: c.mealTimeName,
createdByUser: c.createdByUser})
我不知道為什么它不能這樣作業,因為它自己的每個子查詢都是~20ms。我試過了,USING PERIODIC COMMIT 250但它拋出了一個語意錯誤,因為它是一個顯式事務而不是隱式事務。所以我的問題是:我怎樣才能只獲得一個 .cypher 或 .csv 檔案來在 Neo4J 中運行它以獲得默認的 GraphDatabase。
uj5u.com熱心網友回復:
您的查詢拋出一個,OutOfMemoryError因為您試圖一起匯入 3 個 csv,這樣總行數將是三個 CSV 的笛卡爾積。也就是說,如果您有 3 個包含 50 行的 csv,您將從前load csv50 個結果中收到,每個結果都有第二個load csv50 個結果,每個結果有第三個 50 個結果。因此,您將獲得 50x50x50 的結果。嘗試一次匯入一個csv,USING PERIODIC COMMIT NNN以防萬一,即:
LOAD CSV WITH HEADERS FROM
'file:///C:/Users/Enes/CSV_import/ingredients.csv'
AS a
CREATE (ing:ingredients{name:a.ingredientName,
ingredientName:a.ingredientName})
LOAD CSV WITH HEADERS FROM
'file:///C:/Users/Enes/CSV_import/users.csv'
AS b FIELDTERMINATOR ';'
CREATE (use:users{
name:b.userName,
userName:b.userName,
userEmail:b.userEmail,
userPassword:b.userPassword,
enabled:b.enabled})
LOAD CSV WITH HEADERS FROM
'file:///C:/Users/Enes/CSV_import/recipes.csv'
AS c FIELDTERMINATOR ';'
CREATE (rec:recipe{
name:c.recipeName,
recipeName:c.recipeName,
prepTimeInMin: c.prepTimeInMin,
restTimeInMinutes: c.restTimeInMinutes,
prepText: c.prepText,
people: c.people,
viewCount: c.viewCount,
difficultyName: c.difficultyName,
mealTypeName: c.mealTimeName,
createdByUser: c.createdByUser})
編輯:
:auto USING PERIODIC COMMIT 200
LOAD CSV WITH HEADERS FROM
'file:///ingredients.csv'
AS a
CREATE (ing:ingredients{name:a.ingredientName,
ingredientName:a.ingredientName})
with 1 as ignored limit 1
LOAD CSV WITH HEADERS FROM
'file:///users.csv'
AS b FIELDTERMINATOR ';'
CREATE (use:users{
name:b.userName,
userName:b.userName,
userEmail:b.userEmail,
userPassword:b.userPassword,
enabled:b.enabled})
with 1 as ignored limit 1
LOAD CSV WITH HEADERS FROM
'file:///recipes.csv'
AS c FIELDTERMINATOR ';'
CREATE (rec:recipe{
name:c.recipeName,
recipeName:c.recipeName,
prepTimeInMin: c.prepTimeInMin,
restTimeInMinutes: c.restTimeInMinutes,
prepText: c.prepText,
people: c.people,
viewCount: c.viewCount,
difficultyName: c.difficultyName,
mealTypeName: c.mealTimeName,
createdByUser: c.createdByUser})
return 1 limit 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/490634.html
