View a markdown version of this page

Akses catatan dalam aliran CDC di Amazon Keyspaces - Amazon Keyspaces (untuk Apache Cassandra)

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

Akses catatan dalam aliran CDC di Amazon Keyspaces

Untuk mengakses rekaman dalam aliran, Anda menggunakan Amazon Keyspaces Streams API. Bagian berikut berisi contoh tentang cara mengakses catatan menggunakan file AWS CLI.

Untuk izin yang diperlukan, lihat Konfigurasikan izin untuk bekerja dengan aliran CDC di Amazon Keyspaces.

Mengakses catatan dalam aliran menggunakan AWS CLI
  1. Anda dapat menggunakan Amazon Keyspaces Streams API untuk mengakses catatan perubahan aliran. Untuk informasi selengkapnya, lihat Referensi API Amazon Keyspaces Streams. Untuk mengambil pecahan dalam aliran, Anda dapat menggunakan get-stream API seperti yang ditunjukkan pada contoh berikut.

    aws keyspacesstreams get-stream \ --stream-arn 'arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable/stream/STREAM_LABEL'

    Berikut adalah contoh output.

    { "StreamArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable/stream/2023-05-11T21:21:33.291", "StreamStatus": "ENABLED", "StreamViewType": "NEW_AND_OLD_IMAGES", "CreationRequestDateTime": "<CREATION_TIME>", "KeyspaceName": "mykeyspace", "TableName": "mytable", "StreamLabel": "2023-05-11T21:21:33.291", "Shards": [ { "SequenceNumberRange": { "EndingSequenceNumber": "<END_SEQUENCE_NUMBER>", "StartingSequenceNumber": "<START_SEQUENCE_NUMBER>" }, "ShardId": "<SHARD_ID>" }, ] }
  2. Untuk mengambil catatan dari aliran, Anda mulai dengan mendapatkan iterator yang memberi Anda titik awal untuk mengakses catatan. Untuk melakukan ini, Anda dapat menggunakan pecahan dalam aliran CDC yang dikembalikan oleh API pada langkah sebelumnya. Untuk mengumpulkan iterator, Anda dapat menggunakan get-shard-iterator API. Untuk contoh ini, Anda menggunakan iterator tipe TRIM_HORIZON yang mengambil dari titik atau awal yang dipangkas terakhir) dari pecahan.

    aws keyspacesstreams get-shard-iterator \ --stream-arn 'arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable/stream/STREAM_LABEL' \ --shard-id 'SHARD_ID' \ --shard-iterator-type 'TRIM_HORIZON'

    Output dari perintah terlihat seperti pada contoh berikut.

    { "ShardIterator": "<SHARD_ITERATOR>" }
  3. Untuk mengambil catatan CDC menggunakan get-records API, Anda dapat menggunakan iterator yang dikembalikan pada langkah terakhir. Perintah berikut adalah contoh dari ini.

    aws keyspacesstreams get-records \ --shard-iterator 'SHARD_ITERATOR' \ --limit 100

    Berikut adalah contoh output.

    { "changeRecords": [...], "nextShardIterator": "<NEXT_SHARD_ITERATOR>", "iteratorDescription": { "iteratorPosition": "BEHIND_TIP" } }

Optimalkan frekuensi polling dengan posisi iterator

GetRecordsRespons mencakup iteratorDescription bidang yang menunjukkan posisi konsumen Anda saat ini dalam pecahan:

  • AT_TIP— Tidak ada lagi catatan yang tersedia saat ini. Pertimbangkan untuk mengurangi frekuensi polling Anda untuk mengoptimalkan biaya.

  • BEHIND_TIP— Ujung aliran terus maju. Catatan tambahan mungkin tersedia. Lanjutkan polling pada frekuensi normal Anda.

BEHIND_TIPdengan changeRecords daftar kosong menunjukkan aliran mengalami kemajuan tetapi tidak ada catatan pelanggan yang tersedia di posisi ini. Lanjutkan polling secara normal.