3.3.6 LOAD CSV語句
LOAD CSV語句用于從CSV文件中導入數據。
● CSV文件的URL可以由FROM后面緊跟的任意表達式來指定。
● 需要使用AS來為CSV數據指定一個變量。
● LOAD CSV支持以gzip、Deflate和ZIP壓縮的資源。
● CSV文件可以存在數據庫服務器上,通過file:///URL來訪問。LOAD CSV也支持通過HTTPS、HTTP和FTP來訪問CSV文件。
● LOAD CSV支持HTTP重定向,但基于安全考慮,重定向時不能改變協議類型,比如從HTTPS重定向到HTTP。
3.3.6.1 文件URL的配置項
(1)dbms.security.allow_csv_import_from_file_urls(6)
這個選項決定Cypher在使用LOAD CSV時是否支持使用fille:/// URL來加載數據。該URL唯一標識了數據庫服務器文件系統上的文件。dbms.security.allow_csv_import_from_file_urls=false將完全禁止LOAD CSV訪問文件系統。
(2)dbms.directories.import(7)
設置LOAD CSV中file:/// URL中的根路徑。這必須設置為數據庫服務器上的文件系統的單個目錄,它讓所有的請求從file:///URL加載時都使用根路徑的相對路徑(類似UNIX下的chroot操作)。默認值是import,這是基于安全考慮阻止數據庫訪問標準的import之外的目錄下的文件。將dbms.directories.import設置為空可以消除這個安全隱患,允許訪問系統上的任何文件,但是不推薦這么做。
文件URLs將相對于dbms.directories.import來解析。例如,一個典型的URL類似file:///myfile.csv或者file:///myproject/myfile.csv。
● 如果dbms.directories.import設置的是默認值import,那么在LOAD CSV語句將分別從<NEO4J_HOME>/import/myfile.csv和<NEO4J_HOME>/import/myproject/myfile.csv中讀取數據。
● 如果設置為/data/csv,上面的LOAD CSV中的URL將分別從/data/csv/myfile.csv和/data/csv/myproject/myfile.csv中讀取數據。
詳情參見下面小節(jié)的例子。
3.3.6.2 CSV文件格式
使用LOAD CSV導入的CSV文件必須滿足如下要求:
● 字符編碼為UTF-8。
● 行結束符取決于具體的操作系統,如unix上為\n,windows上為\r\n。
● 默認的字段終止符為“,”。
● 字段終止符可以使用LOAD CSV中的FIELDTERMINATOR選項來修改。
● CSV文件允許引號字符串,但讀取數據的時候引號字符會被丟棄。
● 字符串的引號字符為雙引號“"”。
● 轉義字符為“\”。
3.3.6.3 從CSV文件導入數據
從CSV文件導入數據到Neo4j,可以用LOAD CSV把數據加載到查詢語句中。然后使用正常的Cypher更新語句將數據寫入到數據庫中。
比如artists.csv文件內容如下:

查詢:

CSV文件中的每一行都創(chuàng)建一個標簽為Artist的節(jié)點。CSV文件中的另外兩列分別設置為節(jié)點的屬性。
結果:

3.3.6.4 導入包含文件頭的CSV文件
當導入的CSV文件包含文件頭時,可以把每一行看作一個map,而不是字符串數組。
比如artists.csv文件內容如下:

查詢:

這時,文件的開始行包含列的名稱。指定WITH HEADERS后,可以通過對應的列名來訪問指定的字段。
結果:

3.3.6.5 導入自定義分隔符的CSV文件
CSV文件的分隔符有時候不是逗號,而是其他分隔符。這時可以使用FIELDTERMINATOR來指定分隔符。
比如artists-fieldterminator.csv文件內容如下:

查詢:

本例中字段之間以分號分隔,因此,在LOAD CSV中使用了FIELDTERMINATOR自定義分隔符。
結果:

3.3.6.6 導入海量數據
如果導入的CSV文件包含百萬數量級的行,可以使用USING PERIODIC COMMIT來告訴Neo4j每導入一定數量行之后就提交(Commit)一次。這樣可避免在事務過程中耗費大量的內存。默認情況下,每1000行會提交一次。
查詢:

結果:

3.3.6.7 設置提交頻率
可以設置提交的頻率,如本例中設置為500行。
查詢:

結果:

3.3.6.8 導入包含轉義字符的數據
本例中同時包含了引用字符和轉義字符。
比如artists-with-escaped-char.csv文件內容如下:

查詢:

提示:提示:這里的字符串用雙引號括起來。同時,關注本例中字符串的長度。
結果:

- 同步:秩序如何從混沌中涌現
- 數據分析實戰(zhàn):基于EXCEL和SPSS系列工具的實踐
- 數據挖掘原理與實踐
- MongoDB管理與開發(fā)精要
- 大數據可視化
- 金融商業(yè)算法建模:基于Python和SAS
- 數據庫設計與應用(SQL Server 2014)(第二版)
- 云數據中心網絡與SDN:技術架構與實現
- Google Cloud Platform for Developers
- 新手學會計(2013-2014實戰(zhàn)升級版)
- 聯動Oracle:設計思想、架構實現與AWR報告
- 活用數據:驅動業(yè)務的數據分析實戰(zhàn)
- 大數據技術原理與應用:概念、存儲、處理、分析與應用
- Access 2010數據庫程序設計實踐教程
- 利用Python進行數據分析(原書第2版)