翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
QLDB でのストリームを使用した開発
重要
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了QLDBまで Amazon を使用できます。詳細については、「Amazon Ledger QLDB を Amazon Aurora Postgre に移行するSQL
このセクションでは、 で使用できるAPIオペレーションの概要を説明します。 AWS SDK または AWS CLI Amazon でジャーナルストリームを作成および管理するための QLDB。また、これらのオペレーションをデモンストレーションし、Kinesis Client Library (KCL) または を使用するサンプルアプリケーションについても説明します。 AWS Lambda ストリームコンシューマーを実装する 。
を使用してKCL、Amazon Kinesis Data Streams のコンシューマーアプリケーションを構築できます。は、低レベルの Kinesis Data Streams を超える有用な抽象化を提供することで、コーディングKCLを簡素化しますAPI。の詳細についてはKCL、「Amazon Kinesis Data Streams デベロッパーガイド」の「Kinesis Client Library の使用」を参照してください。 Amazon Kinesis
目次
QLDB ジャーナルストリーム APIs
QLDB API には、アプリケーションプログラムで使用できるように、次のジャーナルストリームオペレーションが用意されています。
-
StreamJournalToKinesis
– 特定のQLDB台帳のジャーナルストリームを作成します。このストリーミングは、台帳のジャーナルにコミットされたドキュメントリビジョンをすべてキャプチャし、指定した Kinesis Data Streams リソースにそのデータを配信します。-
Kinesis Data Streams のレコード集約は、デフォルトで有効になっています。このオプションを使用すると、1 QLDB つの Kinesis Data Streams レコードに複数のデータレコードを発行できるため、API呼び出しごとに送信されるレコードの数が増えます。
レコード集約は、レコードの処理に重要な意味を持ち、ストリーミングコンシューマーで集約を解除する必要があります。詳細については、「Amazon Kinesis Data Streams デベロッパーガイド」のKPL「主要な概念」と「コンシューマーの集約解除」を参照してください。 https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html Amazon Kinesis
-
-
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/-java amazon-qldb-dmv-sample
注記
アプリケーションをインストールした後、台帳を作成するために、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ジャーナルストリームを作成します。
-
を使用して、Kinesis データストリームを処理し、各QLDBデータレコードを記録するストリームリーダーKCLを起動します。
-
ストリームデータを使用して、
vehicle-registration
サンプル台帳のハッシュチェーンを検証します。 -
ストリームリーダーを停止し、QLDBジャーナルストリームをキャンセルし、台帳を削除し、Kinesis データストリームを削除して、すべてのリソースをクリーンアップします。
StreamJournal
チュートリアルコードを実行するには、プロジェクトのルートディレクトリから次の Gradle コマンドを入力します。
./gradlew run -Dtutorial=streams.StreamJournal
OpenSearch サービスとの統合 (Python)
ストリームを Amazon OpenSearch Service と統合する方法を示す QLDB 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) との統合
ストリームを Amazon Simple Notification Service (Amazon SNS) QLDB と統合する方法を示す 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