DynamoDB 隨需資料表的最大輸送量
對於隨需資料表,您可選擇在個別資料表及其相關的全域次要索引 (GSI) 上,指定每秒最大讀取、寫入 (或兩者) 輸送量。指定最大隨需輸送量有助於將資料表層級的使用量與成本維持在可控範圍內。根據預設,最大輸送量設定不會套用,且您的隨需輸送量速率會受限於帳戶中所有資料表合計 40,000 個資料表層級的讀寫輸送量AWS服務配額。如有需要,您可以申請提高服務配額上限。
當您設定隨需資料表的最大輸送量時,超過設定上限的輸送量請求將會受到限流處理。您可依應用程式需求,隨時修改資料表層級的輸送量設定。
以下列出數個可受益於設定隨需資料表最大輸送量的常見使用案例:
-
輸送量成本最佳化 – 為隨需資料表設定最大輸送量,可進一步提升成本的可預測性與可管理性。此外,隨需模式提供更高彈性,可支援流量模式與預算各異的工作負載。
-
防止過度使用 – 透過設定最大輸送量,您可避免隨需資料表因非最佳化程式碼或異常程序導致讀寫耗用量意外激增。此資料表層級設定可防止組織於特定時間內耗用過多資源。
-
保護下游服務 – 客戶應用程式可能同時採用無伺服器與傳統伺服器架構。架構中的無伺服器元件可快速擴展以因應需求。然而,容量固定的下游元件可能因此不堪負荷。實施隨需資料表的最大輸送量設定,可避免大量事件傳遞至多個下游元件並產生非預期副作用。
您可為新建或現有的單一區域資料表、全域資料表及 GSI 設定隨需模式的最大輸送量。您亦可於資料表還原或從 Amazon S3 匯入資料的工作流程中設定最大輸送量。
您可透過 DynamoDB 主控台
注意
隨需資料表的最大輸送量採「盡力而為」政策,應視為目標值,而非保證的請求上限。由於高載容量,您的工作負載可能暫時超出設定的最大輸送量。在部分情況下,DynamoDB 會利用高載容量以處理超出資料表最大輸送量設定的讀寫請求。使用高載容量,未預期的讀取或寫入請求在經過限流之後可能會成功。
使用隨需模式最大輸送量的考量事項
當您在隨需模式中設定資料表的最大輸送量時,請注意以下事項:
-
您可針對任一隨需資料表的讀寫輸送量上限,或該表中個別的全域次要索引,微調設定以符合特定需求。
-
您可透過 Amazon CloudWatch 監控並分析 DynamoDB 資料表層級的使用指標,以判定隨需模式的適當最大輸送量設定。如需更多詳細資訊,請參閱 DynamoDB 指標和維度。
-
當您在任一全域資料表複本上設定最大讀寫 (或兩者) 輸送量時,系統會自動將相同設定套用至所有複本資料表。全域資料表中的複本資料表與次要索引必須具有相同的寫入輸送量設定,才能確保資料正確複寫。如需更多詳細資訊,請參閱 全域資料表的最佳實務。
-
可指定的最小讀取或寫入最大輸送量為每秒一個請求單位。
-
指定的最大輸送量必須低於任一隨需資料表或其全域次要索引的預設輸送量配額。
請求限流與 CloudWatch 指標
若您的應用程式超出隨需資料表設定的讀寫輸送量上限,DynamoDB 會開始對這些請求進行限流。當 DynamoDB 限流讀取或寫入時,會將 ThrottlingException 傳回至呼叫者。接著,您可視需要採取相應的行動。例如,您可提高或停用資料表的最大輸送量設定,或等待短暫間隔後再重試請求。
為簡化監控資料表或全域次要索引之最大輸送量,CloudWatch 提供以下指標:OnDemandMaxReadRequestUnits 和 OnDemandMaxWriteRequestUnits。