Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh kueri menggunakan CSV
Dalam contoh ini, kueri mengembalikan jumlah baris dalam file CSV yang diberikan:
CALL neptune.read( { source: "<s3 path>", format: "csv" } ) YIELD row RETURN count(row)
Anda dapat menjalankan contoh query menggunakan operasi execute-open-cypher-query di dengan mengeksekusi kode berikut: AWS CLI
aws neptunedata execute-open-cypher-query \ --open-cypher-query "CALL neptune.read({source: '<s3 path>', format: 'csv'}) YIELD row RETURN count(row)" \ --endpoint-url https://my-cluster-name.cluster-abcdefgh1234.us-east-1.neptune.amazonaws.com:8182
Kueri bisa fleksibel dalam apa yang dilakukannya dengan baris yang dibaca dari file CSV. Misalnya, kueri berikut membuat simpul dengan bidang yang disetel ke data dari file CSV:
CALL neptune.read( { source: "<s3 path>", format: "csv" } ) YIELD row CREATE (n {someField: row.someCol}) RETURN n
Awas
Ini tidak dianggap praktik yang baik menggunakan klausa penghasil hasil besar seperti MATCH (n) sebelum klausa CALL. Ini akan mengarah pada kueri yang berjalan lama karena produk silang antara solusi yang masuk dari klausa sebelumnya dan baris yang dibaca oleh neptune.read. Disarankan untuk memulai kueri dengan CALL neptune.read.
Header kolom properti
Anda dapat menentukan kolom (:) untuk properti dengan menggunakan sintaks berikut. Nama jenis tidak peka dengan huruf besar/kecil. Jika titik dua muncul dalam nama properti, itu harus diloloskan dengan mendahuluinya dengan garis miring terbalik:. \:
propertyname:type
catatan
Spasi, koma, carriage return, dan karakter baris baru tidak diperbolehkan di header kolom, sehingga nama properti tidak dapat menyertakan karakter ini.
-
Anda dapat menentukan kolom untuk jenis array dengan menambahkan
[]ke jenisnya:propertyname:type[] -
Properti edge hanya dapat memiliki satu nilai dan akan menyebabkan kesalahan jika jenis array yang ditentukan atau nilai kedua ditentukan. Contoh berikut menunjukkan header kolom untuk properti bernama umur tipe Int:
age:Int
Setiap baris dalam file akan perlu memiliki integer dalam posisi itu atau dibiarkan kosong. Array string diperbolehkan, tetapi string dalam array tidak dapat menyertakan karakter titik koma () kecuali jika diloloskan menggunakan garis miring terbalik (;). \;
Jenis kolom CSV yang didukung
BOOL (atau BOOLEAN) - Nilai yang diizinkan: benar, salah. Menunjukkan bidang Boolean. Nilai apa pun selain true akan diperlakukan sebagai false.
FLOAT - Rentang: 32-bit IEEE 754 floating point termasuk Infinity, INF, -Infinity, -INF dan NaN (bukan angka).
DOUBLE - Rentang: 64-bit IEEE 754 floating point termasuk Infinity, INF, -Infinity, -INF dan NaN (bukan angka).
STRING -
Tanda kutip adalah opsional. Karakter koma, baris baru, dan carriage return secara otomatis lolos jika disertakan dalam string yang dikelilingi oleh tanda kutip ganda (“). Contoh: “Halo, Dunia”.
Untuk menyertakan tanda kutip dalam string yang dikutip, Anda dapat menghindari tanda kutip dengan menggunakan dua berturut-turut: Contoh: “Halo “" Dunia ""”.
Array string diperbolehkan, tetapi string dalam array tidak dapat menyertakan karakter titik koma (;) kecuali jika diloloskan menggunakan garis miring terbalik (\;).
Jika Anda ingin mengapit string dalam array dengan tanda kutip, Anda harus mengapit keseluruhan array dengan satu set tanda kutip. Contoh: “String satu; String 2; String 3".
DATE, DATETIME - Nilai datetime dapat diberikan dalam format XSD, atau salah satu format berikut:
yyyy- MM-dd
yyyy- MM-ddTHH:mm
yyyy- MM-ddTHH:mm:ss
yyyy- MM-ddTHH:mm:ssZ
yyyy- MM-ddTHH:mm:ss.SSSZ
yyyy- MM-ddTHH:mm:ss [+|-] hhmm
yyyy- MM-ddTHH:mm:ss.SSS [+|-] hhmm
INTEGER YANG DITANDATANGANI -
Byte: -128 hingga 127
Pendek: -32768 sampai 32767
Int: -2^31 hingga 2 ^ 31-1
Panjang: -2 ^ 63 hingga 2 ^ 63-1
Neptune-specific jenis kolom:
Tipe kolom Any didukung di kolom pengguna. Tipe Any adalah jenis “gula sintaksis” untuk semua jenis lain yang kami dukung. Ini sangat berguna jika kolom pengguna memiliki beberapa jenis di dalamnya. Payload dari nilai tipe Any adalah daftar string json sebagai berikut:
{"value": "10", "type": "Int"};{"value": "1.0", "type": "Float"}, yang memiliki bidang nilai dan bidang tipe di setiap string json individu. Header kolom dari tipe Any adalah PropertyName:Any. Nilai kardinalitas kolom Any diatur, artinya kolom dapat menerima beberapa nilai.Neptunus mendukung jenis berikut dalam tipe Any: Bool (atau Boolean), Byte, Short, Int, Long,,,,, Float, Double UnsignedByte UnsignedShort, Date UnsignedInt UnsignedLong, DateTime, String, dan Geometry.
Jenis vektor tidak didukung dalam Tipe apa pun.
Bersarang Tipe apa pun tidak didukung. Misalnya,
{"value": {"value": "10", "type": "Int"}, "type": "Any"}.
Jenis kolom Geometri didukung di kolom pengguna. Muatan kolom ini hanya boleh berisi primitif Geometri tipe Point, disediakan sebagai string dalam format Well-known teks (WKT). Misalnya, POINT (30 10) akan menjadi nilai Geometri yang valid.
Contoh keluaran CSV
Diberikan file CSV berikut:
<s3 path> colA:byte,colB:short,colC:int,colD:long,colE:float,colF:double,colG:string -128,-32768,-2147483648,-9223372036854775808,1.23456,1.23457,first 127,32767,2147483647,9223372036854775807,nan,nan,second 0,0,0,0,-inf,-inf,third 0,0,0,0,inf,inf,fourth
Contoh ini menunjukkan output yang dikembalikan oleh neptune.read menggunakan query berikut:
aws neptunedata execute-open-cypher-query \ --open-cypher-query "CALL neptune.read({source: '<s3 path>', format: 'csv'}) YIELD row RETURN row" \ --endpoint-url https://my-cluster-name.cluster-abcdefgh1234.us-east-1.neptune.amazonaws.com:8182
{ "results": [{ "row": { "colD": -9223372036854775808, "colC": -2147483648, "colE": 1.23456, "colB": -32768, "colF": 1.2345699999999999, "colG": "first", "colA": -128 } }, { "row": { "colD": 9223372036854775807, "colC": 2147483647, "colE": "NaN", "colB": 32767, "colF": "NaN", "colG": "second", "colA": 127 } }, { "row": { "colD": 0, "colC": 0, "colE": "-INF", "colB": 0, "colF": "-INF", "colG": "third", "colA": 0 } }, { "row": { "colD": 0, "colC": 0, "colE": "INF", "colB": 0, "colF": "INF", "colG": "fourth", "colA": 0 } }] }
Saat ini, tidak ada cara untuk mengatur label node atau edge ke bidang data yang berasal dari file CSV. Disarankan agar Anda mempartisi kueri menjadi beberapa kueri, satu untuk masing-masing. label/type
CALL neptune.read({source: '<s3 path>', format: 'csv'}) YIELD row WHERE row.`~label` = 'airport' CREATE (n:airport) CALL neptune.read({source: '<s3 path>', format: 'csv'}) YIELD row WHERE row.`~label` = 'country' CREATE (n:country)