本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 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 資源。 -
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
注意
安裝應用程式後,請勿繼續進行 Java 教學課程的步驟 1 來建立總帳。此串流應用程式範例會為您建立vehicle-registration
總帳。
此範例應用程式會封裝來自 Java 教學課程及其相依性的完整原始碼,包括下列模組:
-
適用於 Java 的 AWS SDK
– 建立和刪除 QLDB 和 Kinesis Data Streams 資源,包括總帳、QLDB 日誌串流和 Kinesis 資料串流。 -
適用於 Java 的 Amazon QLDB 驅動程式 – 使用 PartiQL 陳述式在總帳上執行資料交易,包括建立資料表和插入文件。
-
Kinesis Client Library – 使用和處理來自 Kinesis 資料串流的資料。
執行程式碼
StreamJournal
-
建立名為 的總帳
vehicle-registration
、建立資料表,並使用範例資料載入它們。注意
在執行此程式碼之前,請確定您還沒有名為 的作用中總帳
vehicle-registration
。 -
建立 Kinesis 資料串流,此 IAM 角色可讓 QLDB 取得 Kinesis 資料串流的寫入許可,以及 QLDB 日誌串流。
-
使用 KCL 啟動串流讀取器,以處理 Kinesis 資料串流並記錄每個 QLDB 資料記錄。
-
使用串流資料來驗證
vehicle-registration
範例總帳的雜湊鏈。 -
停止串流讀取器、取消 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
若要複製儲存庫,請輸入下列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