

# 按计划生成列统计数据
<a name="generate-column-stats"></a>

请按照以下步骤，通过 Amazon Glue 控制台、Amazon CLI 或 [CreateColumnStatisticsTaskSettings](https://docs.amazonaws.cn/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-CreateColumnStatisticsTaskSettings) 操作在 Amazon Glue Data Catalog 中配置统计数据生成计划。

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

**使用控制台生成列统计数据**

1. 通过以下网址登录到 Amazon Glue 控制台：[https://console.aws.amazon.com/glue/](https://console.amazonaws.cn/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.amazonaws.cn/glue/latest/dg/monitor-data-warehouse-schedule.html#CronExpressions)。  
![\[此屏幕截图显示了可用于生成列统计数据的选项。\]](http://docs.amazonaws.cn/glue/latest/dg/images/generate-column-stats-schedule.png)

1. 然后选择列选项来生成统计数据。
   + **所有列** – 选择此选项可生成表中所有列的统计信息。
   + **选定列** – 选择此选项可生成特定列的统计数据。您可以从下拉列表中选择列。

1. 选择一个 IAM 角色或创建一个具有统计数据生成权限的现有角色。Amazon Glue 会代入该角色来生成列统计数据。

   一种更快的方法是让 Amazon Glue 控制台为您创建一个角色。通过这种方法创建的角色专用于生成列统计数据，其中包含 `AWSGlueServiceRole` Amazon 托管式策略以及指定数据来源所需的内联策略。

   如果您指定一个现有角色用于生成列统计数据，请确保它包含 `AWSGlueServiceRole` 策略或等效策略（或此策略的范围缩小版本），以及所需的内联策略。

1. （可选）然后选择一种安全配置来启用日志静态加密。

1. （可选）在指定样本容量时，您可以指定仅为表中特定百分比的行生成统计数据。默认值为所有行。使用向上和向下箭头可增加或减少百分比值。

   我们建议选择表中的所有行，以计算出准确的统计数据。仅在可接受近似值时，才使用样本行来生成列统计数据。

1. 选择**生成统计数据**，以运行列统计数据生成任务。

------
#### [ Amazon CLI ]

您可以使用以下 Amazon 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.amazonaws.cn/glue/latest/dg/aws-glue-api-crawler-column-statistics.html#aws-glue-api-crawler-column-statistics-StartColumnStatisticsTaskRun) 操作来生成列统计数据。

------