Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Neo4j - Impor Data dari File CSV menggunakan Cypher

Anda dapat mengimpor data dari file CSV (Comma Separated Values) ke dalam database Neo4j. Untuk melakukannya, gunakan LOAD CSV klausa.

Mampu memuat file CSV ke Neo4j memudahkan untuk mengimpor data dari model database lain (misalnya, database relasional).

Dengan Neo4j, Anda dapat memuat file CSV dari URL lokal atau jarak jauh.

Untuk mengakses file yang disimpan secara lokal (di server database), gunakan file:/// URL. Jika tidak, Anda dapat mengimpor file jarak jauh menggunakan salah satu protokol HTTPS, HTTP, dan FTP.

Muat File CSV

Mari kita memuat file CSV bernama genres.csv menggunakan protokol HTTP. Ini bukan file besar — ​​berisi daftar 115 genre musik, sehingga akan membuat 115 node (dan 230 properti).

File ini disimpan di Quackit.com, sehingga Anda dapat menjalankan kode ini dari browser Neo4j Anda dan kode tersebut harus diimpor langsung ke database Anda (dengan asumsi Anda terhubung ke Internet).

Anda juga dapat mengunduh file di sini:genres.csv

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

Anda dapat mengabaikan bidang tertentu dari file CSV jika diperlukan. Misalnya, jika Anda tidak ingin bidang pertama diimpor ke database, Anda cukup menghilangkan GenreId: line[0], dari kode di atas.

Menjalankan pernyataan di atas akan menghasilkan pesan sukses berikut:

Anda dapat menindaklanjutinya dengan kueri untuk melihat node yang baru dibuat:

MATCH (n:Genre) RETURN n

Yang seharusnya menghasilkan node yang tersebar di sekitar bingkai visualisasi data:

Impor file CSV yang berisi Header

File CSV sebelumnya tidak berisi header apa pun. Jika file CSV berisi header, Anda dapat menggunakan WITH HEADERS .

Menggunakan metode ini juga memungkinkan Anda untuk mereferensikan setiap bidang dengan nama kolom/tajuknya.

Kami memiliki file CSV lain, kali ini dengan header. File ini berisi daftar trek album.

Sekali lagi, ini bukan file besar — ​​berisi daftar 32 trek, sehingga akan membuat 32 node (dan 96 properti).

File ini juga disimpan di Quackit.com, sehingga Anda dapat menjalankan kode ini dari browser Neo4j Anda dan kode tersebut harus diimpor langsung ke database Anda (dengan asumsi Anda terhubung ke Internet).

Anda juga dapat mengunduh file di sini: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})

Ini akan menghasilkan pesan sukses berikut:

Ditindaklanjuti dengan kueri untuk melihat node yang baru dibuat:

MATCH (n:Track) RETURN n

Yang seharusnya menghasilkan node baru yang tersebar di sekitar bingkai visualisasi data.

Klik pada Baris ikon untuk melihat setiap simpul dan tiga propertinya:

Pembatas Bidang Khusus

Anda dapat menentukan pembatas bidang khusus jika diperlukan. Misalnya, Anda dapat menentukan titik koma alih-alih koma jika itu adalah cara file CSV diformat.

Untuk melakukannya, cukup tambahkan FIELDTERMINATOR klausa ke pernyataan. Seperti ini:

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})

Mengimpor File Besar

Jika Anda akan mengimpor file dengan banyak data, PERODIC COMMIT klausa bisa berguna.

Menggunakan PERIODIC COMMIT menginstruksikan Neo4j untuk mengkomit data setelah sejumlah baris tertentu. Ini mengurangi overhead memori dari status transaksi.

Defaultnya adalah 1000 baris, jadi data akan dikomit setiap seribu baris.

Untuk menggunakan PERIODIC COMMIT cukup masukkan USING PERIODIC COMMIT di awal pernyataan (sebelum LOAD CSV )

Ini contohnya:

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})

Menyetel Tingkat Komitmen Berkala

Anda juga dapat mengubah tarif dari default 1000 baris ke nomor lain. Cukup tambahkan nomor setelah USING PERIODIC COMMIT :

Seperti ini:

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})

Format/Persyaratan CSV

Berikut beberapa informasi tentang bagaimana file CSV harus diformat saat menggunakan LOAD CSV :

  • Pengkodean karakter harus UTF-8.
  • Penghentian baris akhir bergantung pada sistem, misalnya, \n di Unix atau \r\n di Windows.
  • Terminator harus berupa koma , kecuali ditentukan lain menggunakan FIELDTERMINATOR pilihan.
  • Karakter untuk kutipan string adalah tanda kutip ganda " (ini dihapus saat data dibaca).
  • Setiap karakter yang perlu diloloskan dapat diloloskan dengan garis miring terbalik \ karakter.
  • LOAD CSV mendukung sumber daya yang dikompresi dengan gzip, Deflate, serta arsip 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. Pendaftaran pengguna dan verifikasi email PHP dan MySQL

  2. Bagaimana cara mendapatkan ukuran database mysql?

  3. MySQL ERROR 1290 (HY000) --secure-file-priv option

  4. Menggunakan Database Relasional MySQL di Arch Linux

  5. Tidak dapat mengembalikan hasil dari prosedur tersimpan menggunakan kursor Python