Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Neptune Streams
Dengan fitur Neptune Streams, Anda dapat membuat urutan lengkap entri log perubahan yang merekam setiap perubahan yang dibuat pada data grafik Anda saat itu terjadi. Untuk gambaran umum fitur ini, lihat Menangkap perubahan grafik secara real time menggunakan aliran Neptunus.
Topik
Mengaktifkan Neptune Streams
Anda dapat mengaktifkan atau menonaktifkan Aliran Neptunus kapan saja dengan mengatur neptune_streams parameter cluster DB. Mengatur parameter ke 1
mengaktifkan Stream dan mengaturnya ke 0
menonaktifkan Streams.
catatan
Setelah mengubah parameter cluster neptune_streams
DB, Anda harus me-reboot semua instance DB di cluster agar perubahan diterapkan.
Anda dapat mengatur parameter cluster DB neptune_streams_expiry_days untuk mengontrol berapa hari, dari 1 hingga 90, bahwa catatan aliran tetap ada di server sebelum dihapus. Defaultnya adalah 7.
Neptune Streams awalnya diperkenalkan sebagai fitur eksperimental yang Anda aktifkan atau nonaktifkan dalam Mode Lab menggunakan parameter DB neptune_lab_mode
Cluster (lihat). Mode Lab Neptune Menggunakan Mode Lab untuk mengaktifkan Stream sekarang tidak berlaku lagi dan akan dinonaktifkan di masa mendatang.
Menonaktifkan Neptune Streams
Anda dapat menonaktifkan Neptune Stream yang berproses kapan saja.
Untuk menonaktifkan Streaming, perbarui grup parameter Cluster DB sehingga nilai parameter neptune_streams
diatur ke 0.
penting
Segera setelah Streams dimatikan, Anda tidak dapat mengakses data perubahan-log lagi. Pastikan untuk membaca apa yang Anda minati di sebelum mematikan Streams.
Menyebut Aliran Neptunus REST API
Anda mengakses Neptunus Streams menggunakan REST API yang mengirimkan permintaan ke salah satu HTTP GET titik akhir lokal berikut:
Untuk SPARQL grafik DB:
https://
.Neptune-DNS
:8182/sparql/streamUntuk Gremlin atau openCypher grafik DB:
https://
atau.Neptune-DNS
:8182/propertygraph/streamhttps://
Neptune-DNS
:8182/pg/stream
catatan
Pada rilis engine 1.1.0.0, titik akhir aliran Gremlin (https://
) tidak digunakan lagi, bersama dengan format keluaran terkait (). Neptune-DNS
:8182/gremlin/streamGREMLIN_JSON
Ini masih didukung untuk kompatibilitas mundur tetapi dapat dihapus di rilis mendatang.
Hanya HTTP GET
operasi yang diizinkan.
Neptunus gzip
mendukung kompresi respons, asalkan permintaan menyertakan Accept-Encoding
header yang HTTP gzip
menentukan sebagai format kompresi yang diterima (yaitu,). "Accept-Encoding: gzip"
Parameter
-
limit
- panjang, opsional. Kisaran: 1—100.000. Default: 10.Menentukan angka maksimum catatan yang akan dikembalikan. Ada juga batas ukuran 10 MB pada respon yang tidak dapat diubah dan yang diutamakan daripada jumlah catatan yang ditentukan dalam parameter
limit
. Respon mencakup catatan pelanggaran ambang batas jika batas 10 MB tercapai. -
iteratorType
— String, opsional.Parameter ini dapat berupa salah satu nilai berikut:
AT_SEQUENCE_NUMBER
(default) - Menunjukkan bahwa pembacaan harus dimulai dari nomor urutan acara yang ditentukan bersama olehopNum
parametercommitNum
dan.AFTER_SEQUENCE_NUMBER
— Menunjukkan bahwa pembacaan harus dimulai tepat setelah nomor urut acara yang ditentukan bersama olehopNum
parametercommitNum
dan.TRIM_HORIZON
— Menunjukkan bahwa pembacaan harus dimulai pada catatan terakhir yang belum dipangkas dalam sistem, yang merupakan catatan tertua yang belum kedaluwarsa (belum dihapus) dalam aliran log perubahan. Mode ini berguna selama startup aplikasi, ketika Anda tidak memiliki nomor urutan acara awal tertentu.LATEST
— Menunjukkan bahwa pembacaan harus dimulai pada catatan terbaru dalam sistem, yang merupakan catatan terbaru yang belum kedaluwarsa (belum dihapus) dalam aliran log perubahan. Ini berguna ketika ada kebutuhan untuk membaca catatan dari atas aliran saat ini agar tidak memproses catatan yang lebih lama, seperti selama pemulihan bencana atau peningkatan zero-downtime. Perhatikan bahwa dalam mode ini, paling banyak hanya ada satu catatan yang dikembalikan.
-
commitNum
— panjang, iteratorType diperlukan kapanAT_SEQUENCE_NUMBER
atauAFTER_SEQUENCE_NUMBER
.Jumlah commit dari catatan awal yang akan dibaca dari stream log perubahan.
Parameter ini diabaikan ketika
iteratorType
adalahTRIM_HORIZON
atauLATEST
. -
opNum
— panjang, opsional (defaultnya adalah1
).Nomor urut operasi dalam commit yang ditentukan untuk mulai dibaca dari dalam data stream log perubahan.
Operasi yang mengubah data SPARQL grafik umumnya hanya menghasilkan catatan perubahan tunggal per operasi. Namun, operasi yang mengubah data grafik Gremlin dapat menghasilkan beberapa catatan perubahan per operasi, seperti dalam contoh berikut:
INSERT
— Sebuah simpul Gremlin dapat memiliki beberapa label, dan elemen Gremlin dapat memiliki beberapa properti. Sebuah catatan perubahan terpisah yang dihasilkan untuk setiap label dan properti ketika elemen dimasukkan.UPDATE
— Ketika properti elemen Gremlin diubah, dua catatan perubahan dihasilkan: yang pertama untuk menghapus nilai sebelumnya, dan yang kedua untuk memasukkan nilai baru.-
DELETE
— Catatan perubahan terpisah dihasilkan untuk setiap properti elemen yang dihapus. Misalnya, ketika edge Gremlin dengan properti dihapus, satu catatan perubahan dihasilkan untuk masing-masing properti, dan setelah itu, satu dihasilkan untuk penghapusan label edge.Ketika vertex Gremlin dihapus, semua properti edge masuk dan keluar dihapus terlebih dahulu, selanjutnya label edge, selanjutnya properti vertex, dan terakhir label vertex. Setiap penghapusan ini menghasilkan catatan perubahan.
Format Respons Streaming API Neptunus
Respons terhadap permintaan Neptunus REST API Streams memiliki bidang berikut:
-
lastEventId
— Pengidentifikasi urutan dari perubahan terakhir dalam respons aliran. ID peristiwa disusun dari dua bidang: AcommitNum
mengidentifikasi transaksi yang mengubah grafik, danopNum
mengidentifikasi operasi tertentu dalam transaksi itu. Ini ditunjukkan dalam contoh berikut."eventId": { "commitNum": 12, "opNum": 1 }
lastTrxTimestamp
— Waktu di mana komit untuk transaksi diminta, dalam milidetik dari zaman Unix.format
— Format serialisasi untuk catatan perubahan yang dikembalikan. Nilai yang mungkin adalahPG_JSON
untuk Gremlin atau catatan openCypher perubahan, danNQUADS
untuk catatan SPARQL perubahan.-
records
— Array catatan aliran log perubahan serial yang disertakan dalam respons. Setiap record dalamrecords
array berisi bidang-bidang ini:commitTimestamp
— Waktu di mana komit untuk transaksi diminta, dalam milidetik dari zaman Unix.eventId
— Pengidentifikasi urutan catatan perubahan aliran.data
— Gremlin serial,SPARQL, atau OpenCypher catatan perubahan. Format serialisasi setiap catatan dijelaskan secara lebih rinci di bagian selanjutnya,Format Serialisasi dalam Neptune Stream.op
— Operasi yang menciptakan perubahan.isLastOp
— Hanya hadir jika operasi ini adalah yang terakhir dalam transaksinya. Saat hadir, itu diatur ketrue
. Berguna untuk memastikan bahwa seluruh transaksi dikonsumsi.
totalRecords
— Jumlah total catatan dalam tanggapan.
Misalnya, respons berikut mengembalikan data perubahan Gremlin, untuk transaksi yang berisi lebih dari satu operasi:
{ "lastEventId": { "commitNum": 12, "opNum": 1 }, "lastTrxTimestamp": 1560011610678, "format": "PG_JSON", "records": [ { "commitTimestamp": 1560011610678, "eventId": { "commitNum": 1, "opNum": 1 }, "data": { "id": "d2b59bf8-0d0f-218b-f68b-2aa7b0b1904a", "type": "vl", "key": "label", "value": { "value": "vertex", "dataType": "String" } }, "op": "ADD" } ], "totalRecords": 1 }
Respons berikut mengembalikan data SPARQL perubahan untuk operasi terakhir dalam transaksi (operasi diidentifikasi oleh EventId(97, 1)
dalam nomor transaksi 97).
{ "lastEventId": { "commitNum": 97, "opNum": 1 }, "lastTrxTimestamp": 1561489355102, "format": "NQUADS", "records": [ { "commitTimestamp": 1561489355102, "eventId": { "commitNum": 97, "opNum": 1 }, "data": { "stmt": "<https://test.com/s> <https://test.com/p> <https://test.com/o> .\n" }, "op": "ADD", "isLastOp": true } ], "totalRecords": 1 }
Pengecualian Aliran API Neptunus
Tabel berikut menjelaskan pengecualian Neptune Streams.
Kode Kesalahan | HTTPKode | OK atau Mengulang? | Pesan |
---|---|---|---|
|
400 |
Tidak |
out-of-range Nilai atau tidak valid diberikan sebagai parameter input. |
|
400 |
Tidak |
Semua catatan yang diminta melebihi usia maksimum yang diizinkan dan telah kedaluwarsa. |
|
500 |
Ya |
Tingkat permintaan melebihi throughput maksimum. |
|
404 |
Tidak |
Sumber daya yang diminta tidak dapat ditemukan. Stream mungkin tidak ditentukan dengan benar. |
|
500 |
Ya |
Pemrosesan permintaan tidak berhasil karena kurangnya memori, tetapi dapat dicoba lagi ketika server tidak terlalu sibuk. |