本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立具有自動縮放功能的新資料表
當您建立新的 Amazon Keyspace 表格時,您可以自動為資料表的寫入或讀取容量啟用自動擴展。這可讓 Amazon Keyspaces 代表您聯絡 Application Auto Scaling,將表格註冊為可擴展的目標,並調整佈建的寫入或讀取容量。
如需如何為資料表複本建立多區域表格及設定不同 auto 調整設定的詳細資訊,請參閱。在佈建模式下建立多區域資料表,並在 Amazon Keyspaces 中自動擴展
注意
Amazon Keyspaces 自動擴展需要存在代表您執行自動擴展動作的服務連結角色 (AWSServiceRoleForApplicationAutoScaling_CassandraTable
)。系統會自動建立此角色。如需詳細資訊,請參閱使用 Amazon Keyspaces 的服務連結角色。
- Console
-
使用控制台創建一個啟用自動擴展的新表
-
登入 AWS Management Console,然後在https://console.aws.amazon.com/keyspaces/家
中打開 Amazon Keyspaces 控制台。 -
在導覽窗格中,選擇 Tables (資料表),然後選擇 Create table (建立資料表)。
-
在「表格詳細資訊」段落的「建立表格」頁面中,選取索引鍵空間並輸入新表格的名稱。
-
在「欄」區段中,建立資料表的結構定義。
-
在 [主索引鍵] 區段中,定義資料表的主索引鍵,並選取選用的叢集資料行。
在 [表格設定] 區段中,選擇 [自訂設定]。
-
繼續參閱讀/寫入容量設定。
-
對於容量模式,選擇已佈建。
-
在 [讀取容量] 區段中,確認已選取 [自動擴充]。
在此步驟中,您可以選取表格的最小和最大讀取容量單位,以及目標使用率。
-
最小容量單位 — 輸入表格應隨時可支援的最小輸送量層次值。此值必須介於 1 和帳戶每秒輸送量上限配額之間 (預設為 40,000)。
-
最大容量單位 — 輸入您要為表格佈建的最大輸送量量。此值必須介於 1 和帳戶每秒輸送量上限配額之間 (預設為 40,000)。
-
目標使用率 — 輸入介於 20% 到 90% 之間的目標使用率。當流量超過定義的目標使用率時,容量會自動擴充。當流量低於定義的目標時,它會再次自動縮小。
注意
若要深入瞭解帳戶的預設配額,以及如何增加配額,請參閱Amazon Keyspaces 配額 (適用於 Apache Cassandra)。
-
-
在 [寫入容量] 區段中,選擇與上一步驟中定義的讀取容量相同的設定,或手動設定容量值。
-
選擇 建立資料表 。您的表格是使用指定的自動縮放參數建立的。
-
- Cassandra Query Language (CQL)
-
使用 Amazon Keyspaces 自動擴展創建一個新表 CQL
若要以程式設計方式設定資料表的 auto 擴展設定,您可以使用包含 Amazon Keyspaces auto 擴展參數的
AUTOSCALING_SETTINGS
陳述式。這些參數定義了指示 Amazon Keyspaces 調整表格佈建輸送量的條件,以及要採取的其他選用動作。在此範例中,您會定義 mytable 的 auto 縮放設定。該政策包含下列元素:
-
AUTOSCALING_SETTINGS
— 指定是否允許 Amazon Keyspaces 代表您調整輸送量容量。以下是必要的值:-
provisioned_write_capacity_autoscaling_update
:-
minimum_units
-
maximum_units
-
-
provisioned_read_capacity_autoscaling_update
:-
minimum_units
-
maximum_units
-
-
scaling_policy
— Amazon Keyspaces 支持目標跟踪政策。若要定義目標追蹤原則,請設定下列參數。-
target_value
— Amazon Keyspaces auto 擴展可確保消耗容量與佈建容量的比例保持在或接近此值。您能以百分比的形式定義target_value
。 -
disableScaleIn
: (選擇性) Aboolean
,指定表格scale-in
是否已停用或啟用。依預設,會停用此參數。若要開啟scale-in
,請將boolean
值設定為FALSE
。這表示會代表您自動縮減資料表的容量。 -
scale_out_cooldown
— 向外延展活動會增加表格的佈建輸送量。若要增加向外延展活動的冷卻時間,請指定一個值 (以秒為單位)。scale_out_cooldown
如果未指定值,則預設值為 0。如需目標追蹤和冷卻時間的詳細資訊,請參閱《應用程式自動調整規模使用者指南》中的目標追蹤擴展政策 -
scale_in_cooldown
— 縮放活動會降低表格的佈建輸送量。若要增加縮放活動的冷卻時間,請指定一個值 (以秒為單位)。scale_in_cooldown
如果未指定值,則預設值為 0。如需目標追蹤和冷卻時間的詳細資訊,請參閱《應用程式自動調整規模使用者指南》中的目標追蹤擴展政策
-
-
注意
為了進一步了解
target_value
如何運作,請假設您資料表的佈建輸送量設定為 200 個寫入容量單位。您決定為此資料表建立擴展政策,並將target_value
設為70 %。現在,假設您開始將寫入流量導向該資料表,那實際的寫入輸送量就會是 150 個容量單位。現在的 consumed-to-provisioned 比率是 (一百五十/二百),或百分之七十五。此比率超過您的目標,因此 auto 擴展會將佈建的寫入容量增加到 215,以便比例為 (150/ 215) 或 69.77 百分比 —
target_value
盡可能接近,但不超過它。對於 mytable,您可以將讀
TargetValue
取和寫入容量設定為 50%。Amazon Keyspaces auto 擴展可在 5 到 10 個容量單位範圍內調整表格的佈建輸送量,使 consumed-to-provisioned 比率維持在 50% 或接近 50%。對於讀取容量,您可ScaleInCooldown
以將值設定為ScaleOutCooldown
60 秒。您可以使用下列陳述式建立已啟用 auto 擴展的新 Amazon Keyspaces 資料表。
CREATE TABLE mykeyspace.mytable(pk int, ck int, PRIMARY KEY (pk, ck)) WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 1, 'write_capacity_units': 1 } } AND AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50 } } }, 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50, 'scale_in_cooldown': 60, 'scale_out_cooldown': 60 } } } };
-
- CLI
-
使用 Amazon Keyspaces 自動擴展創建一個新表 AWS CLI
若要以程式設計方式設定表格的 auto
autoScalingSpecification
動擴展設定,您可以使用定義 Amazon Keyspaces auto 動擴展參數的動作。這些參數定義了指示 Amazon Keyspaces 調整表格佈建輸送量的條件,以及要採取的其他選用動作。在此範例中,您會定義 mytable 的 auto 縮放設定。該政策包含下列元素:
-
autoScalingSpecification
— 指定是否允許 Amazon Keyspaces 代表您調整容量輸送量。您可以分別為讀取和寫入容量啟用 auto 調整功能。然後,您必須為以下參數指定autoScalingSpecification
:-
writeCapacityAutoScaling
— 最大和最小寫入容量單位。 -
readCapacityAutoScaling
— 最大和最小讀取容量單位。 -
scalingPolicy
— Amazon Keyspaces 支持目標跟踪政策。若要定義目標追蹤原則,請設定下列參數。-
targetValue
— Amazon Keyspaces auto 擴展可確保消耗容量與佈建容量的比例保持在或接近此值。您能以百分比的形式定義targetValue
。 -
disableScaleIn
: (選擇性) Aboolean
,指定表格scale-in
是否已停用或啟用。依預設,會停用此參數。若要開啟scale-in
,請將boolean
值設定為FALSE
。這表示會代表您自動縮減資料表的容量。 -
scaleOutCooldown
— 向外延展活動會增加表格的佈建輸送量。若要增加向外延展活動的冷卻時間,請指定一個值 (以秒為單位)。ScaleOutCooldown
預設值為 0。如需目標追蹤和冷卻時間的詳細資訊,請參閱《應用程式自動調整規模使用者指南》中的目標追蹤擴展政策 -
scaleInCooldown
— 縮放活動會降低表格的佈建輸送量。若要增加縮放活動的冷卻時間,請指定一個值 (以秒為單位)。ScaleInCooldown
預設值為 0。如需目標追蹤和冷卻時間的詳細資訊,請參閱《應用程式自動調整規模使用者指南》中的目標追蹤擴展政策
-
-
注意
為了進一步了解
TargetValue
如何運作,請假設您資料表的佈建輸送量設定為 200 個寫入容量單位。您決定為此資料表建立擴展政策,並將TargetValue
設為70 %。現在,假設您開始將寫入流量導向該資料表,那實際的寫入輸送量就會是 150 個容量單位。現在的 consumed-to-provisioned 比率是 (一百五十/二百),或百分之七十五。此比率超過您的目標,因此 auto 擴展會將佈建的寫入容量增加到 215,以便比例為 (150/ 215) 或 69.77 百分比 —
TargetValue
盡可能接近,但不超過它。對於 mytable,您可以將讀
TargetValue
取和寫入容量設定為 50%。Amazon Keyspaces auto 擴展可在 5 到 10 個容量單位範圍內調整表格的佈建輸送量,使 consumed-to-provisioned 比率維持在 50% 或接近 50%。對於讀取容量,您可ScaleInCooldown
以將值設定為ScaleOutCooldown
60 秒。使用複雜的 auto 縮放設定建立表格時,從JSON檔案載入 auto 縮放設定會很有幫助。在下列範例中,您可以從 auto-scaling.zip 下載範例JSON檔案並擷取
auto-scaling.json
,並記下檔案的路徑。在此範例中,JSON檔案位於目前目錄中。如需不同的檔案路徑選項,請參閱如何從檔案載入參數。aws keyspaces create-table --keyspace-name mykeyspace --table-name mytable \ --schema-definition 'allColumns=[{name=pk,type=int},{name=ck,type=int}],partitionKeys=[{name=pk},{name=ck}]' \ --capacity-specification throughputMode=PROVISIONED,readCapacityUnits=1,writeCapacityUnits=1 \ --auto-scaling-specification file://auto-scaling.json
-