

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

# 根據排程產生資料欄統計資料
<a name="generate-column-stats"></a>

請依照下列步驟，使用 AWS Glue 主控台、 AWS CLI或 [CreateColumnStatisticsTaskSettings](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-CreateColumnStatisticsTaskSettings) 操作，在 中 AWS Glue Data Catalog 設定產生資料欄統計資料的排程。

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

**使用主控台產生資料欄統計資料**

1. 在 https：//[https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/) 登入 AWS Glue 主控台。

1. 選擇 Data Catalog 資料表。

1. 從清單中選擇資料表。

1. 選擇**資料表**頁面下半部分中的**資料欄統計資料**索引標籤。

1. 您也可以在**動作**的**資料欄統計資料**下選擇**按排程產生**。

1. 在**根據排程產生統計資料**頁面上，透過選擇頻率和開始時間來設定執行資料欄統計資料任務的週期性排程。您可以選擇每小時、每日、每週的頻率，或定義 Cron 表達式來指定排程。

   Cron 表達式是代表排程模式的字串，由 6 個以空格分隔的欄位組成：\$1 \$1 \$1 \$1 \$1 <minute> <hour> <day of month> <month> <day of week> <year>。例如，若要每天在午夜執行任務，Cron 表達式會是：0 0 \$1 \$1 ？ \$1

   如需詳細資訊，請參閱 [Cron 表達](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html#CronExpressions)式。  
![\[螢幕擷取畫面顯示可用來產生資料欄統計資料的選項。\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/generate-column-stats-schedule.png)

1. 接著，選擇資料欄選項以產生統計資料。
   + **所有資料欄**：選擇此選項可產生資料表中所有資料欄的統計資料。
   + **選取的資料欄**：選擇此選項可產生特定資料欄的統計資料。您可以從下拉式清單中選取資料欄。

1. 選擇 IAM 角色或建立具有產生 statistics 許可的現有角色。 AWS Glue 會擔任此角色來產生資料欄統計資料。

   更快的方法是讓 AWS Glue 主控台為您建立角色。其建立的角色專門用於產生資料欄統計資料，並包含 `AWSGlueServiceRole` AWS 受管政策加上指定資料來源所需的內嵌政策。

   如果指定現有角色來產生資料欄統計資料，請確定其包含 `AWSGlueServiceRole` 政策或同等政策 (或此政策的縮減版本)，以及必要的內嵌政策。

1. (選用) 接著，選擇安全組態，針對日誌啟用靜態加密。

1. (選用) 您可以透過僅指示資料表中特定百分比的資料列，來選擇範例大小以產生統計資料。預設值為所有資料列。使用向上和向下箭頭以增加或減少百分比值。

   我們建議在資料表中包含所有資料列，以計算準確的統計資料。只有在接受近似值時，才使用範例資料列產生資料欄統計資料。

1. 選擇**產生統計資料**以執行資料欄統計資料產生任務。

------
#### [ AWS CLI ]

您可以使用下列 AWS CLI 範例來建立資料欄統計資料產生排程。database-name、table-name 和 role 是必要的參數，而選用參數是 schedule、column-name-list、catalog-id、sample-size 和 security-configuration。

```
aws glue create-column-statistics-task-settings \ 
 --database-name 'database_name' \ 
 --table-name table_name \ 
 --role 'arn:aws:iam::123456789012:role/stats-role' \ 
 --schedule 'cron(0 0-5 14 * * ?)' \ 
 --column-name-list 'col-1' \  
 --catalog-id '123456789012' \ 
 --sample-size '10.0 ' \
 --security-configuration 'test-security'
```

您也可透過呼叫 [StartColumnStatisticsTaskRun](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-StartColumnStatisticsTaskRun) 操作，以產生資料欄統計資料。

------

# 管理產生資料欄統計資料的排程
<a name="manage-column-stats-schedule"></a>

可以管理排程操作，例如更新、啟動、停止和刪除 AWS Glue中產生資料欄統計資料的排程。您可以使用 AWS Glue 主控台 AWS CLI或[AWS Glue 資料欄統計資料 API 操作](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html)來執行這些任務。

**Topics**
+ [更新資料欄統計資料產生排程](#update-column-stats-shedule)
+ [停止產生資料欄統計資料的排程](#stop-column-stats-schedule)
+ [繼續產生資料欄統計資料的排程](#resume-column-stats-schedule)
+ [刪除資料欄統計資料產生排程](#delete-column-stats-schedule)

## 更新資料欄統計資料產生排程
<a name="update-column-stats-shedule"></a>

可以更新排程，在建立資料欄統計資料產生任務之後觸發其。您可以使用 AWS Glue 主控台 AWS CLI，或執行 [UpdateColumnStatisticsTaskSettings](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-UpdateColumnStatisticsTaskSettings) 操作來更新資料表的排程。可以修改現有排程的參數，例如排程類型 (隨需或排定) 和其他選用參數。

------
#### [ AWS 管理主控台 ]

**若要更新資料欄統計資料產生任務的設定**

1. 在 https：//[https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/) 登入 AWS Glue 主控台。

1. 選擇您要從資料表清單中更新的資料表。

1. 在資料表詳細資料頁面的下面部分中，選擇**資料欄統計資料**。

1. 在**動作**下，選擇**編輯**以更新排程。

1. 對排程進行所需變更，然後選擇**儲存**。

------
#### [ AWS CLI ]

 如果您未在 主控台中使用 AWS Glue統計資料產生功能，您可以使用 `update-column-statistics-task-settings`命令手動更新排程。下列範例顯示如何使用 AWS CLI更新資料欄統計資料。

```
aws glue update-column-statistics-task-settings \ 
 --database-name 'database_name' \ 
 --table-name 'table_name' \ 
 --role arn:aws:iam::123456789012:role/stats_role \ 
 --schedule 'cron(0 0-5 16 * * ?)' \ 
 --column-name-list 'col-1' \
 --sample-size '20.0' \  
 --catalog-id '123456789012'\
 --security-configuration 'test-security'
```

------

## 停止產生資料欄統計資料的排程
<a name="stop-column-stats-schedule"></a>

 如果不再需要增量統計資料，可以停止已排程的產生，以節省資源和成本。暫停排程不會影響先前產生的統計資料。可以在方便時繼續排程。

------
#### [ AWS 管理主控台 ]

**若要停止資料欄統計資料產生任務的排程**

1. 在 AWS Glue 主控台上，選擇 Data Catalog **下的資料表**。

1. 選取包含資料欄統計資料的資料表。

1. 在**資料表詳細資料**頁面中，選擇資料**資料欄統計資料**。

1. 在**動作**下，選擇**已排程產生**，然後選擇**暫停**。

1. 選擇**暫停**以確認。

------
#### [ AWS CLI ]

若要使用 停止資料欄統計資料任務執行排程 AWS CLI，您可以使用下列命令：

```
aws glue stop-column-statistics-task-run-schedule \
 --database-name ''database_name' \
 --table-name 'table_name'
```

將 `database_name` 和 `table_name` 取代為您要對其停止資料欄統計資料任務執行排程的資料庫和資料表的實際名稱。

------

## 繼續產生資料欄統計資料的排程
<a name="resume-column-stats-schedule"></a>

 如果您已暫停統計資料產生排程， AWS Glue 可讓您在方便的時候繼續排程。您可以使用 主控台 AWS CLI或 [StartColumnStatisticsTaskRunSchedule](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-StartColumnStatisticsTaskRunSchedule) 操作繼續排程 AWS Glue 。

------
#### [ AWS 管理主控台 ]

**若要繼續產生資料欄統計資料的排程**

1. 在 AWS Glue 主控台上，選擇 Data Catalog **下的資料表**。

1. 選取包含資料欄統計資料的資料表。

1. 在**資料表詳細資料**頁面中，選擇資料**資料欄統計資料**。

1. 在**動作**下，選擇**已排程產生**，然後選擇**繼續**。

1. 選擇**繼續**以確認。

------
#### [ AWS CLI ]

將 `database_name` 和 `table_name` 取代為您要對其停止資料欄統計資料任務執行排程的資料庫和資料表的實際名稱。

```
aws glue start-column-statistics-task-run-schedule \
 --database-name 'database_name' \
 --table-name 'table_name'
```

------

## 刪除資料欄統計資料產生排程
<a name="delete-column-stats-schedule"></a>

 儘管通常建議保持最新統計資料以獲得最佳查詢效能，但在某些特定使用案例中，移除自動產生排程可能是有益的。
+ 如果資料保持相對靜態，則現有的資料欄統計資料可能會長時間保持準確，從而減少頻繁更新的需求。刪除排程可防止因重新產生未變更資料的統計資料所導致的不必要的資源耗用和開銷。
+ 偏好手動控制統計資料產生時。透過刪除自動排程，管理員可以在特定間隔或在重大資料變更後選擇性地更新資料欄統計資料，使該程序與其維護策略和資源配置需求保持一致。

------
#### [ AWS 管理主控台 ]

**若要刪除產生資料欄統計資料的排程**

1. 在 AWS Glue 主控台上，選擇 Data Catalog **下的資料表**。

1. 選取包含資料欄統計資料的資料表。

1. 在**資料表詳細資料**頁面中，選擇資料**資料欄統計資料**。

1. 在**動作**下，選擇**已排程產生**，然後選擇**刪除**。

1. 選擇**刪除**以確認。

------
#### [ AWS CLI ]

將 `database_name` 和 `table_name` 取代為您要對其停止資料欄統計資料任務執行排程的資料庫和資料表的實際名稱。

可以使用 [DeleteColumnStatisticsTaskSettings](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-DeleteColumnStatisticsTaskSettings) API 操作或 AWS CLI來刪除資料欄統計資料。下列範例示範如何使用 AWS Command Line Interface () 刪除產生資料欄統計資料的排程AWS CLI。

```
aws glue delete-column-statistics-task-settings \
    --database-name 'database_name' \
    --table-name 'table_name'
```

------