Neo4j Import 數據導入

    使用import導入數據時需要注意CSV文件分爲兩種節點和關係兩種數據規範。節點CSV文件數據格式如下:


圖1. 節點CSV文件數據格式

    節點CSV文件數據格式從左到右分爲命名標識、屬性信息、標籤信息三個部分。命名標識類似於唯一標識,它的類型是ID類型,用戶可以爲命名標識自定義名稱,在準備數據時,每一條數據的命名標識必須是惟一的,不能出現重複的標識信息,否則會影響關係信息的創建。屬性信息這一列,用戶可以自定義每一個節點具備的屬性名,每一個屬性名數據類型可設定爲字符串、字符數組、長整型等類型,用戶沒有設定屬性名類型時系統默認其類型爲String類型,具體屬性名數據類型請參照Neo4j官網;標籤信息對應的是節點所屬的類別信息,這一項名稱固定寫爲:LABEL(:label),該列下記錄的值均會作爲圖譜中每個類別信息,對於一個實體屬於多種類別時,可通過分號‘;’作爲分隔符標識出不同的類別信息,這一特性可以用來表示本體中特有的父子類關係。

    關係CSV文件數據格式如圖2,其分爲關係起始節點、關係終止節點、關係屬性信息及關係類型。關係起始和終止節點記錄的是節點信息命名標識的內容,指明哪些實體之間具有關係,若起始和終止節點內容一樣,關係會指向節點本身;關係屬性信息爲關係增加了多種描繪數據的維度特性,這也是Neo4j具有特點的數據表示方式,我們可以更加靈活的通過時間等屬性值來過濾關係;關係類型固定爲:TYPE,其屬性值爲一對一。


圖2. 關係CSV文件數據格式

    準備好數據後,進入Neo4j根目錄下使用Neo4j-admin執行import命令,在執行命令時推薦使用絕對路徑,import調優參數很多,內存、數據類型指定、數據編碼格式等處理的參數不在這一一敘述了,其默認的參數足夠大多數人進行使用了,想要具體瞭解的可以官網進行了解https://neo4j.com/docs/operations-manual/3.4/tools/import/options/,此處只介紹基本通用的的參數:


圖3. import 格式

  1. Nodes參數指定需要導入到節點信息,當存在多種相同類型的節點信息文件時,你可以通過多次書寫nodes配合路徑進行導入,也可以使用--nodes “<path><node_csv_file1>,…,<path><node_csv_filen>”進行導入,第二種方法在導入時只需要在第一個CSV文件中聲明好數據格式即可,後續的CSV文件系統會將其所有數據默認爲與第一個CSV文件聲明的數據格式保持一致,這裏的相同類型指的是所有文件存儲的數據格式一致、類型一致,只是由於某些原因將數據分開進行了存儲。若實體一擁有一種屬性,實體二具有兩種屬性,則這兩個實體不屬於相同類型。
  2. Relationships參數建議一個關係csv文件對應一個參數。
  3. Database顧明思議記錄生成的neo4j圖數據文件名稱,雖然後綴爲db,但它是一個文件夾,對於數據庫文件生成的位置若在neo4j.conf配置文件中未設置dbms.directories.data參數的話,默認生成位置爲neo4j根目錄下data文件夾下。
  4. ignore-duplicate-nodes和ignore-missing-nodes是最常用的參數,分別起着忽略重複節點和缺失數據處理作用,避免重複節點的創建和空關係的創建影響數據質量及使用,不過不要過度依賴這兩個參數,程序不是萬能的,只有數據預處理好了才能最終保證數據的質量,從而更好的構建高質量的圖譜並進行應用。

    Neo4j通過import導入數據後,命令行會有相應的提示,此時通過Neo4j自身前臺界面7474端口即可訪問,在進行後續的數據查詢時別忘了使用create index on :LABEL(Property)進行索引的建立來提升圖譜數據的查詢效率。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章