0
我使用python 3與py2neo(v 3.1.2)一起將大量數據從MySQL插入到Neo4j。 MySQL中的表格大約有2000萬行。 我想按照neo4j網站上的建議,在不將MySQL數據轉換爲CSV的情況下進行插入操作。大數據集從MySQL插入到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>
有人可以解釋這個錯誤意味着什麼以及如何解決這個問題?
我不認爲這會工作。在沒有聲明事務對象的情況下,如何創建前10000個節點(因爲你已經在if條件下初始化了它)? – Jmj
我試過了。再次遇到同樣的錯誤。它與neo向db添加節點的速度有關,這可能比形成下一批插入所花費的時間多嗎? – Jmj
嘿,我的壞,我設置了一個錯誤的值。現在工作正常,謝謝!在一個側面說明,這種方法是可行的這種大型數據庫或我真的應該去SQL轉儲 - > CSV->新插入路線? – Jmj