本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
DynamoDB 佈建容量模式
當您在 DynamoDB 中建立新的佈建資料表時,您必須指定其佈建的輸送量容量 。這是資料表可支援的讀取和寫入輸送量量。DynamoDB 使用此資訊來確保有足夠的系統資源來滿足您的輸送量需求。
您可以選擇允許 DynamoDB Auto Scaling 功能來管理您資料表的輸送容量。若要使用自動擴展,您必須在建立資料表時提供讀取和寫入容量的初始設定。DynamoDB 自動擴展會使用這些初始設定作為起點,然後根據應用程式的需求動態調整這些設定。如需詳細資訊,請參閱使用 DynamoDB Auto Scaling 功能自動管理輸送容量。
隨著應用程式的資料和存取需求變更,您可能需要調整資料表的輸送量設定。如果使用了 DynamoDB Auto Scaling 功能,則會自動調整輸送量設定來回應實際工作負載。您也可以使用 UpdateTable操作來手動調整資料表的輸送量。如果您需要將現有資料存放區中的資料大量載入至新的 DynamoDB 資料表,則可以決定這麼做。您可以建立具有大型寫入輸送設定的資料表,然後在大量資料載入完成後減少此設定。
您可以隨時將資料表從隨需模式切換為佈建容量模式。當您在容量模式之間進行多個切換時,適用下列條件:
-
您可以隨時將新建立的隨需模式資料表切換為佈建容量模式。不過,您只能在資料表建立時間戳記後 24 小時將其切換回隨需模式。
-
您可以隨時將現存的隨需模式資料表切換為佈建容量模式。不過,您只能在上次時間戳記後 24 小時將其切換回隨需模式,以指示切換到隨需模式。
如需在讀取和寫入容量模式之間切換的詳細資訊,請參閱 在 DynamoDB 中切換容量模式時的考量。
讀取容量單位和寫入容量單位
對於佈建模式資料表,您可以指定容量單位 的輸送量需求。這些單位代表應用程式每秒需要讀取或寫入的資料量。您稍後可以視需要修改這些設定,或讓 DynamoDB Auto Scaling 功能自動進行修改。
對於高達 4 KB 的項目,一個讀取容量單位 (RCU) 表示每秒一個非常一致的讀取操作,或每秒兩個最終一致的讀取操作。如需 DynamoDB 讀取一致性模型的詳細資訊,請參閱 DynamoDB 讀取一致性。
寫入容量單位 (WCU) 代表最多 1 KB 的項目每秒寫入一次。如需不同讀取和寫入操作的詳細資訊,請參閱 DynamoDB 讀取和寫入操作。
選擇初始輸送量設定
每個應用程式對於從資料庫讀取和寫入資料庫有不同的要求。當您判斷 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 自動擴展會主動管理資料表和全域次要索引的佈建輸送量。透過自動調整規模,您可以定義讀取與寫入容量單位的範圍 (上限與下限)。您也可以定義該範圍內的目標使用率百分比。DynamoDB Auto Scaling 功能會嘗試維持您的目標使用率,即使您的應用程式工作負載有所增減。
透過 DynamoDB Auto Scaling,資料表或全域次要索引可增加其佈建的讀取與寫入容量,來處理突然增加的流量,而不需要進行請求調節。當工作負載降低時,DynamoDB Auto Scaling 可降低輸送量,讓您無須支付未使用的佈建容量。
注意
如果您使用 AWS Management Console 建立資料表或全域次要索引,預設會啟用 DynamoDB 自動擴展。
您可以使用主控台、 AWS CLI或其中一個 ,隨時管理自動擴展設定 AWS SDKs。如需詳細資訊,請參閱使用 DynamoDB Auto Scaling 功能自動管理輸送容量。
使用率
使用率可協助您判斷是否超過佈建容量,在這種情況下,應減少資料表容量以節省成本。相反地,它也可以協助您判斷是否不足佈建容量。在這種情況下,您應該增加資料表容量,以防止在非預期的高流量執行個體期間,請求可能限流。如需詳細資訊,請參閱 Amazon DynamoDB 自動擴展:任何規模的效能和成本最佳化。
如果您使用的是 DynamoDB 自動擴展,則還需要設定目標使用率百分比。自動擴展將使用此百分比作為目標,以向上或向下調整容量。我們建議將目標使用率設定為 70%。如需詳細資訊,請參閱使用 DynamoDB Auto Scaling 功能自動管理輸送容量。