

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

# 控制容量用量
<a name="capacity-management-control-capacity-usage"></a>

您可以設定最大或最小 DPU 控制項，以控制 Athena 配置給查詢的 DPU 數量。您可以在工作群組層級設定這些項目，以為所有查詢建立基準控制，或在個別查詢層級建立精細控制。這可讓您直接控制查詢效能、工作負載並行和成本。
+ 當您設定最大數量的 DPU 時，會防止查詢消耗超過您指定的容量。這可讓您輕鬆地控制成本和工作負載並行。例如，如果您的容量保留有 200 個 DPU，將每個查詢的 DPU 上限設定為 8 可讓您同時執行 25 個查詢。如果您將保留增加到 400 個 DPU，您可以同時執行 50 個查詢。
+ 當您設定最低數量的 DPU 時，您可以確保使用所需的最低數量的 DPU 執行查詢。當您事先了解查詢的典型容量用量描述檔時，這會很有幫助。

**注意**  
DPU 用量控制僅適用於使用容量保留執行的查詢。

**注意**  
若要對所有查詢使用相同數量的 DPU，請針對最小和最大 DPU 使用相同的值。

## 在工作群組層級設定 DPU 控制項
<a name="capacity-management-set-dpu-controls-workgroup-level"></a>

在工作群組層級設定 DPU 控制，以管理成本和控制您選擇的工作群組的工作負載效能。啟用**覆寫用戶端設定**時，工作群組層級設定的 DPU 控制項會套用至所有查詢。

**使用主控台設定 DPU 控制項**

1. 前往 [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) 開啟 Athena 主控台。

1. 在導覽窗格中，選擇 **Workgroups** (工作群組)。

1. 選取使用容量保留的工作群組。

1. 在**執行控制項**索引標籤上，選擇**編輯控制項**。

1. 設定下列項目：
   + 對於**每個查詢的最小 DPU**，以 4 為增量，輸入介於 4 到 124 之間的值。
   + 對於**每個查詢的最大 DPU**，以 4 為增量，輸入介於 4 到 124 之間的值。

1. 選擇**儲存**。

1. （選用） 選取**覆寫用戶端設定**以強制執行這些設定，並忽略查詢層級 DPU 組態。

**使用 設定 DPU 控制項 AWS CLI**
+ 使用 `update-work-group`命令來設定工作群組的 DPU 控制項：

  ```
  aws athena update-work-group \
    --work-group "my_workgroup" \
    --configuration-updates '{
          "EngineConfiguration": {
              "Classifications": [
                  {
                      "Name": "athena-query-engine-properties",
                      "Properties": {
                          "max-dpu-count" : "24",
                          "min-dpu-count" : "12"
                          }
                      }
                  ]
          }}'
  ```

  如果您將 `EnforceWorkGroupConfiguration` 設定為 `true`，工作群組設定會覆寫透過 [StartQueryExecution](https://docs.aws.amazon.com/athena/latest/APIReference/API_StartQueryExecution.html) 提交時在查詢層級指定的任何 DPU 控制項。這可確保工作群組中所有查詢的資源配置一致。

## 使用個別查詢設定 DPU 控制項
<a name="capacity-management-set-dpu-controls-individual-queries"></a>

當您需要使用具有不同資源需求的查詢進行精細控制時，請設定查詢層級 DPU 控制。查詢層級 DPU 控制優先於工作群組層級設定，除非工作群組已啟用**覆寫用戶端設定**。

**使用主控台設定查詢的 DPU 控制項**

1. 前往 [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) 開啟 Athena 主控台。

1. 在導覽窗格中，選擇 **Query Editor (查詢編輯器)**。

1. 選取使用容量保留的工作群組。

1. 選擇**查詢設定**索引標籤。

1. 在**執行控制項**區段中，選擇**編輯控制項**。

1. 設定下列項目：
   + 對於**每個查詢的最小 DPU**，輸入介於 4 到 124 之間的值，增量為 4。
   + 對於**每個查詢的最大 DPU**，以 4 為增量，輸入介於 4 到 124 之間的值。

1. 選擇**儲存**。

**使用 設定查詢的 DPU 控制項 AWS CLI**
+ 使用 `start-query-execution`命令搭配 `engine-configuration` 參數：

  ```
  aws athena start-query-execution \
    --query-string "SELECT * FROM my_table LIMIT 10" \
    --work-group "my_workgroup" \
    --engine-configuration '{
      "Classifications": [ {
          "Name": "athena-query-engine-properties",
              "Properties": {
                  "max-dpu-count" : "32",
                  "min-dpu-count" : "8"
                  }
              }
          ]}'
  ```

查詢層級和工作群組層級 DPU 設定之間的關係取決於您的工作群組組態：
+ 啟用**覆寫用戶端設定**時，工作群組層級 DPU 控制優先於任何查詢層級設定。這可確保指定工作群組中所有查詢的一致資源用量。
+ 未啟用**覆寫用戶端設定**時，查詢層級 DPU 控制優先於工作群組層級設定。這可讓個別查詢最佳化的彈性。

如果您未在任一層級指定 DPU 控制項，Athena 會根據查詢複雜性自動配置容量。

**注意**  
對於 DDL 查詢，最小 DPUs的最大值為 4。為 DDL 查詢設定較高的最小值會導致錯誤。

## 監控 DPU 用量
<a name="capacity-management-monitor-dpu-usage"></a>

查詢完成後，您可以檢視其 DPU 用量。Athena 透過主控台、API 操作和 CloudWatch 提供 DPU 用量指標。

**在主控台中檢視 DPU 使用量**

1. 前往 [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) 開啟 Athena 主控台。

1. 在導覽窗格中，選擇 **Query Editor (查詢編輯器)**。

1. 查詢完成後，請在查詢結果容器中檢視其**已使用的 DPU **值。

1. 若要檢視過去查詢的 DPU 使用量：

   1. 在導覽窗格中選擇**最近的查詢**。

   1. 如果尚未顯示，請選取設定圖示，將**已使用 DPU** 資料欄新增至資料表。

   1. 檢閱每個已完成查詢的 DPU 使用量。

1. 或者，從**查詢編輯器**中，選擇**查詢統計資料**索引標籤並檢閱**已使用的 DPU**。

**使用 API 擷取 DPU 耗用**

1. 使用下列 API 操作以程式設計方式擷取 DPU 耗用量：
   + `GetQueryExecution` - 傳回特定查詢的執行詳細資訊
   + `BatchGetQueryExecution` - 傳回多個查詢的執行詳細資訊

1. 使用 AWS CLI的範例：

   ```
   aws athena get-query-execution \
     --query-execution-id "123e4567-e89b-12d3-a456-426614174000"
   ```

   回應包含 `Statistics` 物件中的 `DpuCount` 欄位：

   ```
   {
     "QueryExecution": {
       "Statistics": {
         "DpuCount": 8
       }
     }
   }
   ```

**使用 CloudWatch 監控 DPU 用量**
+ Athena 會將查詢相關指標發佈至 CloudWatch，協助您監控容量使用率和其他效能資料。如需詳細資訊，請參閱 [使用 CloudWatch 監控 Athena 查詢指標](query-metrics-viewing.md)。