QLDB でのストリームを使用した開発 - Amazon Quantum 台帳データベース (Amazon QLDB)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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を参照してください。このサンプルアプリケーションをダウンロードしてインストールする方法については、「Amazon QLDBJava サンプルアプリケーションのインストール」を参照してください。

注記

アプリケーションをインストールした後、台帳を作成するために、Java チュートリアルのステップ 1 に進まないでください。ストリーミング用のこのサンプルアプリケーションでは、vehicle-registration の台帳が作成されます。

このサンプルアプリケーションでは、「Java チュートリアル」の完全なソースコードとその依存関係 (以下のモジュールを含む) がパッケージ化されています。

  • AWS SDK for Java – 台帳、QLDBジャーナルストリーム、Kinesis データストリームなど、 QLDBと Kinesis Data Streams リソースの両方を作成および削除します。

  • Java 用 Amazon QLDBドライバー - テーブルの作成やドキュメントの挿入など、PartiQL ステートメントを使用して台帳でデータトランザクションを実行します。

  • Kinesis Client Library - Kinesis データストリームのデータを消費して処理します。

コードの実行

StreamJournal クラスには、以下のオペレーションを示すチュートリアルコードが含まれています。

  1. vehicle-registration という名前の台帳を作成し、テーブルを作成して、それらをサンプルデータとともにロードします。

    注記

    このコードを実行する前に、vehicle-registration という名前の有効な台帳がないことを確認してください。

  2. Kinesis データストリーム、 が Kinesis データストリームの書き込み許可を引き受けQLDBることができる IAMロール、およびQLDBジャーナルストリームを作成します。

  3. を使用して、Kinesis データストリームを処理し、各QLDBデータレコードを記録するストリームリーダーKCLを起動します。

  4. ストリームデータを使用して、vehicle-registration サンプル台帳のハッシュチェーンを検証します。

  5. ストリームリーダーを停止し、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を参照してください。このアプリケーションは を使用します。 AWS Lambda Kinesis Data Streams コンシューマーを実装する 関数。

リポジトリのクローンを作成するには、次の git コマンドを入力します。

git clone https://github.com/aws-samples/amazon-qldb-streaming-amazon-opensearch-service-sample-python.git

サンプルアプリケーションを実行する方法については、「」のREADME GitHub 「」を参照してください。

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 GitHub 「」を参照してください。