佈建容量模式 - Amazon DynamoDB

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

佈建容量模式

在 DynamoDB 中建立新的佈建表格時,必須指定其佈建的輸送量容量。這是資料表可支援的讀取和寫入輸送量。DynamoDB 會使用此資訊來確保有足夠的系統資源來滿足您的輸送量需求。

您可以選擇允許 DynamoDB Auto Scaling 功能來管理您資料表的輸送容量。若要使用 auto 調整比例,您必須在建立資料表時提供讀取和寫入容量的初始設定。DynamoDB auto 擴展使用這些初始設定做為起點,然後根據應用程式的需求動態調整它們。如需詳細資訊,請參閱使用 DynamoDB Auto Scaling 功能自動管理輸送容量

隨著應用程式的資料和存取需求變更,您可能需要調整表格的輸送量設定。如果使用了 DynamoDB Auto Scaling 功能,則會自動調整輸送量設定來回應實際工作負載。您也可以使用此UpdateTable作業手動調整表格的輸送量容量。如果您需要將現有資料存放區中的資料大量載入至新的 DynamoDB 資料表,則可以決定這麼做。您可以建立具有大型寫入輸送設定的資料表,然後在大量資料載入完成後減少此設定。

您可以隨時將表格從隨選模式切換為佈建的容量模式。當您在容量模式之間進行多次切換時,適用下列條件:

  • 您可以隨時在隨選模式下將新建立的表格切換為佈建的容量模式。不過,您只能在資料表建立時間戳記後 24 小時切換回隨選模式。

  • 您可以隨時以隨需模式將現有表格切換為已佈建容量模式。但是,您只能在指示切換到隨選的最後一個時間戳記後 24 小時切換回隨選模式。

如需在讀取和寫入容量模式之間切換的詳細資訊,請參閱切換容量模式時的考量

讀取容量單位和寫入容量單位

對於佈建模式表格,您可以根據容量單位指定輸送量需求。這些單位代表應用程式每秒需要讀取或寫入的資料量。您稍後可以視需要修改這些設定,或讓 DynamoDB Auto Scaling 功能自動進行修改。

對於不超過 4 KB 的項目,一個讀取容量單位 (RCU) 代表每秒一個嚴格一致的讀取操作,或每秒兩個最終一致的讀取操作。如需 DynamoDB 讀取一致性模型的詳細資訊,請參閱。讀取一致性

寫入容量單位 (WCU) 代表一個項目每秒寫入一次,最多 1 KB。如需不同讀取和寫入作業的詳細資訊,請參閱讀取和寫入作業

選擇初始輸送量設定

每個應用程序對讀取和寫入數據庫都有不同的要求。決定 DynamoDB 表格的初始輸送量設定時,請考慮下列事項:

  • 預期的讀取和寫入要求率 — 您應該估算每秒需要執行的讀取和寫入次數。

  • 項目大小 — 有些項目足夠小,可以使用單一容量單位讀取或寫入。較大的項目需要多個容量單位。藉由估計表格中項目的平均大小,您可以為表格的佈建輸送量指定準確的設定。

  • 讀取一致性需求 — 讀取容量單位是以強式一致的讀取作業為基礎,這些作業消耗的資料庫資源是最終一致讀取的兩倍。您應該判斷應用程式需要強烈一致讀取,還是可以放寬這項需求並改為執行最終一致讀取 根據預設,DynamoDB 中的讀取作業最終是一致的。如有必要,您可以針對這些作業要求強烈一致的讀取。

例如,假設您想要從表格中每秒讀取 80 個項目。這些項目的大小為 3 KB,而且您需要強烈一致的讀取。在此情況下,每次讀取都需要一個佈建的讀取容量單位。若要判斷此數目,請將作業的項目大小除以 4 KB。然後,四捨五入至最接近的整數,如下列範例所示:

  • 3 KB/4 KB = 0.75 或 1 個讀取容量單位

因此,若要每秒從表格讀取 80 個項目,請將表格佈建的讀取輸送量設定為 80 個讀取容量單位,如下列範例所示:

  • 每個項目 1 個讀取容量單位 × 每秒 80 個讀取 = 80 個讀取容量單位

現在假設您要每秒向表格寫入 100 個項目,並且每個項目的大小為 512 個字節。在此情況下,每個寫入都需要一個佈建的寫入容量單位。若要判斷此數目,請將作業的項目大小除以 1 KB。然後,四捨五入至最接近的整數,如下列範例所示:

  • 512 位元組/1 KB = 0.5 或 1 個寫入容量單位

若要每秒將 100 個項目寫入資料表,請將表格的佈建寫入輸送量設定為 100 個寫入容量單位:

  • 每個項目 1 個寫入容量單位 × 每秒 100 個寫入 = 100 個寫入容量單位

DynamoDB 自動擴展

DynamoDB auto 擴展主動管理表格和全域次要索引的佈建輸送量容量。透過自動調整規模,您可以定義讀取與寫入容量單位的範圍 (上限與下限)。您也可以定義該範圍內的目標使用率百分比。DynamoDB Auto Scaling 功能會嘗試維持您的目標使用率,即使您的應用程式工作負載有所增減。

透過 DynamoDB Auto Scaling,資料表或全域次要索引可增加其佈建的讀取與寫入容量,來處理突然增加的流量,而不需要進行請求調節。當工作負載降低時,DynamoDB Auto Scaling 可降低輸送量,讓您無須支付未使用的佈建容量。

注意

如果您使用 AWS Management Console 若要建立資料表或全域次要索引,DynamoDB auto 調整規模預設為啟用。

您可以隨時使用控制台管理 auto 縮放設定 AWS CLI,或其中一個 AWS SDKs。如需詳細資訊,請參閱使用 DynamoDB Auto Scaling 功能自動管理輸送容量

利用率

使用率可協助您判斷是否過度佈建容量,在這種情況下應該會降低資料表容量以節省成本。相反地,它也可以協助您判斷是否在佈建容量之下。在這種情況下,您應該增加表格容量,以防止在意外的高流量執行個體期間潛在的請求限制。如需詳細資訊,請參閱 Amazon DynamoDB auto 擴展:任何規模的效能和成本優化

如果您使用 DynamoDB auto 擴展,則還需要設定目標使用率百分比。自動調整將使用此百分比做為向上或向下調整容量的目標。我們建議將目標使用率設定為 70%。如需詳細資訊,請參閱使用 DynamoDB Auto Scaling 功能自動管理輸送容量