1. 程式人生 > >如何批量、快速從MySQL將節點和關係資料匯入neo4j

如何批量、快速從MySQL將節點和關係資料匯入neo4j

0 Neo4j簡介

安裝好neo4j後,啟動服務,可以訪問地址http://127.0.0.1:7474/browser/看到以下介面,點選*號,就可以看到至多50個節點了。主介面
這是neo4j的主介面,通過查詢資料節點的相關屬性、標籤和關係,即時的把節點間存在的關係展示出來。
neo4j中的資料分為兩種:node和relationship
每個node必須有:Label、ID,也可以有property
每個relationship有:Type,ID,也可以有property
在上方的輸入框,我們可以輸入類似sql的cypher-shell語句進行增刪改查等操作

同時,cypher-shell也有類似mysql client的終端:
cypher-shell終端


在終端上可以做類似mysql的查詢等操作
退出使用 :exit

當然,neo4j的功能遠不止這些

1 Neo4j安裝

  1. 官網下載地址下載neo4j對應版本
  2. 解壓即可使用
tar -xzvf neo4j-community-3.4.1-unix.tar.gz
  1. 啟動命令在解壓後文件夾的bin目錄下
啟動服務:bin/neo4j  start | console | stop | restart(啟動 | 控制檯 | 停止 | 重啟)
cypher命令列:bin/cypher-shell

注意:在ubuntu上可以使用sudo apt-get install neo4j安裝neo4j資料庫,但是可能會遇到匯入資料後無法開啟web頁面的情況。

2 使用neo4j-admin

neo4j-admin import是官方提供的批量匯入工具
建立幾個檔案: movies.csv、actors.csv、roles.csv

movies.csv
movieId:ID,title,year:int,:LABEL
tt0133093,"The Matrix",1999,Movie
tt0234215,"The Matrix Reloaded",2003,Movie;Sequel
tt0242653,"The Matrix Revolutions",2003,Movie;Sequel
actors.csv
personId:ID,name,:LABEL
keanu,"Keanu Reeves",Actor
laurence,"Laurence Fishburne",Actor
carrieanne,"Carrie-Anne Moss",Actor
roles.csv
:START_ID,role,:END_ID,:TYPE
keanu,"Neo",tt0133093,ACTED_IN
keanu,"Neo",tt0234215,ACTED_IN
keanu,"Neo",tt0242653,ACTED_IN
laurence,"Morpheus",tt0133093,ACTED_IN
laurence,"Morpheus",tt0234215,ACTED_IN
laurence,"Morpheus",tt0242653,ACTED_IN
carrieanne,"Trinity",tt0133093,ACTED_IN
carrieanne,"Trinity",tt0234215,ACTED_IN
carrieanne,"Trinity",tt0242653,ACTED_IN

執行下面的命令就可以匯入將資料匯入neo4j

rm -rf data/databases/graph.db/;  # 
neo4j_home$ bin/neo4j-admin import --nodes import/movies.csv --nodes import/actors.csv --relationships import/roles.csv

然後就可以看見文章開頭的頁面了

3. 從mysql匯入

待續

rm -rf data/databases/graph.db/;
./bin/neo4j-admin import --nodes /home/watson/crawl/company_info/qichacha.com/nodes_script/nodes.csv --relationships /home/watson/crawl/company_info/qichacha.com/nodes_script/relationships.csv --ignore-duplicate-nodes --ignore-extra-columns true;
./bin/neo4j restart