2.5.3 使用Load CSV指令導入到Neo4j
Neo4j提供了Load CSV命令幫助我們將CSV數據文件導入到Neo4j中,下面給出幾個讀取CSV文件但不存入數據庫的例子。
2.5.3.1 簡單導入CSV數據
以下將使用Load CSV指令讀取但不存入數據庫:

上述例子僅僅用來讀取CSV文件,并沒有將數據存入到數據庫中。下面介紹Load CSV的用法。
LOAD CSV FROM "file-url" AS line,這條指令將指定路徑下的CSV文件讀取出來,其中file-url是文件的地址,可以是本地文件路徑也可以是網址,只要能從地址中讀取到CSV文件即可,因此也可以這樣寫:

這樣就可以讀取網址指定的movie.csv文件。
或者可以使用本地文件路徑:

這樣就可以讀取到E:/products.csv文件。
如果把CSV文件放置在Neo4j系統路徑的import文件夾內,則不需要指定CSV文件的路徑,語句如下所示,可以讀取到放入import文件夾內的products.csv文件。

RETURN語句是用來返回并顯示結果到結果顯示區的語句。
LIMIT語句是用來限制返回的行數。
現在我們可以讀取CSV文件了,但是數據并沒有存入到數據庫中。要將數據存入到Neo4j數

執行完上面語句后,會看到結果顯示區顯示了所創建的節點數量,如圖2-95所示。

圖2-95 顯示區顯示了所創建的節點數量
然后,用以下語句來查看數據庫中是否已經有導入的數據:

運行上面語句后,可以得到如圖2-96所示的結果。

圖2-96 查詢導入后結果
如果我們的結果如上圖所示,則說明數據已經導入成功了。
2.5.3.2 導入CSV時附帶表頭
下例介紹如何在導入CSV時附帶上表頭。

上述語句添加了WITH HEADERS子句,它的功能就是在導入CSV時附帶上表頭,這些表頭可以通過line.Id、line.Track指定。執行完上述語句后,可以使用下面語句查看并確認:

將得到如圖2-97所示的結果。

圖2-97 查詢導入后的結果
可以看到,每個數據元素都帶有TrackId、Name、Length頭部元素。
2.5.3.3 導入CSV大文件
如果要導入包含大量數據的CSV文件,則可以使用PERODIC COMMIT子句。
使用PERIODIC COMMIT可以指示Neo4j在執行完一定行數后提交數據再繼續,這樣就能夠減少內存開銷。
PERIODIC COMMIT的默認值為1000行,因此數據將每一千行提交一次。
如果要使用PERIODIC COMMIT,只需要在LOAD CSV語句之前插入USING PERIODIC COMMIT語句。
具體使用方法如下:

我們可以通過如下語句改成每800行提交一次:
