View a markdown version of this page

Greifen Sie in Amazon Keyspaces auf Datensätze in CDC-Streams zu - Amazon Keyspaces (für Apache Cassandra)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Greifen Sie in Amazon Keyspaces auf Datensätze in CDC-Streams zu

Um auf die Datensätze in einem Stream zuzugreifen, verwenden Sie die Amazon Keyspaces Streams-API. Der folgende Abschnitt enthält Beispiele für den Zugriff auf Datensätze mithilfe von. AWS CLI

Die erforderlichen Berechtigungen finden Sie unter Konfigurieren Sie die Berechtigungen für die Arbeit mit CDC-Streams in Amazon Keyspaces.

Greifen Sie mit dem auf Datensätze in einem Stream zu AWS CLI
  1. Sie können die Amazon Keyspaces Streams-API verwenden, um auf die Änderungsdatensätze des Streams zuzugreifen. Weitere Informationen finden Sie in der Amazon Keyspaces Streams-API-Referenz. Um die Shards innerhalb des Streams abzurufen, können Sie die get-stream API verwenden, wie im folgenden Beispiel gezeigt.

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

    Es folgt ein Beispiel für die Ausgabe.

    { "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. Um Datensätze aus dem Stream abzurufen, benötigen Sie zunächst einen Iterator, der Ihnen den Ausgangspunkt für den Zugriff auf Datensätze bietet. Dazu können Sie die Shards innerhalb des CDC-Streams verwenden, die im vorherigen Schritt von der API zurückgegeben wurden. Um den Iterator zu sammeln, können Sie die API verwenden. get-shard-iterator Für dieses Beispiel verwenden Sie einen Iterator vom TypTRIM_HORIZON, der vom letzten getrimmten Punkt (oder Anfang) des Shards abruft.

    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'

    Die Ausgabe des Befehls sieht wie im folgenden Beispiel aus.

    { "ShardIterator": "<SHARD_ITERATOR>" }
  3. Um die CDC-Datensätze mithilfe der get-records API abzurufen, können Sie den im letzten Schritt zurückgegebenen Iterator verwenden. Der folgende Befehl ist ein Beispiel dafür.

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

    Es folgt ein Beispiel für die Ausgabe.

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

Optimieren Sie die Abfragefrequenz anhand der Iteratorposition

Die GetRecords Antwort enthält ein iteratorDescription Feld, das die aktuelle Position Ihres Verbrauchers innerhalb des Shards angibt:

  • AT_TIP— Derzeit sind keine weiteren Datensätze verfügbar. Erwägen Sie, Ihre Abfragefrequenz zu reduzieren, um die Kosten zu optimieren.

  • BEHIND_TIP— Der Stream-Tip bewegt sich kontinuierlich weiter. Möglicherweise sind weitere Datensätze verfügbar. Fahren Sie mit Ihrer normalen Frequenz fort.

BEHIND_TIPEine leere changeRecords Liste zeigt an, dass der Stream läuft, aber an dieser Position sind keine Kundendatensätze verfügbar. Fahren Sie normal mit der Umfrage fort.