Sql server 从SQL Server迁移到neo4j,是否有类似于SSMS的东西可以将数据导入neo4j

Sql server 从SQL Server迁移到neo4j,是否有类似于SSMS的东西可以将数据导入neo4j,sql-server,neo4j,data-migration,arangodb,Sql Server,Neo4j,Data Migration,Arangodb,我正在从SQL Server迁移到Neo4J(或ArangoDB,更具挑战性),目前正在使用Windows堆栈和C#。我在github[]上看到了批量导入器 这个util是一个导出工具,但我不知道rels.csv和nodes.csv在导出端的位置(我在导入到neo4j时看到)。这是util中的一个选项,还是我告诉SSMS(SQLServerManagementStudio)创建的内容。更具体地说,从SQL RDB的角度来看,REL和节点的区别是什么 要迁移数据-我需要遵循哪些选项/步骤,设置以便

我正在从SQL Server迁移到Neo4J(或ArangoDB,更具挑战性),目前正在使用Windows堆栈和C#。我在github[]上看到了批量导入器

这个util是一个导出工具,但我不知道
rels.csv
nodes.csv
在导出端的位置(我在导入到neo4j时看到)。这是util中的一个选项,还是我告诉SSMS(SQLServerManagementStudio)创建的内容。更具体地说,从SQL RDB的角度来看,REL和节点的区别是什么

要迁移数据-我需要遵循哪些选项/步骤,设置以便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是否转化为关系或标签

我将尝试为您的具体问题提供简短、简洁的答案,但关于数据建模主题,您需要阅读一些背景知识。为了一个好的介绍。我不是在这里告诉你全部情况,因为你问的是一个需要深入回答的问题。这就是答案

  • 架构表是否映射到节点?某种程度上说,是的——我想说的是,在关系数据库中,“实体”映射到节点。请注意,“实体”和“表”由于规范化和许多其他因素而不是一回事。此外,并不是所有的模式表都映射到一个节点,特别是因为表中包含了在neo4j中不会使用的PKs/FKs(稍后将对此进行详细介绍)

  • 表列/属性是否映射到neo4j中的(表)节点。不,他们没有。属性映射到节点属性,但也有许多例外。特别是,在关系数据库中用于连接事物的任何属性都可能映射到neo4j关系,而不是节点属性

  • FK和PK是否转化为关系或标签?它们映射到关系。任何类型的连接通常都会转化为节点之间的关系


  • 关于如何将图形数据导入ArangoDB,我只能给出一个一般性的答案。也要核对答案。有关更具体的答案,请联系“黑客(位于)arangodb.org”

    通常,sql模式对应于一些实体,这些实体作为C#对象可见。类层次结构的建模可以用不同的方式完成。该实体将与ArangoDB中的文件相对应

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

    现在一个人和一辆车之间可能存在某种关系。这与上面的示例不同-同样使用外键。在这种情况下,您将在ArangoDB中的两个文档之间创建一条边


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

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

    关于#2->因此列在图形世界中的转换/映射位置。如何将表中的牵引力组件保持在一起或分组(就像它们在表中一样,通过列)。列成为节点属性。因此,“employees”表可能成为一组带有标签
    Employee
    的节点。employees表的“fname”属性在标记为
    Employee
    的节点上成为一个名为“fname”的属性,我认为节点应该是一个列,记录应该是它的一个实例。从您的评论中,我看到节点就是实例,
    schema
    必须在应用程序外部维护(意识到我们不必遵循模式。是的,你绝对正确,一个单独的节点就像数据库中的一个实例记录,而不是一个表。因为它们是混合的,我不知道导出什么,导入到哪里,文档保存数据还是节点……我在他们的网站上浏览了很多次,没有任何指导,我的朋友也写道1)Arrango面临的挑战是缺少工具,我发现Neo4j在这里更为成熟。然而,Arrango的体系结构及其混合特性更具吸引力。如果我们能与.Net一起工作并轻松维护升级路径,那该多好。2)Arrango相对较新,当我支持新事物时,我总是处于尴尬的境地!3) 我还想与大家分享Arrango的案例——虽然我真的很喜欢他们,但初创公司的许可模式非常高,所以我们考虑使用lucene或mongo的弹性搜索(但它们不是graphDB)。在适用性方面,我相信ArrangoDb可以超越Neo4j。。。不确定集成和使用的易用性!如果你写信给“黑客(at)arangodb.org”,你通常会在一天内收到回复。请记住可能会有时差。我认为这里的挑战是,你需要“切换”你的建模方法(在任何情况下)。工具可以帮上一点忙,但我认为不会自动