我在远程服务器上有一个mysql数据库,我试图迁移到Neo4j数据库。为此,我将各个表转储到csv文件中,现在我正计划使用LOAD CSV功能从表中创建图形。
如何加载每个表来保留表之间的关系? 换句话说,如何为整个数据库而不仅仅是单个表生成图形?
答案 0 :(得分:0)
运行“all all”,这将创建一个大型事务,不会完成,并且很可能会因堆错误而崩溃。解决该问题需要先加载CSV,然后分批创建10K-100K事务块中的关系。
实现这一目标的一种方法是:
MATCH (a:LabelA)
MATCH (b:LabelB {id: a.id}) WHERE NOT (a)-[:RELATIONSHIP]->(b)
WITH a, b LIMIT 50000
MERGE (a)-[:RELATIONSHIP]->(b)
这样做的结果是:LabelB记录与:LabelA记录没有关系,然后为它找到的前50,000条记录创建该关系。反复运行这将最终创建您想要的所有关系。