使用卡桑德拉查詢語言(CQL)管理 Amazon Keyspaces auto 擴展 - Amazon Keyspaces (適用於 Apache Cassandra)

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

使用卡桑德拉查詢語言(CQL)管理 Amazon Keyspaces auto 擴展

要使用 Cassandra 查詢語言(CQL)創建和管理 Amazon Keyspaces 表的 auto 擴展設置,您可以使用. cqlsh 本主題提供您可以使用 CQL 以程式設計方式管理的 auto 調整規模工作的概觀。

如需本主題所描述之 CQL 陳述式的詳細資訊,請參閱Amazon Keyspaces 中的 DDL 語句(數據定義語言)

開始之前

您必須先完成下列工作,才能開始。

設定許可

如果您尚未這麼做,則必須為使用者設定適當的權限,才能建立和管理自動資源調整設定。在 AWS Identity and Access Management (IAM) 中,管理 Amazon Keyspaces 擴展政策AmazonKeyspacesFullAccess需要 AWS 受管政策。如需詳細步驟,請參閱開始之前:為 Amazon Keyspaces 授予使用者許可自動擴展

設定 cqlsh

如果您尚未這樣做,則必須安裝和配置cqlsh。若要執行這項操作,請依照中的指示執行使用連cqlsh-expansion接到 Amazon Keyspaces。然後您可以使 AWS CloudShell 用執行下列各節中的指令。

使用 CQL 建立具有自動調整比例的新資料表

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

如需如何為資料表複本建立多區域表格及設定不同 auto 調整設定的詳細資訊,請參閱。使用默認設置(CQL)創建多區域表

注意

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

若要以程式設計方式設定資料表的 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 } } } };

使用 CQL 在現有資料表上啟用自動調整

對於現有的 Amazon Keyspaces 資料表,您可以使用ALTER TABLE陳述式為資料表的寫入或讀取容量開啟 auto 擴展。如果您正在更新目前處於隨需容量模式的資料表,則不capacity_mode是必要的。如果您的表格已經處於佈建容量模式,則可以省略此欄位。

注意

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

在下列範例中,陳述式會更新處於隨選容量模式的資料表 mytable。陳述式會將表格的容量模式變更為啟用 auto 擴展的佈建模式。

寫入容量設定在 5 到 10 個容量單位的範圍內,目標值為 50%。讀取容量也設定在 5—10 個容量單位的範圍內,目標值為 50%。對於讀取容量,您可scale_in_cooldown以將值設定為 scale_out_cooldown 60 秒。

ALTER TABLE mykeyspace.mytable 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 } } } };

使用 CQL 檢視表格的 Amazon Keyspaces auto 擴展組態

若要檢視資料表 auto 調整比例組態的詳細資訊,請使用下列指令。

SELECT * FROM system_schema_mcs.autoscaling WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';

此命令的輸出如下所示。

keyspace_name | table_name | provisioned_read_capacity_autoscaling_update | provisioned_write_capacity_autoscaling_update ---------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- mykeyspace | mytable | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 60, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 60}}} | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 0, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 0}}}

使用 CQL 關閉表的 Amazon Keyspaces auto 擴展

您可以隨時關閉表格的 Amazon Keyspaces 間 auto 擴展。如果您不再需要擴展表格的讀取或寫入容量,則應考慮關閉 auto 擴展,這樣 Amazon Keyspaces space 就不會繼續修改表格的讀取或寫入容量設定。您可以使用陳述式更新資料ALTER TABLE表。

下列陳述式會針對資料表 mytable 的寫入容量關閉 auto 調整規模。它也會刪除代表您建立的 CloudWatch 警報。

ALTER TABLE mykeyspace.mytable WITH AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'autoscaling_disabled': true } };
注意

若要刪除 Application Auto Scaling 使用的服務連結角色,您必須停用帳戶中所有資料表的自動調度資源。 AWS 區域