【问题标题】:Best Way to Bulk Load the Data into Neo4J将数据批量加载到 Neo4J 的最佳方法
【发布时间】:2017-04-12 22:28:51
【问题描述】:

我们正在尝试将数百万个节点和关系加载到 Neo4j 中。我们目前正在使用以下命令

使用定期提交 从“file:customers.csv”作为行加载带有标题的 CSV CREATE (:Customer ....

但这需要我们很多时间。

我确实看到了一个解释直接修改 neo4j 文件的链接。 http://blog.xebia.com/combining-neo4j-and-hadoop-part-ii/

但上面的链接似乎很旧。想知道上述过程是否仍然有效?

“neo4j-spark-connector”Github 链接中存在问题。没有完全更新。

https://github.com/neo4j-contrib/neo4j-spark-connector/issues/15

其中最好的方法是什么?

【问题讨论】:

    标签: neo4j


    【解决方案1】:

    最快的方法,尤其是对于大型数据集,应该是通过import tool,而不是通过带有 LOAD CSV 的 Cypher。

    【讨论】:

      【解决方案2】:

      如果您使用 LOAD CSV,可能与 MERGE 一起使用,我强烈建议您添加唯一约束 - 对我们来说,它可以将小型导入(10 万个节点)速度提高 100 倍左右

      【讨论】:

        【解决方案3】:

        您可以使用 apoc 方法,这些方法可以更好地处理大型数据集。下面是一个示例密码查询

        CALL apoc.periodic.iterate(
            'CALL apoc.load.csv(file_path) YIELD lineNo, map as row, list return row',
            'MATCH (post:Post {id:row.`:END_ID(Post)`})
             MATCH (owner:User {id:row.`:START_ID(User)`})
             MERGE (owner)-[:ASKED]->(post);', 
            {batchSize:500, iterateList:true, parallel:true}
        );
        

        以下是文档链接: https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_examples_for_apoc_load_csv

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-06
          • 1970-01-01
          相关资源
          最近更新 更多