建立具有自動縮放功能的新資料表 - Amazon Keyspaces (適用於 Apache Cassandra)

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

建立具有自動縮放功能的新資料表

當您建立新的 Amazon Keyspace 表格時,您可以自動為資料表的寫入或讀取容量啟用自動擴展。這可讓 Amazon Keyspaces 代表您聯絡 Application Auto Scaling,將表格註冊為可擴展的目標,並調整佈建的寫入或讀取容量。

如需如何為資料表複本建立多區域表格及設定不同 auto 調整設定的詳細資訊,請參閱。在 Amazon Keyspaces 中使用 auto 擴展的佈建模式建立多區域表

注意

Amazon Keyspaces 自動擴展需要存在代表您執行自動擴展動作的服務連結角色 (AWSServiceRoleForApplicationAutoScaling_CassandraTable)。系統會自動建立此角色。如需詳細資訊,請參閱針對 Amazon Keyspaces 使用服務連結角色

Console
使用控制台創建一個啟用自動擴展的新表
  1. 登入 AWS Management Console,然後在https://console.aws.amazon.com/keyspaces/家中打開 Amazon Keyspaces 控制台。

  2. 在導覽窗格中,選擇 Tables (資料表),然後選擇 Create table (建立資料表)。

  3. 在「表格詳細資訊」段落的「建立表格」頁面中,選取索引鍵空間並輸入新表格的名稱。

  4. 在「」區段中,建立資料表的結構定義。

  5. 在 [主索引鍵] 區段中,定義資料表的主索引鍵,並選取選用的叢集資料行。

  6. [表格設定] 區段中,選擇 [自訂設定]

  7. 繼續參閱讀/寫入容量設定

  8. 對於容量模式,選擇已佈建

  9. 在 [讀取容量] 區段中,確認已選取 [自動擴充]。

    在此步驟中,您可以選取表格的最小和最大讀取容量單位,以及目標使用率。

    • 最小容量單位 — 輸入表格應隨時可支援的最小輸送量層次值。此值必須介於 1 和帳戶每秒輸送量上限配額之間 (預設為 40,000)。

    • 最大容量單位 — 輸入您要為表格佈建的最大輸送量量。此值必須介於 1 和帳戶每秒輸送量上限配額之間 (預設為 40,000)。

    • 目標使用率 — 輸入介於 20% 到 90% 之間的目標使用率。當流量超過定義的目標使用率時,容量會自動擴充。當流量低於定義的目標時,它會再次自動縮小。

    注意

    若要深入瞭解帳戶的預設配額,以及如何增加配額,請參閱Amazon Keyspaces 的配額(阿帕奇卡桑德拉)

  10. 在 [寫入容量] 區段中,選擇與上一步驟中定義的讀取容量相同的設定,或手動設定容量值。

  11. 選擇 建立資料表 。您的表格是使用指定的自動縮放參數建立的。

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