在 QLDB 中使用串流進行開發 - Amazon Quantum Ledger Database (Amazon QLDB)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 QLDB 中使用串流進行開發

重要

終止支援通知:現有客戶將可以使用 Amazon QLDB,直到 07/31/2025 終止支援為止。如需詳細資訊,請參閱將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL

本節摘要說明您可以搭配 AWS SDK 或 使用的 API 操作 AWS CLI ,以在 Amazon QLDB 中建立和管理日誌串流。它還描述了示範這些操作並使用 Kinesis Client Library (KCL) 或 AWS Lambda 實作串流消費者的範例應用程式。

您可以使用 KCL 來建置 Amazon Kinesis Data Streams 的取用者應用程式。KCL 會在低階 Kinesis Data Streams API 上提供有用的抽象,可以簡化程式碼。若要進一步了解 KCL,請參閱《Amazon Kinesis Kinesis Data Streams 開發人員指南》中的使用 Kinesis 用戶端程式庫。

QLDB 日誌串流 APIs

QLDB API 提供下列日誌串流操作,以供應用程式使用:

  • StreamJournalToKinesis – 為指定的 QLDB 總帳建立日誌串流。串流會擷取遞交至總帳日誌的每個文件修訂,並將資料交付至指定的 Kinesis Data Streams 資源。

    • Kinesis Data Streams 中的記錄彙總預設為啟用。此選項可讓 QLDB 在單一 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/amazon-qldb-dmv-sample-java。如需如何下載和安裝此範例應用程式的指示,請參閱 安裝 Amazon QLDB Java 範例應用程式

注意

安裝應用程式後,請勿繼續進行 Java 教學課程的步驟 1 來建立總帳。此串流應用程式範例會為您建立vehicle-registration總帳。

此範例應用程式會封裝來自 Java 教學課程及其相依性的完整原始碼,包括下列模組:

執行程式碼

StreamJournal 類別包含教學課程程式碼,示範下列操作:

  1. 建立名為 的總帳vehicle-registration、建立資料表,並使用範例資料載入它們。

    注意

    在執行此程式碼之前,請確定您還沒有名為 的作用中總帳vehicle-registration

  2. 建立 Kinesis 資料串流,此 IAM 角色可讓 QLDB 取得 Kinesis 資料串流的寫入許可,以及 QLDB 日誌串流。

  3. 使用 KCL 啟動串流讀取器,以處理 Kinesis 資料串流並記錄每個 QLDB 資料記錄。

  4. 使用串流資料來驗證vehicle-registration範例總帳的雜湊鏈。

  5. 停止串流讀取器、取消 QLDB 日誌串流、刪除總帳,以及刪除 Kinesis 資料串流,以清除所有資源。

若要執行StreamJournal教學課程程式碼,請從專案根目錄輸入下列 Gradle 命令。

./gradlew run -Dtutorial=streams.StreamJournal

與 OpenSearch Service (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

若要執行範例應用程式,請參閱 GitHub 上的 README 以取得說明。

與 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

若要執行範例應用程式,請參閱 GitHub 上的 README 以取得說明。