QLDB でのストリーミングを使用した開発 - Amazon Quantum Ledger Database (Amazon QLDB)

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

QLDB でのストリーミングを使用した開発

このセクションでは、 AWS SDK または で Amazon QLDB でジャーナルストリームを作成および管理 AWS CLI するために使用できる API オペレーションの概要を説明します。また、これらのオペレーションのデモを行い、Kinesis Client Library (KCL) または AWS Lambda を使用してストリーミングコンシューマーを実装するサンプルアプリケーションも示します。

KCL を使用して Amazon Kinesis Data Streams のコンシューマーアプリケーションを構築できます。KCL は、低レベルの Kinesis Data Streams API の上で役に立つ抽象化を提供することによりコーディングを簡素化します。KCL の詳細については、「Amazon Kinesis Data Streams デベロッパーガイド」の「Using the Kinesis Client Library」を参照してください。

QLDB ジャーナルストリーミング API

QLDB API は、アプリケーションプログラムで使用する、以下のジャーナルストリーミングオペレーションを提供します。

  • StreamJournalToKinesis - 指定した QLDB 台帳のジャーナルストリーミングを作成します。このストリーミングは、台帳のジャーナルにコミットされたドキュメントリビジョンをすべてキャプチャし、指定した Kinesis Data Streams リソースにそのデータを配信します。

    • Kinesis Data Streams のレコード集約は、デフォルトで有効になっています。QLDB が 1 つの Kinesis Data Streams レコードで複数のデータレコードを発行できるようにします。これにより、API コールごとに送信されるレコードの数が増加します。

      レコード集約は、レコードの処理に重要な意味を持ち、ストリーミングコンシューマーで集約を解除する必要があります。詳細については、「Amazon Kinesis Data Streams デベロッパーガイド」の「KPL の主要な概念」および「コンシューマーの集約解除」を参照してください。

  • DescribeJournalKinesisStream - 指定された QLDB ジャーナルストリーミングに関する詳細情報を返します。出力には、ARN、ストリーム名、現在のステータス、作成時刻、および元のストリーム作成リクエストのパラメータが含まれます。

  • ListJournalKinesisStreamsForLedger - 指定された台帳のすべての QLDB ジャーナルストリーミング記述子のリストを返します。各ストリーム記述子の出力には、DescribeJournalKinesisStream によって返されるものと同じ詳細が含まれます。

  • CancelJournalKinesisStream - 指定された QLDB ジャーナルストリーミングを終了します。ストリームをキャンセルするには、その現在のステータスが ACTIVE である必要があります。

    キャンセルしたストリームを再開することはできません。Kinesis Data Streams へのデータの配信を再開するには、新しい QLDB ストリーミングを作成します。

これらの API オペレーションの詳細については、Amazon QLDB API リファレンス を参照してください。

を使用したジャーナルストリームの作成と管理については AWS CLI、 AWS CLI コマンドリファレンス を参照してください。

サンプルアプリケーション

QLDB には、ジャーナルストリーミングを使用するさまざまなオペレーションのデモを行うサンプルアプリケーションがあります。これらのアプリケーションはAWS 、サンプル GitHub サイト のオープンソースです。

基本的な演算 (Java)

QLDB ジャーナルストリームの基本的なオペレーションを示す Java コード例については、 GitHub リポジトリ aws-samples/-java amazon-qldb-dmv-sampleを参照してください。このサンプルアプリケーションをダウンロードしてインストールする方法については、「Amazon QLDB 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 クラスには、以下のオペレーションを示すチュートリアルコードが含まれています。

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

    注記

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

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

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

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

  5. ストリーミングリーダーを停止し、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を参照してください。このアプリケーションは、 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)

QLDB ストリームを Amazon Simple Notification Service (Amazon SNS ) と統合する方法を示す Python サンプルアプリケーションについては、 GitHub リポジトリ aws-samples/amazon-qldb-streams-dmv-sample-lambda-python を参照してください。

このアプリケーションは、 AWS Lambda 関数を使用して Kinesis Data Streams コンシューマーを実装します。これは、Amazon SNS トピックにメッセージを送信します。トピックには、Amazon Simple Queue Service (Amazon SQS) キューがサブスクライブされています。

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

git clone https://github.com/aws-samples/amazon-qldb-streams-dmv-sample-lambda-python.git

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