如何在不使用LOAD CSV
的情况下将数据从SQL Server迁移到Neo4j?
其他工具不按模式进行完整转换,只是一个示例(例如:ETL)。如果有一些东西可以通过节点js应用程序完成,那将是很棒的。
如何在SQL Server和Neo4j之间保持数据同步?
答案 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
中提供了更多信息
<强>的Neo4j-ETL成分强>
neo4j-etl-components
是一个
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.jdbc
或neo4j-etl-components
运行导入的增量版本。