

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan Neptune Streams
<a name="streams-using"></a>

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](streams.md).

**Topics**
+ [Mengaktifkan Neptune Streams](streams-using-enabling.md)
+ [Menonaktifkan Neptune Streams](streams-using-disabling.md)
+ [Memanggil Neptune Streams REST API](streams-using-api-call.md)
+ [Format Respon Neptune Streaming API](streams-using-api-reponse.md)
+ [Pengecualian Neptune Streams API](streams-using-api-exceptions.md)

# Mengaktifkan Neptune Streams
<a name="streams-using-enabling"></a>

[Anda dapat mengaktifkan atau menonaktifkan Aliran Neptunus kapan saja dengan mengatur `neptune_streams` parameter cluster DB.](parameters.md#parameters-db-cluster-parameters-neptune_streams) 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\$1streams\$1expiry\$1days](parameters.md#parameters-db-cluster-parameters-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](features-lab-mode.md) Menggunakan Mode Lab untuk mengaktifkan Stream sekarang tidak berlaku lagi dan akan dinonaktifkan di masa mendatang.

# Menonaktifkan Neptune Streams
<a name="streams-using-disabling"></a>

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.

# Memanggil Neptune Streams REST API
<a name="streams-using-api-call"></a>

Anda mengakses Neptune Streaming menggunakan REST API yang mengirimkan permintaan HTTP GET ke salah satu titik akhir lokal berikut:
+ Untuk DB grafik SPARQL:   `https://Neptune-DNS:8182/sparql/stream`.
+ Untuk grafik Gremlin atau OpenCypher DB: atau. `https://Neptune-DNS:8182/propertygraph/stream` `https://Neptune-DNS:8182/pg/stream`

**catatan**  
Titik akhir aliran Gremlin (`https://Neptune-DNS:8182/gremlin/stream`) tidak digunakan lagi, bersama dengan format keluaran terkait (). `GREMLIN_JSON` Ini masih didukung untuk kompatibilitas mundur tetapi dapat dihapus di rilis mendatang.

Hanya HTTP operasi `GET` diperbolehkan.

Neptune mendukung kompresi `gzip` respon, asalkan permintaan HTTP mencakup Header `Accept-Encoding` yang menentukan `gzip` 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 oleh `opNum` parameter `commitNum` dan.
  + `AFTER_SEQUENCE_NUMBER`— Menunjukkan bahwa pembacaan harus dimulai tepat setelah nomor urut acara yang ditentukan bersama oleh `opNum` parameter `commitNum` 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 bagian 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, diperlukan ketika `AT_SEQUENCE_NUMBER` IteratorType adalah atau. `AFTER_SEQUENCE_NUMBER`

  Jumlah commit dari catatan awal yang akan dibaca dari stream log perubahan.

  Parameter ini diabaikan ketika `iteratorType` adalah `TRIM_HORIZON` atau`LATEST`.
+ `opNum`— panjang, opsional (defaultnya adalah`1`).

  Nomor urut operasi dalam commit yang ditentukan untuk mulai dibaca dari dalam data stream log perubahan.

Operasi yang mengubah data grafik SPARQL 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 Respon Neptune Streaming API
<a name="streams-using-api-reponse"></a>

Respon terhadap permintaan Neptune Streaming REST API memiliki bidang-bidang berikut:
+ `lastEventId`— Pengidentifikasi urutan dari perubahan terakhir dalam respons aliran. ID peristiwa disusun dari dua bidang: A `commitNum` mengidentifikasi transaksi yang mengubah grafik, dan `opNum` 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 adalah `PG_JSON` untuk catatan perubahan Gremlin atau OpenCypher, dan `NQUADS` untuk catatan perubahan SPARQL.
+ `records`— Array catatan aliran log perubahan serial yang disertakan dalam respons. Setiap record dalam `records` 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`— Serial Gremlin, SPARQL, atau catatan perubahan. OpenCypher Format serialisasi setiap catatan dijelaskan secara lebih rinci di bagian selanjutnya,[Format Serialisasi dalam Neptune Stream](streams-change-formats.md).
  + `op`— Operasi yang menciptakan perubahan.
  + `isLastOp`— Hanya hadir jika operasi ini adalah yang terakhir dalam transaksinya. Saat hadir, itu diatur ke`true`. 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 perubahan SPARQL 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 Neptune Streams API
<a name="streams-using-api-exceptions"></a>

Tabel berikut menjelaskan pengecualian Neptune Streams.


| Kode Kesalahan | Kode HTTP | OK atau Mengulang? | Pesan | 
| --- | --- | --- | --- | 
| `InvalidParameterException` | 400 | Tidak |  out-of-rangeNilai atau tidak valid diberikan sebagai parameter input. | 
| `ExpiredStreamException` | 400 | Tidak | Semua catatan yang diminta melebihi usia maksimum yang diizinkan dan telah kedaluwarsa. | 
| `ThrottlingException` | 500 | Ya | Tingkat permintaan melebihi throughput maksimum. | 
| `StreamRecordsNotFoundException` | 404 | Tidak | Sumber daya yang diminta tidak dapat ditemukan. Stream mungkin tidak ditentukan dengan benar. | 
| `MemoryLimitExceededException` | 500 | Ya | Pemrosesan permintaan tidak berhasil karena kurangnya memori, tetapi dapat dicoba lagi ketika server tidak terlalu sibuk. | 