Amazon からのジャーナルデータのストリーミング QLDB - Amazon Quantum 台帳データベース (Amazon QLDB)

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

Amazon からのジャーナルデータのストリーミング QLDB

重要

サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了QLDBまで Amazon を使用できます。詳細については、「Amazon QLDB 台帳を Amazon Aurora Postgre に移行するSQL」を参照してください。

Amazon は、データストレージにジャーナル と呼ばれる不変のトランザクションログQLDBを使用します。ジャーナルは、コミット済みデータへの変更をすべて追跡し、完全かつ検証可能な変更履歴を一定の期間にわたって維持します。

で、ジャーナルにコミットされたすべてのドキュメントリビジョンをキャプチャし、このデータをほぼリアルタイムで Amazon Kinesis Data Streams に配信QLDBするストリームを作成できます。QLDB ストリームは、台帳のジャーナルから Kinesis データストリームリソースへのデータの継続的なフローです。

その後、Kinesis ストリーミングプラットフォームまたは Kinesis Client Library を使用して、ストリーミングの消費、データレコードの処理、およびデータコンテンツの分析を行います。QLDB ストリームは Kinesis Data Streams にデータを 3 種類のレコードに書き込みます。コントロール ブロックの概要 リビジョンの詳細 です。詳細については、「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 FirehoseAmazon Managed Service for Apache Flink が含まれています。このプラットフォームを使用して、Amazon OpenSearch Service、Amazon Redshift、Amazon S3、Splunk などのサービスに直接データレコードを送信できます。詳細については、「Amazon Kinesis Data Streams デベロッパーガイド」の「Amazon Kinesis Data Streams コンシューマー」を参照してください。

Kinesis クライアントライブラリ (KCL) を使用して、ストリームコンシューマーアプリケーションを構築し、データレコードをカスタムで処理することもできます。は、低レベルの Kinesis Data Streams の上に有用な抽象化を提供することで、コーディングKCLを簡素化しますAPI。の詳細についてはKCL、Amazon KinesisKinesis Data Streams デベロッパーガイド」の「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、 からストリーミングされるデータをスロットリングできます。例えば、単一の Kinesis データQLDBストリームに書き込む複数のストリームがあり、 のリクエストレートが Kinesis ストリームリソースの容量QLDBを超えている場合に発生する可能性があります。Kinesis のスロットリングは、オンデマンドプロビジョニングを使用している場合、スループットが 15 分未満で前回のピークの 2 倍以上に増加した場合にも発生する可能性があります。

    この超過スループットは、Kinesis メトリクス WriteProvisionedThroughputExceeded を監視することで測定できます。詳細と可能な解決策については、「Kinesis データストリームのスロットリングエラーのトラブルシューティング方法」を参照してください。

  • QLDB ストリームでは、開始日時が過去の無期限のストリームを作成し、終了日時が でないストリームを作成できます。設計上、 QLDB は、指定された開始日時のすべての以前のデータが正常に配信された後にのみ、新しくコミットされたデータを Kinesis Data Streams に出力します。このシナリオでさらにレイテンシーが発生する場合は、先行データが配信されるのを待つか、ストリームをより遅い開始日時から開始する必要があるかもしれません。

ストリームの使用開始

Kinesis Data Streams へのジャーナルデータのストリーミングを開始するために必要な手順の概要を次に示します。

  1. Kinesis Data Streams リソースを作成します。詳細については、「Amazon Kinesis Data Streams デベロッパーガイド」の「データストリームの作成および更新」を参照してください。

  2. QLDB が Kinesis データストリームの書き込み許可を引き受けることができるIAMロールを作成します。手順については、QLDB のストリームアクセス許可 を参照してください。

  3. QLDB ジャーナルストリームを作成します。手順については、QLDB でのストリームの作成と管理 を参照してください。

  4. 前のセクション「ストリームの消費」で説明したように、Kinesis データストリームを消費します。Kinesis Client Library または の使用方法を示すコード例については AWS Lambda、「」を参照してくださいQLDB でのストリームを使用した開発