gpt4 book ai didi

python - 从 MySQL 插入 Neo4j 的大数据集

转载 作者:行者123 更新时间:2023-11-29 19:21:29 25 4
gpt4 key购买 nike

我使用 python 3 结合 py2neo (v 3.1.2) 将大量数据从 MySQL 插入到 Neo4j。 MySQL 中的表大约有 2000 万行。 我想在不将 MySQL 数据转换为 CSV 的情况下进行插入,如 Neo4j 网站上的建议。

我的代码如下所示:

transaction=graph_db.begin()
sql="SELECT id FROM users"
cursor.execute(sql)
user_data=cursor.fetchall()
count=1
for row in user_data:
user_node=Node("User",user_id=row[0])
transaction.create(user_node)
if count%10000==0:
transaction.commit()
count=count+1

目标是批量插入 10000 个。但是事务在第一次迭代(第一次插入 10k 批量)后崩溃了。错误如下:

raise TransactionFinished(self)
py2neo.database.TransactionFinished: <py2neo.database.BoltTransaction object at 0x104e36588>

有人可以解释一下这个错误的含义以及如何解决这个问题吗?

最佳答案

我不懂python,但问题是你在循环中提交事务并没有打开它:

sql="SELECT id FROM users"
cursor.execute(sql)
user_data=cursor.fetchall()
count=1
for row in user_data:
if count%10000==1:
transaction=graph_db.begin()
user_node=Node("User",user_id=row[0])
transaction.create(user_node)
if (count%10000==0) or (count==len(user_data)):
transaction.commit()
count=count+1

关于python - 从 MySQL 插入 Neo4j 的大数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42416339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com