

# スケジュールで列統計の生成
<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. AWS Glue コンソール ([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)) にサインインします。

1. データカタログテーブルを選択します。

1. リストからテーブルを選択します。

1. **[テーブル]** ページの下部にある **[列統計]** タブを選択します。

1. **[アクション]** の **[列統計]** で **[スケジュールに応じて生成]** を選択することもできます。

1. **[スケジュールに応じて統計を生成]** ページで、頻度および開始時間を選択して、列統計タスクを実行する定期的なスケジュールを設定します。時間単位、日単位、週単位で頻度を選択するか、cron 式を定義してスケジュールを指定できます。

   cron 式は、スペースで区切られた 6 つのフィールドで構成されるスケジュールパターンを表す文字列で、「\* \* \* \* \* <minute> <hour> <day of month> <month> <day of week> <year>」のように表示されます。例えば、毎日午前 0 時にタスクを実行する場合、cron 式は「0 0 \* \* ? \*」になります。

   詳細については、「[Cron 式](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html#CronExpressions)」を参照してください。  
![このスクリーンショットは、列統計の生成に使用できるオプションを示しています。](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/generate-column-stats-schedule.png)

1. 次に、列のオプションを選択して統計を生成します。
   + **すべての列** - テーブル内のすべての列の統計を生成するには、このオプションを選択します。
   + **選択された列** – 特定の列の統計を生成するには、このオプションを選択します。ドロップダウンリストから列を選択できます。

1. IAM ロールを選択するか、統計を生成するアクセス許可がある既存のロールを作成します。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) オペレーションを呼び出して列統計を生成することもできます。

------