从SQL Server迁移到neo4j,就像SSMS一样将数据导入neo4j

时间:2014-10-15 18:40:29

标签: sql-server neo4j data-migration arangodb

我正在从SQL Server迁移到Neo4J(或ArangoDB,更具挑战性),目前正在使用Windows堆栈和C#。我在github [https://github.com/jexp/batch-import/tree/20]上看到了批量导入器。

这个util是一个导出工具,但我无法弄清楚导出端rels.csvnodes.csv的位置(我在导入到neo4j时看到它)。这是util中的一个选项,还是我告诉SSMS(SQL Server Management Studio)创建的内容。更具体地说,从SQL RDB的角度看,rels和节点的区别是什么?

要迁移数据 - 我需要遵循哪些选项/步骤,设置以便我可以1)从SQL Server导出2)导入到可以轻松使用.netdriver / client的Neo4j中?

以下是我对导入的了解,但不是出口方面的知识。

batch_import.nodes_files=nodes1.csv[,nodes2.csv]
batch_import.rels_files=rels1.csv[,rels2.csv]

是否有一个导入工具,如Neo4j中的SSMS导入,这将有助于此并将关系转换/保持为节点的节点

我这样思考是否正确 -

  • 架构表是否映射到节点?
  • 表列/属性是否映射到neo4j
  • 中的(表)节点
  • FK和PK是否转化为关系或标签?

3 个答案:

答案 0 :(得分:1)

我将尝试为您的具体问题提供简明扼要的答案,但在数据建模主题方面,您需要阅读一些背景知识。 Check out Data Modeling in Graphs有一个很好的介绍。我不是在这里给你讲完整个故事,因为你问的是一个需要深入回答的问题。那个简报就是答案。

  1. 架构表是否映射到节点?排序,是的 - 我想说的方式更多的是在关系数据库中,“实体”映射到节点。请注意,由于规范化和许多其他因素,“实体”和“表格”实际上并不相同。此外,并非所有模式表都映射到节点,特别是因为表包含了你不会在neo4j中使用的PK / FK之类的东西(稍后会详细介绍)

  2. 表列/属性是否映射到neo4j中的(表)节点。不,他们没有。属性映射到节点属性,但有许多例外。特别是,您用于在关系数据库中加入内容的任何属性都可能映射到neo4j关系,而不是节点属性。

  3. FK和PK是否会转化为人际关系或实验室?他们映射到关系。任何类型的连接通常都会转化为节点之间的关系。

答案 1 :(得分:0)

我只能就如何将图形数据导入ArangoDB给出一般答案。还要结帐FrobberOfBits的答案。如需更具体的答案,请联系“hackers(at)arangodb.org”。

通常,sql架构对应于某些实体,这些实体作为C#对象可见。类层次结构的建模可以以不同方式完成。这样的实体将对应于ArangoDB中的文档。

例如:对车辆,汽车和摩托车进行建模的一种方法是使用三张桌子。一个用于超类,两个用于子类。将有外键将子类数据链接到超类数据。在ArangoDB中,只有车辆类,文件包含的属性因车辆或摩托车而异。

现在可能存在人与车之间的关系。这与上面的例子不同 - 也使用外键。在这种情况下,您将在两个文档之间的ArangoDB中占优势。

因此,您需要导出以创建所有文档(实体)和所有边(关系)。然后,您可以使用“arangoimp”将这些文件导入ArangoDB。

答案 2 :(得分:0)

您可以使用sql server management studio的导出数据工具从sql server导出数据。然后你可以使用 neo4j-admin 工具来导入这些 CSV 文件。但另外,您应该创建头 CSV 文件来描述节点属性和关系。对于关系CSV文件,您应该编写sql查询并再次使用sql server management studio的导出数据工具生成CSV文件。