在佈建模式下建立多區域資料表,並在 Amazon Keyspaces 中自動擴展 - Amazon Keyspaces (適用於 Apache Cassandra)

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

在佈建模式下建立多區域資料表,並在 Amazon Keyspaces 中自動擴展

本節提供如何使用自動擴展在佈建模式下建立多區域資料表的範例。您可以使用 CQL或 在 Amazon Keyspaces 主控台上執行此操作 AWS CLI。

如需支援的組態和多區域複寫功能的詳細資訊,請參閱 Amazon Keyspaces 多區域複寫用量備註

若要建立多區域鍵空間,請參閱 在 Amazon Keyspaces 中建立多區域金鑰空間

當您使用自動擴展設定在佈建模式下建立新的多區域資料表時,您可以指定資料表的一般設定,該設定對複寫 AWS 區域 資料表的所有內容都有效。然後,您可以覆寫每個複本的讀取容量設定和讀取自動擴展設定。不過,寫入容量在所有複本之間保持同步,以確保有足夠的容量可複寫所有區域的寫入。

注意

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

Console
在啟用自動擴展的情況下建立新的多區域資料表
  1. 登入 AWS Management Console,並在https://console.aws.amazon.com/keyspaces/首頁 開啟 Amazon Keyspaces 主控台。

  2. 選擇多區域鍵空間。

  3. 資料表索引標籤上,選擇建立資料表

  4. 資料表詳細資訊區段的建立資料表頁面上,選取鍵空間,並提供新資料表的名稱。

  5. 資料欄區段中,建立資料表的結構描述。

  6. 主索引鍵區段中,定義資料表的主索引鍵,然後選取選用的叢集資料欄。

  7. 資料表設定區段中,選擇自訂設定

  8. 繼續讀取/寫入容量設定

  9. 對於容量模式 ,選擇佈建的

  10. 讀取容量區段中,確認已自動選取擴展

    您可以選擇為複寫資料表的所有 AWS 區域 設定相同的讀取容量單位。或者,您可以清除核取方塊,並以不同方式設定每個區域的讀取容量。

    如果您選擇以不同方式設定每個區域,您可以為每個資料表複本選取最小和最大讀取容量單位,以及目標使用率。

    • 最小容量單位 – 輸入資料表應隨時準備好支援的最小輸送量值。該值必須介於 1 到 帳戶每秒最大輸送量配額之間 (預設為 40,000)。

    • 最大容量單位 – 輸入您要為資料表佈建的最大輸送量。該值必須介於 1 到 帳戶每秒最大輸送量配額之間 (預設為 40,000)。

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

    • 如果您想要手動佈建資料表的讀取容量,請清除 Scale 自動核取方塊。此設定適用於資料表的所有複本。

      注意

      為了確保所有複本都有足夠的讀取容量,我們建議為佈建的多區域資料表自動擴展 Amazon Keyspaces。

    注意

    若要進一步了解 帳戶的預設配額以及如何增加這些配額,請參閱 Amazon Keyspaces 的配額(阿帕奇卡桑德拉)

  11. 寫入容量區段中,確認已自動選取擴展。然後設定資料表的容量單位。寫入容量單位會保持同步 AWS 區域 ,以確保有足夠的容量跨區域複寫寫入事件。

    • 如果您想要手動佈建資料表的寫入容量,請自動清除擴展。此設定適用於資料表的所有複本。

      注意

      為了確保所有複本都有足夠的寫入容量,我們建議為佈建的多區域資料表自動擴展 Amazon Keyspaces。

  12. 選擇 建立資料表 。您的資料表會建立為具有指定的自動擴展參數。

Cassandra Query Language (CQL)
使用佈建容量模式和自動擴展功能建立多區域資料表 CQL
  • 若要以佈建模式建立具有自動擴展的多區域資料表,您必須先為CUSTOM_PROPERTIES資料表定義容量模式。指定佈建容量模式後,您可以使用 設定資料表的自動擴展設定AUTOSCALING_SETTINGS

    如需自動擴展設定、目標追蹤政策、目標值和選用設定的詳細資訊,請參閱 建立具有自動縮放功能的新資料表

    若要定義特定區域中資料表複本的讀取容量,您可以將下列參數設定為資料表 的一部分replica_updates

    • 區域

    • 佈建的讀取容量單位 (選用)

    • 讀取容量的自動擴展設定 (選用)

    下列範例顯示佈建模式下多區域資料表的CREATE TABLE陳述式。一般寫入和讀取容量自動擴展設定相同。不過,讀取自動擴展設定會指定額外的冷卻期間,即 60 秒,然後再將資料表的讀取容量向上或向下擴展。此外,美國東部區域 (維吉尼亞北部) 的讀取容量自動擴展設定高於其他複本的設定。此外,目標值設定為 70%,而不是 50%。

    CREATE TABLE mykeyspace.mytable(pk int, ck int, PRIMARY KEY (pk, ck)) WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 5, 'write_capacity_units': 5 } } 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 } } }, 'replica_updates': { 'us-east-1': { 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 20, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 70 } } } } } };
CLI
使用 以佈建模式建立具有自動擴展功能的新多區域資料表 AWS CLI
  • 若要使用自動擴展組態在佈建模式下建立多區域資料表,您可以使用 AWS CLI。請注意,您必須使用 Amazon Keyspaces CLIcreate-table命令來設定多區域自動擴展設定。這是因為 Application Auto Scaling ,Amazon Keyspaces 用來代表您執行自動擴展的服務不支援多個區域。

    如需自動擴展設定、目標追蹤政策、目標值和選用設定的詳細資訊,請參閱 建立具有自動縮放功能的新資料表

    若要定義特定區域中資料表複本的讀取容量,您可以將下列參數設定為資料表 的一部分replicaSpecifications

    • 區域

    • 佈建的讀取容量單位 (選用)

    • 讀取容量的自動擴展設定 (選用)

    當您使用複雜的自動擴展設定和不同的資料表複本組態建立佈建多區域資料表時,從JSON檔案載入資料表的自動擴展設定和複本組態會很有幫助。

    若要使用下列程式碼範例,您可以從 auto-scaling.zip 和擷取 和 auto-scaling.json 下載範例JSON檔案replication.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 \ --replica-specifications file://replication.json