本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
與 DynamoDB 整合的最佳實務
整合 DynamoDB 與其他服務時,您應該始終遵循使用每個個別服務的最佳實務。不過,您應該考量一些特定於整合的最佳實務。
在 DynamoDB 中建立快照
-
一般而言,我們建議使用匯出至 Amazon S3 來建立快照,以進行初始複寫。這種作法既符合成本效益,也不會與應用程式的流量競爭輸送量。您也可以考慮備份與還原至新資料表,然後再進行掃描操作。如此可避免與您的應用程式競爭輸送量,但通常成本效益會比匯出更低。
-
執行匯出時,請務必設定
StartTime。這可讓您輕鬆地判斷要從何處開始變更資料擷取 (CDC)。 -
使用匯出至 S3 時,請在 S3 儲存貯體上設定生命週期動作。一般而言,將過期動作設定為 7 天是安全的,但您仍應遵循公司可能設立的任何準則。即使您在擷取後明確刪除項目,此動作也有助於發現問題,如此有助於降低不必要的成本並防止違反政策。
在 DynamoDB 中擷取資料變更
-
如果您需要近乎即時的 CDC,請使用 DynamoDB Streams 或 Amazon Kinesis Data Streams (KDS)。當您在決定要使用何者時,通常會考慮哪個最容易搭配下游服務使用。如果您需要在分割區索引鍵層級提供依序事件處理,或您有異常大型的項目,請使用 DynamoDB Streams。
-
如果您不需要近乎即時的 CDC,可以使用以增量匯出匯出到 Amazon S3,僅匯出在兩個時間點之間發生的變更。
如果您使用匯出到 S3 來產生快照,此功能特別有用,因為您可以使用類似的程式碼來處理增量匯出。匯出到 S3 的成本通常略低於先前的串流選項,但成本通常不是選擇該使用哪個選項的主要因素。
-
您通常只能同時有兩個 DynamoDB 串流的取用者。在規劃整合策略時,請將這一點納入考量。
-
請勿使用掃描來偵測變更。這可能適用於小規模作業,但很快就會變得相當不切實際。