【问题标题】:Appending to the dataset in neo4j在 neo4j 中附加到数据集
【发布时间】:2016-07-01 10:56:55
【问题描述】:

我已经使用 neo4j 导入工具批量导入了大约 45k 节点和 40k 关系。现在可以随时将数据添加到我的数据库中,并且大小将不断扩大。有没有办法附加新数据(这也将非常大)到使用导入工具的现有数据库......? 注意:我曾尝试使用 LOAD CSV,但由于我的数据大小,它非常慢。

【问题讨论】:

    标签: database import neo4j graph-databases


    【解决方案1】:

    由于它绕过事务并直接写入文件存储,neo4j-import 工具仅用于初始数据导入。

    对于增量批量更新LOAD CSV 是从 CSV 加载的选项。您还可以在单​​个事务中组合操作以提高写入吞吐量。通常每个事务运行 10k-50k 数据库操作是安全的。

    你说LOAD CSV 太慢了。 CSV 文件中有多少行?您是否使用索引进行任何查找?可以分享一下LOAD CSV 语句吗?

    【讨论】:

    • 我使用的 csv 命令包括:​​从 "file:///node_person_l.csv" AS csvLine MERGE (u:User { email: csvLine.email}) 中加载带有标题的 CSV (u:User { email: csvLine.email}),u。名称 = csvLine.name;并且 csv 文件有 5000 个节点,这需要将近一分钟才能完成。另外,您对创建跨不同 csv 文件编写的各种节点之间的关系有什么建议吗??
    • 你有用户(电子邮件)的索引吗?
    • no..我想为用户节点创建索引作为属性,就像每个节点都有一个属性 user_id 我将手动分配..
    • 您应该在用户(电子邮件)上创建唯一性约束:CREATE CONSTRAINT ON (u:User) ASSERT u.email IS UNIQUE; 这将 1)确保没有重复的用户电子邮件值和 2)创建索引以提高性能。请参阅the docs 了解更多信息
    • 非常感谢..William Lyon
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 2020-05-05
    • 2017-02-10
    • 1970-01-01
    • 2022-01-09
    相关资源
    最近更新 更多