将SQL Server数据迁移到Neo4j并使两个数据库的数据保持同步

时间:2017-08-27 07:54:40

标签: node.js sql-server-2008 neo4j

如何在不使用LOAD CSV的情况下将数据从SQL Server迁移到Neo4j?

其他工具不按模式进行完整转换,只是一个示例(例如:ETL)。如果有一些东西可以通过节点js应用程序完成,那将是很棒的。

如何在SQL Server和Neo4j之间保持数据同步?

1 个答案:

答案 0 :(得分:0)

您可以在此处选择一些选项:apoc.load.jdbc是一个选项,还有neo4j-etl-components项目。

<强> apoc.load.jdbc

可以连接到关系数据库,并将APOC procedure library中可用的Cypher内的SQL查询结果流式传输到Neo4j。

例如:

// Create Product nodes
CALL apoc.load.jdbc("jdbc:mysql://localhost:3306/northwind?user=root","SELECT * FROM products") YIELD row 
CREATE (p:Product {ProductID: row.ProductID})
SET p.ProductName = row.ProductName,
    p.CategoryID  = row.CategoryID,
    p.SupplierID  = row.SupplierID

docs.

中提供了更多信息

<强>的Neo4j-ETL成分

neo4j-etl-components是一个

的工具
  1. 检查现有的关系数据库架构
  2. 将规则应用于此架构以转换为属性图模型
  3. (可选)提供GUI界面,用于编辑应如何应用此翻译
  4. 从关系数据库导出流以创建新的Neo4j数据库(脱机批处理)或在Neo4j中进行在线增量插入。
  5. neo4j-etl-components可用作命令行工具。例如,要运行初始批量导入:

    ~: $NEO4J_HOME/bin/neo4j-etl export  \
      --rdbms:url jdbc:oracle:thin:@localhost:49161:XE \
      --rdbms:user northwind --rdbms :password northwind \
      --rdbms:schema northwind \
      --using bulk:neo4j-import \
      --import-tool $NEO4J_HOME/bin  \
      --csv-directory /tmp/northwind \
      --options-file /tmp/northwind/options.json \
      --quote '"' --force 
    

    请参阅项目here

    的文档here.和Github页面

    保持同步

    完成初始导入课程后,您需要保持数据同步。一种选择是在应用程序层处理此问题,使用负责写入两个数据库的工作人员写入队列,或使用apoc.load.jdbcneo4j-etl-components运行导入的增量版本。