使用 中的串流開發 QLDB - Amazon Quantum Ledger 資料庫 (Amazon QLDB)

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

使用 中的串流開發 QLDB

重要

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

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

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

QLDB 日誌串流 APIs

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

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

    • Kinesis Data Streams 中的記錄彙總預設為啟用。此選項可讓在單一 Kinesis Data Streams QLDB 記錄中發佈多個資料記錄,增加每次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分類帳。

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

  • AWS SDK for Java – 建立和刪除 QLDB和 Kinesis Data Streams 資源,包括分類帳、QLDB日誌串流和 Kinesis 資料串流。

  • 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)

如需 Python 範例應用程式,示範如何將串流與 QLDB Amazon OpenSearch Service 整合,請參閱 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) 整合

如需 Python 範例應用程式,示範如何將串流與 Amazon Simple Notification Service QLDB (AmazonSNS) 整合,請參閱 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 以取得指示。