

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

# 使用自動擴展建立新的資料表
<a name="autoscaling.createTable"></a>

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

如需如何建立多區域資料表和為資料表複本設定不同自動擴展設定的詳細資訊，請參閱 [在 Amazon Keyspaces 中使用自動擴展的佈建模式中建立多區域資料表](tables-mrr-create-provisioned.md)。

**注意**  
Amazon Keyspaces 自動擴展需要存在可代表您執行自動擴展動作的服務連結角色 (`AWSServiceRoleForApplicationAutoScaling_CassandraTable`)。系統會自動建立此角色。如需詳細資訊，請參閱[使用 Amazon Keyspaces 的服務連結角色](using-service-linked-roles.md)。

------
#### [ Console ]

**使用主控台建立已啟用自動擴展的新資料表**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) 開啟 Amazon Keyspaces 主控台。

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

1. 在**資料表詳細資訊區段的建立**資料表頁面上，選取金鑰空間，並提供新資料表的名稱。 ****

1. 在**資料欄**區段中，建立資料表的結構描述。

1. 在**主索引鍵**區段中，定義資料表的主索引鍵，然後選取選用的叢集資料欄。

1. 在**資料表設定**區段中，選擇**自訂設定**。

1. 繼續**讀取/寫入容量設定**。

1. 針對**容量模式**，選擇**佈建**。

1. 在**讀取容量**區段中，確認**已自動選取擴展**。

   在此步驟中，您會選取資料表的最小和最大讀取容量單位，以及目標使用率。
   + **容量單位**下限 – 輸入資料表應隨時準備好支援的輸送量下限值。此值必須介於 1 和您帳戶的每秒最大輸送量配額之間 （預設為 40，000)。
   + **最大容量單位** – 輸入您要為資料表佈建的最大輸送量。此值必須介於 1 和您帳戶的每秒最大輸送量配額之間 （預設為 40，000)。
   + **目標使用**率 – 輸入介於 20% 到 90% 之間的目標使用率。當流量超過定義的目標使用率時，容量會自動擴展。當流量低於定義的目標時，會自動再次縮減規模。
**注意**  
若要進一步了解 帳戶的預設配額以及如何增加這些配額，請參閱 [Amazon Keyspaces 配額 （適用於 Apache Cassandra)](quotas.md)。

1. 在**寫入容量**區段中，選擇與上一個步驟中為讀取容量定義的相同設定，或手動設定容量值。

1. 選擇 **Create Table** (建立資料表)。您的資料表是使用指定的自動擴展參數建立的。

------
#### [ Cassandra Query Language (CQL) ]

**使用 CQL 使用 Amazon Keyspaces 自動擴展建立新的資料表**

若要以程式設計方式設定資料表的自動擴展設定，您可以使用包含 Amazon Keyspaces 自動擴展參數的 `AUTOSCALING_SETTINGS`陳述式。這些參數定義了指示 Amazon Keyspaces 調整資料表佈建輸送量的條件，以及要採取哪些額外的選用動作。在此範例中，您會定義 *mytable* 的自動擴展設定。

