neo4j批量導入數據的兩種解決方案


neo4j批量導入數據有兩種方法,第一種是使用cypher語法中的LOAD CSV,第二種是使用neo4j自帶的工具neo4j-admin import。

LOAD CSV

導入的文件必須是csv文件,位置可以是本地的,或通過http、https、ftp等url指定位置。

neo4j中關於導入文件的設置是dbms.security.allow_csv_import_from_file_urls,默認為true;而導入本地文件的位置通過dbms.directories.import來指定導入的根目錄,然后再使用file:///來表示絕對路徑。

 示例一:不帶header,用下標來索引

給定artists.csv文件

1,ABBA,1992
2,Roxette,1986
3,Europe,1979
4,The Cardigans,1992

 輸入語句:

LOAD CSV FROM 'https://neo4j.com/docs/cypher-manual/3.5/csv/artists.csv' AS line
CREATE (:Artist { name: line[1], year: toInteger(line[2])})

示例二:帶header,用關鍵字來索引

給定artists-with-headers.csv文件

Id,Name,Year
1,ABBA,1992
2,Roxette,1986
3,Europe,1979
4,The Cardigans,1992

然后執行cypher語句:

LOAD CSV WITH HEADERS FROM 'https://neo4j.com/docs/cypher-manual/3.5/csv/artists-with-headers.csv' AS line
CREATE (:Artist { name: line.Name, year: toInteger(line.Year)})

示例三:大csv文件分批導入

USING PERIODIC COMMIT
LOAD CSV FROM 'https://neo4j.com/docs/cypher-manual/3.5/csv/artists.csv' AS line
CREATE (:Artist { name: line[1], year: toInteger(line[2])})

這里默認1000行提交一次,也可以人為指定,比如using periodic commit 500.

額外提示:如果值中包含引號,可以用""來表示".

可以發現使用load csv只能導入結點,如果還想導入關系數據,就只能靠neo4j自帶的import工具了。

neo4j-admin import

使用neo4j-admin import工具只能往空數據庫中導入數據,且csv文件必須在import目錄下。使用csv文件導入數據時,每個結點都必須有一個唯一的ID類屬性,但是最好不要起名為ID,這會和數據庫本身維護的ID字段沖突。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM