翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon からのジャーナルデータのストリーミング QLDB
重要
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了QLDBまで Amazon を使用できます。詳細については、「Amazon Ledger QLDB を Amazon Aurora Postgre に移行するSQL
Amazon は、データストレージにジャーナル と呼ばれるイミュータブルなトランザクションログQLDBを使用します。ジャーナルは、コミット済みデータへの変更をすべて追跡し、完全かつ検証可能な変更履歴を一定の期間にわたって維持します。
ジャーナルにコミットQLDBされたすべてのドキュメントリビジョンをキャプチャし、このデータをほぼリアルタイムで Amazon Kinesis Data Streams に配信するストリームを に作成できます。 Amazon Kinesis
その後、Kinesis ストリーミングプラットフォームまたは Kinesis Client Library を使用して、ストリーミングの消費、データレコードの処理、およびデータコンテンツの分析を行います。ストリームはQLDB、コントロール 、ブロックサマリー 、リビジョンの詳細 の 3 種類のレコードで Kinesis Data Streams にデータを書き込みます。 詳細については、「QLDB Kinesis のストリームレコード」を参照してください。
トピック
一般的なユースケース
ストリーミングを使用すると、ジャーナルデータを他の サービスと統合しながら、検証可能な単一の信頼できるソースQLDBとして を使用できます。以下は、QLDBジャーナルストリームでサポートされている一般的なユースケースの一部です。
-
イベント駆動型アーキテクチャ - デカップリングされたコンポーネントを使用して、イベント駆動型アーキテクチャスタイルでアプリケーションを構築します。例えば、銀行は を使用できます。 AWS Lambda は、アカウント残高がしきい値を下回ったときに顧客に警告する通知システムを実装する機能を備えています。このようなシステムでは、アカウント残高はQLDB台帳に保持され、残高の変更はジャーナルに記録されます。- AWS Lambda 関数は、ジャーナルにコミットされ、Kinesis データストリームに送信されるバランス更新イベントを消費すると、通知ロジックをトリガーできます。
-
リアルタイム分析 - イベントデータに対してリアルタイム分析を実行する Kinesis コンシューマーアプリケーションを構築します。この機能により、ほぼリアルタイムでインサイトを取得し、変化するビジネス環境に迅速に対応できます。たとえば、e コマースウェブサイトでは、商品の販売データを分析し、販売が制限に達するとすぐに割引商品の広告を停止できます。
-
履歴分析 — 履歴イベントデータを再生QLDBすることで、Amazon のジャーナル指向アーキテクチャを活用します。過去の任意の時点でQLDBストリームを開始することを選択できます。この時点では、それ以降のすべてのリビジョンが Kinesis Data Streams に配信されます。この機能を使用すると、履歴データの分析ジョブを実行する Kinesis コンシューマーアプリケーションを構築できます。例えば、e コマースウェブサイトでは、必要に応じてアドホック分析を実行し、これまで取得されていなかった過去の販売メトリクスを生成できます。
-
専用データベースへのレプリケーション — QLDBジャーナルストリームを使用して、QLDB台帳を他の専用データストアに接続します。例えば、Kinesis ストリーミングデータプラットフォームを使用して Amazon OpenSearch Service と統合すると、QLDBドキュメントのフルテキスト検索機能が提供されます。また、カスタム Kinesis コンシューマーアプリケーションを構築して、異なるマテリアライズドビューを提供する他の目的別データベースにジャーナルデータをレプリケートすることもできます。たとえば、リレーショナルデータの場合は Amazon Aurora、グラフベースのデータの場合は Amazon Neptune にレプリケートします。
ストリームの消費
データレコードの大量のストリーミングの連続的な消費、処理、分析には、Kinesis Data Streams を使用します。Kinesis Data Streams に加えて、Kinesis ストリーミングデータプラットフォームには Amazon Data Firehose と Amazon Managed Service for Apache Flink が含まれています。このプラットフォームを使用して、Amazon OpenSearch Service、Amazon Redshift、Amazon S3、Splunk などのサービスにデータレコードを直接送信できます。詳細については、「Amazon Kinesis Data Streams デベロッパーガイド」の「Amazon Kinesis Data Streams コンシューマー」を参照してください。
また、Kinesis Client Library (KCL) を使用してストリームコンシューマーアプリケーションを構築し、データレコードをカスタムで処理することもできます。は、低レベルの Kinesis Data Streams を超える有用な抽象化を提供することで、コーディングKCLを簡素化しますAPI。の詳細についてはKCL、「Amazon Kinesis Data Streams デベロッパーガイド」の「Kinesis Client Library の使用」を参照してください。 Amazon Kinesis
配信の保証
QLDB ストリームはat-least-once配信保証を提供します。ストリームによって生成される各データレコードは、少なくとも QLDB 1 回 Kinesis Data Streams に配信されます。同じレコードが Kinesis データストリームに複数回表示されることがあります。したがって、ユースケースで必要な場合は、コンシューマーアプリケーションレイヤーに重複除外ロジックが必要です。
また、注文の保証はありません。状況によっては、Kinesis データストリームでQLDBブロックとリビジョンが順序どおりに生成されないことがあります。詳細については、「重複する レコードと out-of-order レコードの処理」を参照してください。
配信のレイテンシーに関する注意事項
QLDB ストリームは通常、ほぼリアルタイムで Kinesis Data Streams に更新を配信します。ただし、次のシナリオでは、新しくコミットされたQLDBデータが Kinesis データストリームに出力される前に、レイテンシーが増加する可能性があります。
-
Kinesis は、Kinesis Data Streams のプロビジョニングに応じてQLDB、 からストリーミングされるデータをスロットリングできます。例えば、1 つの QLDB Kinesis データストリームに書き込むストリームが複数あり、 のリクエストレートが Kinesis ストリームリソースの容量QLDBを超えた場合に発生する可能性があります。Kinesis のスロットリングは、オンデマンドプロビジョニングを使用している場合、スループットが 15 分未満で前回のピークの 2 倍以上に増加した場合にも発生する可能性があります。
この超過スループットは、Kinesis メトリクス
WriteProvisionedThroughputExceeded
を監視することで測定できます。詳細と可能な解決策については、「Kinesis データストリームのスロットリングエラーのトラブルシューティング方法」を参照してください。 -
QLDB ストリームを使用すると、開始日時が過去のものであり、終了日時が でない無期限のストリームを作成できます。設計上、 は、指定された開始日時のすべての以前のデータが正常に配信された後にのみ、新しくコミットされたデータの Kinesis Data Streams への出力QLDBを開始します。このシナリオでさらにレイテンシーが発生する場合は、先行データが配信されるのを待つか、ストリームをより遅い開始日時から開始する必要があるかもしれません。
ストリームの使用開始
Kinesis Data Streams へのジャーナルデータのストリーミングを開始するために必要な手順の概要を次に示します。
-
Kinesis Data Streams リソースを作成します。詳細については、「Amazon Kinesis Data Streams デベロッパーガイド」の「データストリームの作成および更新」を参照してください。
-
が Kinesis データストリームの書き込みアクセス許可を引き受けQLDBることができる IAMロールを作成します。手順については、QLDB のストリームアクセス許可 を参照してください。
-
QLDB ジャーナルストリームを作成します。手順については、QLDB でのストリームの作成と管理 を参照してください。
-
前のセクション「ストリームの消費」で説明したように、Kinesis データストリームを消費します。Kinesis Client Library または の使用方法を示すコード例 AWS Lambda「QLDB でのストリームを使用した開発」を参照してください。