2017-08-27 90 views
1

如何在不使用LOAD CSV的情況下將數據從SQL Server遷移到Neo4j?將SQL Server數據遷移到Neo4j並保持兩個數據庫的數據同步

其他工具不能根據模式給出完整的轉換,只是一個示例(例如:ETL)。如果有一些可以用節點js應用程序完成的事情,那將會很棒。

另外如何保持SQL Server和Neo4j之間的數據同步?

+0

apoc.load.jdbc是你的朋友...檢查出來 –

回答

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。

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和Github的頁面項目here.

同時要同步

一旦你這樣做的初始導入當然你需要保持數據同步。一種選擇是在應用程序層處理這個問題,寫入到負責寫入兩個數據庫的工作人員的隊列中,或使用apoc.load.jdbcneo4j-etl-components運行增量版本的導入。

相關問題