Neo4j: 遷移MySQL的數據到Neo4j

目的: 用於社交關係的管理和維護. 社交關係是一種網狀的關係圖, RDBMS難於維護這樣的數據.

安裝和配置

須要知足下面幾個條件java

安裝 APOC插件mysql

clipboard.png

設置一下環境變量git

NEO4J_INSTALL_PATH=/path/to/neo4j

安裝插件和JDBC驅動
把mysql-connector-java-8.0.11.jar複製到Neo4j安裝目錄中的plugins子目錄下.github

cp mysql-connector-java-8.0.11.jar $NEO4J_INSTALL_PATH/plugins

重啓Neo4jsql

如何使用

使用 apoc.load.driver 存儲過程加載驅動數據庫

call apoc.load.driver('com.mysql.jdbc.Driver')

clipboard.png

執行MySQL查詢, 並在Neo4j建立節點(頂點)和關係(邊)服務器

CALL apoc.load.jdbc(
  'jdbc:mysql://localhost/db?user=root&password=root&useUnicode=true&characterEncoding=utf8',
  'select * from users_copy'
) YIELD row
CREATE (n:User {uuid: row.uuid, user_id: row.user_id, name: row.name})

clipboard.png

說明: 調用 apoc.load.jdbc 存儲過程鏈接到MySQL服務器, 數據庫名稱爲 db, 用戶名和密碼都爲 root, 鏈接到數據庫後執行查詢 select * from users, 針對結果集的每一行, 產生一個 user 變量. 針對每一個 user 變量, 執行 Cypher 語句: CREATE (n:User {name: user.name}) 把 User 節點插入到 Neo4j 中

錯誤處理

若是出現以下錯誤:ide

No suitable driver found for jdbc:mysql://localhost:3306/db?user=root&password=root

須要檢查:ui

  • 是否正確安裝了APOC插件
  • JDBC驅動是否安裝到了正確的位置
  • 是否是沒有重啓Neo4j服務器.

參考資料

Neo4j 支持各類類型的數據源, 包括數據庫, JSON, ElasticSearch, XML等. 參考APOC User Guide 的 Data Integration 章節.spa

相關文章
相關標籤/搜索