Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Neo4j - Nhập dữ liệu từ tệp CSV bằng Cypher

Bạn có thể nhập dữ liệu từ tệp CSV (Giá trị được phân tách bằng dấu phẩy) vào cơ sở dữ liệu Neo4j. Để thực hiện việc này, hãy sử dụng LOAD CSV mệnh đề.

Có thể tải tệp CSV vào Neo4j giúp dễ dàng nhập dữ liệu từ mô hình cơ sở dữ liệu khác (ví dụ:cơ sở dữ liệu quan hệ).

Với Neo4j, bạn có thể tải tệp CSV từ URL cục bộ hoặc từ xa.

Để truy cập tệp được lưu trữ cục bộ (trên máy chủ cơ sở dữ liệu), hãy sử dụng tệp file:/// URL. Nếu không, bạn có thể nhập tệp từ xa bằng bất kỳ giao thức HTTPS, HTTP và FTP nào.

Tải tệp CSV

Hãy tải một tệp CSV có tên là styles.csv sử dụng giao thức HTTP. Nó không phải là một tệp lớn - nó chứa danh sách 115 thể loại nhạc, vì vậy nó sẽ tạo ra 115 nút (và 230 thuộc tính).

Tệp này được lưu trữ trên Quackit.com, vì vậy bạn có thể chạy mã này từ trình duyệt Neo4j của mình và nó sẽ nhập trực tiếp vào cơ sở dữ liệu của bạn (giả sử bạn đã kết nối với Internet).

Bạn cũng có thể tải xuống tệp tại đây:styles.csv

LOAD CSV FROM 'https://www.quackit.com/neo4j/tutorial/genres.csv' AS line
CREATE (:Genre { GenreId: line[0], Name: line[1]})

Bạn có thể loại bỏ các trường nhất định khỏi tệp CSV nếu cần. Ví dụ:nếu bạn không muốn trường đầu tiên được nhập vào cơ sở dữ liệu, bạn chỉ cần bỏ qua GenreId: line[0], từ đoạn mã trên.

Chạy câu lệnh trên sẽ tạo ra thông báo thành công sau:

Bạn có thể theo dõi điều đó bằng một truy vấn để xem các nút mới được tạo:

MATCH (n:Genre) RETURN n

Điều này sẽ dẫn đến các nút nằm rải rác xung quanh khung trực quan hóa dữ liệu:

Nhập tệp CSV có chứa Tiêu đề

Tệp CSV trước đó không chứa bất kỳ tiêu đề nào. Nếu tệp CSV chứa tiêu đề, bạn có thể sử dụng WITH HEADERS .

Sử dụng phương pháp này cũng cho phép bạn tham chiếu từng trường theo tên cột / tiêu đề của chúng.

Chúng tôi có một tệp CSV khác, lần này có tiêu đề. Tệp này chứa danh sách các bản nhạc trong album.

Một lần nữa, đây không phải là một tệp lớn - nó chứa danh sách 32 bản nhạc, vì vậy nó sẽ tạo ra 32 nút (và 96 thuộc tính).

Tệp này cũng được lưu trữ trên Quackit.com, vì vậy bạn có thể chạy mã này từ trình duyệt Neo4j của mình và nó sẽ nhập trực tiếp vào cơ sở dữ liệu của bạn (giả sử bạn đã kết nối với Internet).

Bạn cũng có thể tải xuống tệp tại đây:track.csv

LOAD CSV WITH HEADERS FROM 'https://www.quackit.com/neo4j/tutorial/tracks.csv' AS line
CREATE (:Track { TrackId: line.Id, Name: line.Track, Length: line.Length})

Điều này sẽ tạo ra thông báo thành công sau:

Tiếp theo với một truy vấn để xem các nút mới được tạo:

MATCH (n:Track) RETURN n

Điều này sẽ dẫn đến các nút mới nằm rải rác xung quanh khung trực quan hóa dữ liệu.

Nhấp vào Hàng biểu tượng để xem từng nút và ba thuộc tính của nó:

Dấu phân cách trường tùy chỉnh

Bạn có thể chỉ định dấu phân cách trường tùy chỉnh nếu được yêu cầu. Ví dụ:bạn có thể chỉ định dấu chấm phẩy thay vì dấu phẩy nếu đó là cách tệp CSV được định dạng.

Để thực hiện việc này, chỉ cần thêm FIELDTERMINATOR mệnh đề cho câu lệnh. Như thế này:

LOAD CSV WITH HEADERS FROM 'https://www.quackit.com/neo4j/tutorial/tracks.csv' AS line FIELDTERMINATOR ';'
CREATE (:Track { TrackId: line.Id, Name: line.Track, Length: line.Length})

Nhập tệp lớn

Nếu bạn định nhập một tệp có nhiều dữ liệu, thì PERODIC COMMIT mệnh đề có thể hữu ích.

Sử dụng PERIODIC COMMIT hướng dẫn Neo4j cam kết dữ liệu sau một số hàng nhất định. Điều này làm giảm chi phí bộ nhớ của trạng thái giao dịch.

Giá trị mặc định là 1000 hàng, vì vậy dữ liệu sẽ được xác định sau mỗi nghìn hàng.

Để sử dụng PERIODIC COMMIT chỉ cần chèn USING PERIODIC COMMIT ở đầu câu lệnh (trước LOAD CSV )

Đây là một ví dụ:

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'https://www.quackit.com/neo4j/tutorial/tracks.csv' AS line
CREATE (:Track { TrackId: line.Id, Name: line.Track, Length: line.Length})

Đặt tỷ lệ cam kết định kỳ

Bạn cũng có thể thay đổi tỷ lệ từ 1000 hàng mặc định thành một số khác. Chỉ cần thêm số sau USING PERIODIC COMMIT :

Như thế này:

USING PERIODIC COMMIT 800
LOAD CSV WITH HEADERS FROM 'https://www.quackit.com/neo4j/tutorial/tracks.csv' AS line
CREATE (:Track { TrackId: line.Id, Name: line.Track, Length: line.Length})

Định dạng CSV / Yêu cầu

Dưới đây là một số thông tin về cách tệp CSV nên được định dạng khi sử dụng LOAD CSV :

  • Mã hóa ký tự phải là UTF-8.
  • Kết thúc dòng cuối phụ thuộc vào hệ thống, ví dụ:\n trên Unix hoặc \r\n trên Windows.
  • Dấu chấm dứt phải là dấu phẩy , trừ khi được chỉ định khác bằng cách sử dụng FIELDTERMINATOR tùy chọn.
  • Ký tự cho dấu ngoặc kép của chuỗi là dấu ngoặc kép " (chúng bị loại bỏ khi dữ liệu được đọc vào).
  • Bất kỳ ký tự nào cần thoát đều có thể được thoát bằng dấu gạch chéo ngược \ tính cách.
  • LOAD CSV hỗ trợ các tài nguyên được nén bằng gzip, Deflate, cũng như các kho lưu trữ ZIP.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cơ sở dữ liệu MySQL có thể lớn đến mức nào trước khi hiệu suất bắt đầu giảm

  2. Đếm số lượng giá trị duy nhất

  3. Cách giám sát cơ sở dữ liệu MySQL / MariaDB bằng Netdata trên CentOS 7

  4. MySQL - Hàng đến cột

  5. Lỗi MySQL 1436:Chạy tràn ngăn xếp luồng, với truy vấn đơn giản