本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Kinesis Data Streams 來擷取 DynamoDB 的變更
您可以使用 Amazon Kinesis Data Streams 來擷取 Amazon DynamoDB 的變更。
Kinesis Data Streams 會擷取任何 DynamoDB 資料表中的項目層級修改,並將其複製到您選擇的 Kinesis 資料串流。您的應用程式可以存取此串流,並以近乎即時的速度檢視項目層級的變更。您每小時可以持續擷取和儲存 TB 級的資料。您可以利用較長的資料保留時間,並透過增強的廣發功能,您可以同時觸及兩個以上的下游應用程式。其他優點包括額外的稽核和安全透明度。
Kinesis Data Streams 也可讓您存取 Amazon Data Firehose 和 Amazon Managed Service for Apache Flink。這可讓您建置應用程式來啟動即時儀表板、產生提醒、實作動態定價和廣告,以及執行複雜的資料分析及機器學習演算法。
注意
使用 DynamoDB 專用 Kinesis 資料串流,會同時適用於資料串流 Kinesis Data Streams 定價
Kinesis Data Streams 如何與 DynamoDB 搭配運作
當 DynamoDB 資料表啟用 Kinesis 資料串流時,資料表會傳送資料記錄,以擷取該資料表資料的任何變更。此資料記錄包括:
-
最近建立、更新或刪除之任何項目的具體時間
-
該項目的主鍵
-
修改前記錄的快照
-
修改後記錄的快照
這些資料記錄會以接近即時的速度擷取和發佈,並予以發佈。將其寫入 Kinesis 資料串流後,就可以像其他記錄一樣讀取。您可以使用 Kinesis Client Library、使用 AWS Lambda、呼叫 Kinesis Data Streams API並使用其他連線的服務。如需詳細資訊,請參閱《Amazon Kinesis Data Streams 開發人員指南》中的從 Amazon Kinesis Data Streams 讀取資料。
這些對資料的變更也會以非同步方式擷取。Kinesis 對其串流來源的資料表沒有效能影響。存放在 Kinesis 資料串流中的串流紀錄會採用靜態加密。如需詳細資訊,請參閱 Amazon Kinesis Data Streams 中的資料保護。
Kinesis 資料串流記錄的顯示順序可能與項目變更發生時不同。相同的項目通知也可能會在串流中多次出現。您可以檢查 ApproximateCreationDateTime
屬性,以識別項目修改發生的順序,並識別重複的記錄。
當您將 Kinesis 資料串流啟用為 DynamoDB 資料表的串流目的地時,您可以設定以毫秒或微秒為單位ApproximateCreationDateTime
的值精確度。根據預設, 會以毫秒為單位ApproximateCreationDateTime
指示變更的時間。此外,您可以在作用中串流目的地上變更此值。更新後,寫入 Kinesis 的串流記錄將具有所需精確度ApproximateCreationDateTime
的值。
寫入 DynamoDB 的二進位值必須使用 base64 編碼格式進行編碼。然而,當資料記錄寫入 Kinesis 資料串流時,這些編碼的二進位值會使用 base64 編碼再次編碼。從 Kinesis 資料串流讀取這些記錄時,為了擷取原始二進位值,應用程式必須將這些值解碼兩次。
使用 Kinesis Data Streams 時,DynamoDB 會根據變更資料擷取單位收取費用。每個單一項目的 1 KB 變更會計為一個變更資料擷取單位。使用與寫入作業的容量單位耗用量相同的邏輯,以寫入串流之項目的「之前」和「之後」映像中較大者,計算每個項目的 KB 變化量 。運作方式與 DynamoDB 隨需模式類似,您不需要為變更資料擷取單位佈建容量輸送量。
為 DynamoDB 資料表開啟 Kinesis 資料串流
您可以使用 AWS Management Console、 或 AWS Command Line Interface () AWS SDK,從現有的 DynamoDB 資料表啟用或停用串流至 Kinesis AWS CLI。
-
您只能將資料從 DynamoDB 串流到與資料表位於相同 AWS 帳戶和 AWS 區域中的 Kinesis Data Streams。
-
您只能將 DynamoDB 資料表中的資料串流至一個 Kinesis 資料串流。
在 DynamoDB 資料表上變更 Kinesis Data Streams 目的地
根據預設,所有 Kinesis 資料串流記錄都包含 ApproximateCreationDateTime
屬性。此屬性代表建立每個記錄時大約時間的時間戳記,以毫秒為單位。您可以使用 https://console.aws.amazon.com/kinesis