0
データベースに5800万のノードと1億の関係がすでに存在しているとします。 Person(cstid):Neo4jでcsvとマージデータをロードするときのヒントの使用方法
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///path/to/data.csv' AS row FIELDTERMINATOR '\t'
MERGE (n:Person {cstid: row.cstid})
ON CREATE SET n.name = row.name
ON MATCH SET n.name = row.name;
はまた、上の固有の制約があった:
は、その後、私は130万のノードと以下のようなLOADのCSV方法を経由して100万人の関係が含まれているデルタバッチデータをロードしたいです私はそれを使用したくないです。だから私は、以下のようなSCANヒントを使用してみました:
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///path/to/data.csv' AS row FIELDTERMINATOR '\t'
MERGE (n:Person {cstid: row.cstid})
USING SCAN n:Person
ON CREATE SET n.name = row.name
ON MATCH SET n.name = row.name;
しかしのNeo4jだけで、警告を投げる直接要求して終了を終了します。
WARNING: Invalid input 's': expected 'n/N' (line 3, column 2 (offset: 154))
"using scan n:Person"
^
私はINDEXヒントを指定すると、この現象も存在します:
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///path/to/data.csv' AS row FIELDTERMINATOR '\t'
MERGE (n:Person {cstid: row.cstid})
USING INDEX n:Person(cstid)
ON CREATE SET n.name = row.name
ON MATCH SET n.name = row.name;
だから... Neo4jはMERGE節でヒントを使用してサポートしていますか?
のNeo4j:3.2.0 CE
[1]とは何ですか? –
これは、単一の値(これは無視されます)を含むコレクションで、 '|'の後に操作が実行されます(この場合、一度)。 'FOREACH'は' NULL'値または空のコレクションを反復するように要求された場合は何もしません。 – cybersam