該政策包含下列元素：
+ `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 自動擴展可確保耗用容量與佈建容量的比例保持在或接近此值。您能以百分比的形式定義 `target_value`。
    + `disableScaleIn`：（選用） `boolean`指定資料表`scale-in`是否已停用或已啟用的 。此參數預設為停用。若要開啟 `scale-in`，請將 `boolean`值設定為 `FALSE`。這表示會自動為您縮減資料表的容量。
    + `scale_out_cooldown` – 橫向擴展活動會增加資料表的佈建輸送量。若要為橫向擴展活動新增冷卻時間，請為 指定以秒為單位的值`scale_out_cooldown`。如果您未指定值，預設值為 0。如需目標追蹤和冷卻時間的詳細資訊，請參閱《*Application Auto Scaling * [ Scaling 使用者指南》中的目標追蹤擴展政策](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)。
    + `scale_in_cooldown` – 縮減活動可減少資料表的佈建輸送量。若要為縮減活動新增冷卻時間，請為 指定以秒為單位的值`scale_in_cooldown`。如果您未指定值，預設值為 0。如需目標追蹤和冷卻時間的詳細資訊，請參閱《*Application Auto Scaling * [ Scaling 使用者指南》中的目標追蹤擴展政策](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)。

**注意**  
為了進一步了解 `target_value` 如何運作，請假設您資料表的佈建輸送量設定為 200 個寫入容量單位。您決定為此資料表建立擴展政策，並將 `target_value` 設為 70 %。  
現在，假設您開始將寫入流量導向該資料表，那實際的寫入輸送量就會是 150 個容量單位。耗用與佈建比率現在為 (150/200)，也就是 75%。此比率超過您的目標，因此自動擴展會將佈建的寫入容量增加到 215，使得比率為 (150 / 215) 或 69.77%，`target_value`盡可能接近您的 ，但不會超過它。

對於 *mytable*，您可以將讀取和寫入容量`TargetValue`設定為 50%。Amazon Keyspaces 自動擴展會在 5–10 個容量單位的範圍內調整資料表的佈建輸送量，以便consumed-to-provisioned比率維持在 50% 或接近 50%。對於讀取容量，您可以將 `ScaleOutCooldown`和 的值設定為 `ScaleInCooldown` 60 秒。

您可以使用下列陳述式，在啟用自動擴展的情況下建立新的 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**

若要以程式設計方式設定資料表的自動擴展設定，您可以使用 `autoScalingSpecification`動作來定義 Amazon Keyspaces 自動擴展的參數。這些參數定義了指示 Amazon Keyspaces 調整資料表佈建輸送量的條件，以及要採取哪些額外的選用動作。在此範例中，您可以定義 *mytable* 的自動擴展設定。

該政策包含下列元素：
+ `autoScalingSpecification` – 指定是否允許 Amazon Keyspaces 代表您調整容量輸送量。您可以分別為讀取和寫入容量啟用自動擴展。然後，您必須為 指定下列參數`autoScalingSpecification`：
  + `writeCapacityAutoScaling` – 最大和最小寫入容量單位。
  + `readCapacityAutoScaling` – 最大和最小讀取容量單位。
  + `scalingPolicy` – Amazon Keyspaces 支援目標追蹤政策。若要定義目標追蹤政策，請設定下列參數。
    + `targetValue` – Amazon Keyspaces 自動擴展可確保耗用容量與佈建容量的比例保持在或接近此值。您能以百分比的形式定義 `targetValue`。
    + `disableScaleIn`：（選用） `boolean`指定資料表`scale-in`是否已停用或已啟用的 。此參數預設為停用。若要開啟 `scale-in`，請將 `boolean`值設定為 `FALSE`。這表示會自動為您縮減資料表的容量。
    + `scaleOutCooldown` – 橫向擴展活動會增加資料表的佈建輸送量。若要為向外擴展活動新增冷卻時間，請為 指定以秒為單位的值`ScaleOutCooldown`。預設值為 0。如需目標追蹤和冷卻期間的詳細資訊，請參閱《*Application Auto Scaling * [ Scaling 使用者指南》中的目標追蹤擴展政策](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)。
    + `scaleInCooldown` – 縮減活動可減少資料表的佈建輸送量。若要為縮減活動新增冷卻時間，請為 指定以秒為單位的值`ScaleInCooldown`。預設值為 0。如需目標追蹤和冷卻期間的詳細資訊，請參閱《*Application Auto Scaling * [ Scaling 使用者指南》中的目標追蹤擴展政策](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)。

**注意**  
為了進一步了解 `TargetValue` 如何運作，請假設您資料表的佈建輸送量設定為 200 個寫入容量單位。您決定為此資料表建立擴展政策，並將 `TargetValue` 設為 70 %。  
現在，假設您開始將寫入流量導向該資料表，那實際的寫入輸送量就會是 150 個容量單位。耗用與佈建比率現在為 (150/200)，也就是 75%。此比率超過您的目標，因此自動擴展會將佈建的寫入容量增加到 215，因此比率為 (150 / 215) 或 69.77%，`TargetValue`盡可能接近您的 ，但不會超過它。

對於 *mytable*，您可以將讀取和寫入容量`TargetValue`設定為 50%。Amazon Keyspaces 自動擴展會在 5–10 個容量單位的範圍內調整資料表的佈建輸送量，以便consumed-to-provisioned比率維持在 50% 或接近 50%。對於讀取容量，您可以將 `ScaleOutCooldown`和 的值設定為 `ScaleInCooldown` 60 秒。

建立具有複雜自動擴展設定的資料表時，從 JSON 檔案載入自動擴展設定會很有幫助。針對下列範例，您可以從 [auto-scaling.zip](samples/auto-scaling.zip) 下載範例 JSON 檔案，並擷取 `auto-scaling.json`，並記下檔案的路徑。在此範例中，JSON 檔案位於目前的 目錄中。如需不同的檔案路徑選項，請參閱[如何從檔案載入參數](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html#cli-usage-parameters-file-how)。

```
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
```

------