0
py2neo (v 3.1.2)와 함께 python 3을 사용하여 MySQL에서 많은 양의 데이터를 Neo4j에 삽입하고 있습니다. MySQL의 테이블에는 약 2 천만 개의 행이 있습니다. 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-> Neo 삽입 경로를 사용해야합니까? – Jmj