簡體   English   中英

Neo4J批量創建關系

[英]Neo4J bulk create relationships

CSV是加快我的批量關系創建速度的唯一選擇嗎?

我在互聯網上閱讀了很多文章,而且它們都在講述CSV。 CSV肯定會提高我的性能( 您能猜想它有多大? ),但是我不確定我是否可以CSV格式存儲數據。 還有其他選擇嗎? 使用Neo4J 3 BOLT協議能給我帶來多少收益?

我的程序

我正在使用Neo4j 2.1.7。 我嘗試一次創建大約50000個關系。 我以10000的大小批量執行查詢,插入所有50000大約需要120-140秒

我的查詢看起來像:

MATCH (n),(m) 
WHERE id(n)=5948 and id(m)=8114 
CREATE (n)-[r:MY_REL {
    ID:"4611686018427387904",
    TYPE: "MY_REL_1"
    PROPERTY_1:"some_data_1",
    PROPERTY_2:"some_data_2",
    .........................
    PROPERTY_14:"some_data_14"
}]->(m) 
RETURN id(n),id(m),r

正如文檔中所寫:

Cypher支持使用參數查詢。 這意味着開發人員不必借助字符串構建來創建查詢。 除此之外,它還使Cypher緩存執行計划變得更加容易。

因此,您需要將數據打包為參數並通過密碼查詢傳遞:

UNWIND {rows} as row
MATCH (n),(m) 
WHERE id(n)=row.nid and id(m)=row.mid
CREATE (n)-[r:MY_REL {
    ID:row.relId,
    TYPE:row.relType,
    PROPERTY_1:row.someData_1,
    PROPERTY_2:row.someData_2,
    .........................
    PROPERTY_14:row.someData_14
}]->(m) 
RETURN id(n),id(m),r

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM