翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
QLDB でのストリームを使用した開発
重要
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了QLDBまで Amazon を使用できます。詳細については、「Amazon QLDB 台帳を Amazon Aurora Postgre に移行するSQL
このセクションでは、 または で AWS SDK Amazon でジャーナルストリームを作成および管理 AWS CLI するために使用できるAPIオペレーションをまとめますQLDB。また、これらのオペレーションを実証し、Kinesis Client Library (KCL) または を使用してストリームコンシューマー AWS Lambda を実装するサンプルアプリケーションについても説明します。
を使用してKCL、Amazon Kinesis Data Streams のコンシューマーアプリケーションを構築できます。は、低レベルの Kinesis Data Streams を超える有用な抽象化を提供することで、コーディングKCLを簡素化しますAPI。の詳細についてはKCL、Amazon KinesisKinesis Data Streams デベロッパーガイド」の「Kinesis クライアントライブラリの使用」を参照してください。
目次
QLDB ジャーナルストリーム APIs
QLDB API には、アプリケーションプログラムで使用できるように、次のジャーナルストリームオペレーションが用意されています。
-
StreamJournalToKinesis
– 特定のQLDB台帳のジャーナルストリームを作成します。このストリーミングは、台帳のジャーナルにコミットされたドキュメントリビジョンをすべてキャプチャし、指定した Kinesis Data Streams リソースにそのデータを配信します。-
Kinesis Data Streams のレコード集約は、デフォルトで有効になっています。このオプションを使用すると、1 QLDB つの Kinesis Data Streams レコードに複数のデータレコードを発行できるため、API呼び出しごとに送信されるレコードの数が増えます。
レコード集約は、レコードの処理に重要な意味を持ち、ストリーミングコンシューマーで集約を解除する必要があります。詳細については、Amazon Kinesis Data Streams デベロッパーガイド」のKPL「主要な概念」と「コンシューマーの分離」を参照してください。
-
-
DescribeJournalKinesisStream
– 特定のQLDBジャーナルストリームに関する詳細情報を返します。出力にはARN、、ストリーム名、現在のステータス、作成時間、元のストリーム作成リクエストのパラメータが含まれます。 -
ListJournalKinesisStreamsForLedger
– 特定の台帳のすべてのQLDBジャーナルストリーム記述子のリストを返します。各ストリーム記述子の出力には、DescribeJournalKinesisStream
によって返されるものと同じ詳細が含まれます。 -
CancelJournalKinesisStream
— 特定のQLDBジャーナルストリームを終了します。ストリームをキャンセルするには、その現在のステータスがACTIVE
である必要があります。キャンセルしたストリームを再開することはできません。Kinesis Data Streams へのデータの配信を再開するには、新しいQLDBストリームを作成できます。
これらのAPIオペレーションの詳細については、「」を参照してくださいAmazon QLDBAPIリファレンス。
を使用したジャーナルストリームの作成と管理の詳細については AWS CLI、 AWS CLI コマンドリファレンス を参照してください。
サンプルアプリケーション
QLDB は、ジャーナルストリームを使用したさまざまなオペレーションを示すサンプルアプリケーションを提供します。これらのアプリケーションは、 AWS サンプル GitHub サイト
基本的な演算 (Java)
QLDB ジャーナルストリームの基本的な操作を示す Java コードの例については、 GitHub 「リポジトリ aws-samples/amazon-qldb-dmv-sample-java
注記
アプリケーションをインストールした後、台帳を作成するために、Java チュートリアルのステップ 1 に進まないでください。ストリーミング用のこのサンプルアプリケーションでは、vehicle-registration
の台帳が作成されます。
このサンプルアプリケーションでは、「Java チュートリアル」の完全なソースコードとその依存関係 (以下のモジュールを含む) がパッケージ化されています。
-
AWS SDK for Java
– 台帳、QLDBジャーナルストリーム、Kinesis データストリームを含む QLDBと Kinesis Data Streams リソースの両方を作成および削除します。 -
Java 用 Amazon QLDBドライバー - テーブルの作成やドキュメントの挿入など、PartiQL ステートメントを使用して台帳でデータトランザクションを実行します。
-
Kinesis Client Library - Kinesis データストリームのデータを消費して処理します。
コードの実行
StreamJournal
-
vehicle-registration
という名前の台帳を作成し、テーブルを作成して、それらをサンプルデータとともにロードします。注記
このコードを実行する前に、
vehicle-registration
という名前の有効な台帳がないことを確認してください。 -
Kinesis データストリーム、Kinesis データストリームQLDBの書き込みアクセス許可を引き受けることができるIAMロール、およびQLDBジャーナルストリームを作成します。
-
KCL を使用して、Kinesis データストリームを処理し、各QLDBデータレコードを記録するストリームリーダーを起動します。
-
ストリームデータを使用して、
vehicle-registration
サンプル台帳のハッシュチェーンを検証します。 -
ストリームリーダーを停止し、QLDBジャーナルストリームをキャンセルし、台帳を削除し、Kinesis データストリームを削除して、すべてのリソースをクリーンアップします。
StreamJournal
チュートリアルコードを実行するには、プロジェクトのルートディレクトリから次の Gradle コマンドを入力します。
./gradlew run -Dtutorial=streams.StreamJournal
OpenSearch サービスとの統合 (Python)
QLDB ストリームを Amazon OpenSearch Service と統合する方法を示す Python サンプルアプリケーションについては、 GitHub リポジトリ aws-samples/amazon-qldb-streaming-amazon-opensearch-service-sample-python
リポジトリのクローンを作成するには、次の git
コマンドを入力します。
git clone https://github.com/aws-samples/amazon-qldb-streaming-amazon-opensearch-service-sample-python.git
サンプルアプリケーションを実行する方法については、README
Amazon SNS および Amazon SQS (Python) との統合
QLDB ストリームを Amazon Simple Notification Service (Amazon SNS) と統合する方法を示す Python サンプルアプリケーションについては、 GitHub リポジトリ aws-samples/amazon-qldb-streams-dmv-sample-lambda-python
このアプリケーションは、 AWS Lambda 関数を使用して Kinesis Data Streams コンシューマーを実装します。Amazon Simple Queue Service (Amazon SQS) キューがサブスクライブされている Amazon SNSトピックにメッセージを送信します。
リポジトリのクローンを作成するには、次の git
コマンドを入力します。
git clone https://github.com/aws-samples/amazon-qldb-streams-dmv-sample-lambda-python.git
サンプルアプリケーションを実行する方法については、README