Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将MYSQL数据库导入NeO4j_Mysql_Csv_Graph_Neo4j_Foreign Key Relationship - Fatal编程技术网

将MYSQL数据库导入NeO4j

将MYSQL数据库导入NeO4j,mysql,csv,graph,neo4j,foreign-key-relationship,Mysql,Csv,Graph,Neo4j,Foreign Key Relationship,我在一个远程服务器上有一个mysql数据库,我正试图将其迁移到Neo4j数据库中。为此,我将各个表转储到csv文件中,现在计划使用LOAD csv功能从表中创建图形 加载每个表如何保持表之间的关系? 换句话说,如何为整个数据库而不仅仅是单个表生成一个图形 将每个表作为CSV加载 在您的关系字段上创建索引(Neo4j只做单个属性索引) 使用MATCH()查找表之间的相关记录 使用MERGE(a)-[:RELATIONSHIP]->(b)创建表之间的关系 运行“一次完成”,这将创建一个大型事务,不会

我在一个远程服务器上有一个mysql数据库,我正试图将其迁移到Neo4j数据库中。为此,我将各个表转储到csv文件中,现在计划使用LOAD csv功能从表中创建图形

加载每个表如何保持表之间的关系? 换句话说,如何为整个数据库而不仅仅是单个表生成一个图形

  • 将每个表作为CSV加载
  • 在您的关系字段上创建索引(Neo4j只做单个属性索引)
  • 使用MATCH()查找表之间的相关记录
  • 使用MERGE(a)-[:RELATIONSHIP]->(b)创建表之间的关系 运行“一次完成”,这将创建一个大型事务,不会进入完成阶段,很可能会因堆错误而崩溃。要解决这个问题,首先需要加载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)
    

    这样做的目的是找到与:LabelA记录没有关系的:LabelB记录,然后为它找到的前50000条记录创建该关系。反复运行此操作最终将创建您想要的所有关系

    有关如何将Northwind数据集导入Neo4j的示例,请参阅。感谢Tim,在首次导入后如何保持数据同步?您必须转储增量、执行完全转储并刷新数据库,或者在更新sql数据库时更改应用程序以更新图形数据库。