小编Iva*_*nko的帖子

使用 py2neo 上传数据的最佳方式

我尝试过使用 py2neo 上传中等大小数据集的方法。就我而言,每天需要加载大约 80 K 个节点和 400 K 个边。我想分享我的经验,并向社区询问是否还有我没有遇到的更好的方法。

A. py2neo 的“本机”命令。

使用 创建节点graph.merge_one()并使用 设置属性push()。我很快就忽略了这一点,因为它非常慢,甚至在几分钟内都不会超过 10 K 记录。毫不奇怪,py2neo 的文档和这里的一些帖子推荐使用 Cypher。

B. 不分区的密码

py2neo.cypher.CypherTransaction append()在循环中和commit()最后使用。

# query sent to MSSQL. Returns ~ 80K records
result = engine.execute(query) 
statement = "MERGE (e:Entity {myid: {ID}}) SET e.p = 1"
# begin new Cypher transaction
tx = neoGraph.cypher.begin()
for row in result:
    tx.append(statement, {"ID": row.id_field})
tx.commit()
Run Code Online (Sandbox Code Playgroud)

这会超时并使 Neo4j 服务器崩溃。我知道问题是所有 80 K Cypher 语句都试图一次性执行。

C. 具有分区和一次提交的 …

neo4j py2neo

7
推荐指数
1
解决办法
814
查看次数

标签 统计

neo4j ×1

py2neo ×1