

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建、运行和调度 AWS Glue DataBrew 作业
<a name="jobs"></a>

AWS Glue DataBrew 有一个作业子系统，它有两个用途：

1. 将数据转换方法应用于 DataBrew 数据集。你用一份 DataBrew 食谱工作来做这件事。

1. 分析数据集以创建数据的全面配置文件。你用 DataBrew 个人资料工作来做这件事。

**Topics**
+ [创建和处理 AWS Glue DataBrew 配方作业](jobs.recipe.md)
+ [创建和使用 AWS Glue DataBrew 个人资料职位](jobs.profile.md)

# 创建和处理 AWS Glue DataBrew 配方作业
<a name="jobs.recipe"></a>

使用 DataBrew *配方作业*清理和标准化数据 DataBrew集中的数据，并将结果写入您选择的输出位置。运行配方作业不会影响数据集或底层源数据。当作业运行时，它以只读方式连接到源数据。任务输出将写入您在 Amazon S3 AWS Glue Data Catalog、或支持的 JDBC 数据库中定义的输出位置。

使用以下步骤创建 DataBrew 配方作业。

**创建配方作业**

1. 登录 AWS 管理控制台 并打开 DataBrew 控制台，网址为[https://console.aws.amazon.com/databrew/](https://console.aws.amazon.com/glue/)。

1. 从导航窗格中选择**作业**，选择**配方作业**选项卡，然后选择**创建作业**。

1. 输入作业的名称，然后选择**创建配方作业**。

1. 对于**作业输入**，输入要创建的作业的详细信息：要处理的数据集的名称和要使用的配方。

   配方作业使用 DataBrew 配方来转换数据集。要使用配方，请务必先将其发布。

1. 配置作业输出设置。

   提供作业输出目标。如果您没有为输出目标配置 DataBrew 连接，请先在**数据集**选项卡上进行配置，如中所述[数据来源和输出支持的连接](supported-data-connection-sources.md)。请选择以下输出目标之一：
   + Amazon S3，有或没有 AWS Glue Data Catalog 支持
   + 亚马逊 Redshift，有或没有支持 AWS Glue Data Catalog 
   + JDBC
   + Snowflake 表
   +  AWS Glue Data Catalog 支持的 Amazon RDS 数据库表。Amazon RDS 数据库表支持以下数据库引擎：
     + Amazon Aurora
     + MySQL
     + Oracle
     + PostgreSQL
     + Microsoft SQL Server
   + 有 AWS Glue Data Catalog 支持的 Amazon S3。

   对于基于的 AWS Glue Data Catalog 输出 AWS Lake Formation，仅 DataBrew 支持替换现有文件。在这种方法中，文件将被替换，以保持您的数据访问角色的现有 Lake Formation 权限不变。此外， DataBrew 优先考虑 AWS Glue Data Catalog 表中的 Amazon S3 位置。因此，创建配方作业时无法覆盖 Amazon S3 位置。

   在某些情况下，作业输出中的 Amazon S3 位置不同于 Data Catalog 表中的 Amazon S3 位置。在这些情况下，使用目录表中的 Amazon S3 位置自动 DataBrew 更新任务定义。在更新或启动现有作业时执行此操作。

1. 仅对于 Amazon S3 输出目标，您还有其他选择：

   1. 为 Amazon S3 选择一种可用数据输出格式，并（可选）配置压缩方式和自定义分隔符。输出文件支持的分隔符与输入文件所支持的相同：逗号、冒号、分号、竖线、制表符、插入符号、反斜杠和空格。有关格式的详细信息，请参见下表。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/databrew/latest/dg/jobs.recipe.html)

   1. <a name="singlefileoutput"></a>选择输出单个文件还是多个文件。Amazon S3 文件输出选项有三个：
      + **自动生成文件（推荐）**-已 DataBrew 确定输出文件的最佳数量。
      + **单文件输出**：生成单个输出文件。此选项可能会导致额外的作业执行时间，因为需要进行后期处理。
      + **多文件输出**：是否指定作业输出的文件数。有效值为 2—999。如果使用列分区，或者输出中的行数少于您指定的文件数，则输出的文件数可能会少于您指定的数量。

   1. <a name="columnpartioning"></a>（可选）为配方作业输出选择列分区。

      列分区提供了另一种将配方作业输出分区到多个文件的方法。列分区可以与新的或现有的 Amazon S3 输出一起使用，也可以与新的数据目录 Amazon S3 输出一起使用。它不能与现有的数据目录 Amazon S3 表类数据存储服务一起使用。输出文件基于您指定的列名的值。如果您指定的列名唯一，则生成的 Amazon S3 文件夹路径将基于列名的顺序。

      有关列分区的示例，请参见下面的[列分区示例](#jobs.recipe-column-partition-example)。

1. （可选）选择 “**为作业输出启用**加密” 以加密 DataBrew 写入输出位置的作业输出，然后选择加密方法：
   + **使用 SSE-S3 加密**：输出使用具有 Amazon S3 托管加密密钥的服务器端加密进行加密。
   + **使用 AWS Key Management Service (AWS KMS)**-使用对输出进行加密 AWS KMS。要使用此选项，请选择要使用的 AWS KMS 密钥的 Amazon 资源名称 (ARN)。如果您没有 AWS KMS 密钥，则可以通过选择创建密钥来**创建 AWS KMS 密钥**。

1. 要获得**访问权限**，请选择允许 DataBrew 写入您的输出位置的 AWS Identity and Access Management (IAM) 角色。对于您的 AWS 账户拥有的位置，您可以选择 `AwsGlueDataBrewDataAccessRole` 服务托管的角色。这样做可以 DataBrew 访问您拥有的 AWS 资源。

1. 在**高级作业设置**窗格上，您可以针对作业运行方式选择更多选项：
   + **最大单位数**-使用并行运行的多个计算节点 DataBrew 处理作业。默认节点数为 5。最大节点数为 149。
   + **作业超时**：如果作业运行时间超过您在此处设置的分钟数，则该作业将失败并显示超时错误。默认值为 2880 分钟（48 小时）。
   + **重试次数**-如果作业在运行时失败， DataBrew 可以尝试再次运行。默认情况下，不会重试作业。
   + **为作业启用 Amazon CloudWatch 日志**- DataBrew 允许将诊断信息发布到 CloudWatch 日志。这些日志可用于故障排除或获取有关如何处理作业的更多详细信息。

1. **对于 Schedule 作业，您可以应用 DataBrew 作业计划，以便您的作业在特定时间运行，或者定期运行。**有关更多信息，请参阅 [按计划自动运行作业](#jobs.scheduling)。

1. 根据需要进行设置后，选择**创建作业**。或者，如果您想立即运行作业，请选择**创建并运行作业**。

可以在作业运行时检查其状态，从而监控作业的进度。在作业运行完成后，状态将更改为**成功**。现在，可在您选择的输出位置获得作业输出。

DataBrew 保存您的作业定义，以便您以后可以运行相同的作业。要重新运行作业，请从导航窗格中选择**作业**。选择要使用的作业，然后选择**运行作业**。

## 列分区示例
<a name="jobs.recipe-column-partition-example"></a>

作为列分区示例，假设您指定了三列，它们的每一行都包含两个可能值之一。`Dept` 列的值可以是 `Admin` 或 `Eng`。`Staff-type` 列的值可以是 `Part-time` 或 `Full-time`。`Location` 列的值可以是 `Office1` 或 `Office2`。用于作业输出的 Amazon S3 存储桶如下所示。

```
s3://bucket/output-folder/Dept=Admin/Staff-type=Part-time/Area=Office1/jobId_timestamp_part0001.csv
s3://bucket/output-folder/Dept=Admin/Staff-type=Part-time/Location=Office2/jobId_timestamp_part0002.csv
s3://bucket/output-folder/Dept=Admin/Staff-type=Full-time/Location=Office1/jobId_timestamp_part0003.csv
s3://bucket/output-folder/Dept=Admin/Staff-type=Full-time/Location=Office2/jobId_timestamp_part0004.csv
s3://bucket/output-folder/Dept=Eng/Staff-type=Part-time/Location=Office1/jobId_timestamp_part0005.csv
s3://bucket/output-folder/Dept=Eng/Staff-type=Part-time/Location=Office2/jobId_timestamp_part0006.csv
s3://bucket/output-folder/Dept=Eng/Staff-type=Full-time/Location=Office1/jobId_timestamp_part0007.csv
s3://bucket/output-folder/Dept=Eng/Staff-type=Full-time/Location=Office2/jobId_timestamp_part0008.csv
```

## 按计划自动运行作业
<a name="jobs.scheduling"></a>

您可以随时重新运行 DataBrew 作业，也可以按计划自动运行 DataBrew 作业。

**重新运行作业 DataBrew**

1. 登录 AWS 管理控制台 并打开 DataBrew 控制台，网址为[https://console.aws.amazon.com/databrew/](https://console.aws.amazon.com/databrew/)。

1. 在导航窗格上，选择**作业**。选择要运行的作业，然后选择**运行作业**。

要在特定时间运行 DataBrew 作业，或定期运行作业，请创建 DataBrew 作业计划。然后，您可以将作业设置为根据计划运行。

**创建 DataBrew 作业时间表**

1. 在 DataBrew 控制台的导航窗格上，选择**作业**。选择**计划**选项卡，然后选择**添加计划**。

1. 输入计划名称，然后为**运行频率**选择一个值：
   + **定期**：选择您希望作业运行的频率（例如，每 12 小时运行一次）。然后，选择在哪一天或哪些天运行作业。或者，您可以输入一天中运行作业的时间。
   + **在特定时间**：输入一天中您希望作业运行的时间。然后，选择在哪一天或哪些天运行作业。
   + **输入 CRON**：通过输入有效的 cron 表达式来定义作业计划。有关更多信息，请参阅 [为配方作业使用 cron 表达式](#jobs.cron)。

1. 根据需要进行设置后，选择 **Save (保存)**。

**将作业与计划相关联**

1. 在导航窗格上，选择**作业**。

1. 选择要使用的作业，然后对**操作**选择**编辑**。

1. 在**计划作业**窗格上，选择**关联计划**。选择要使用的计划名称。

1. 根据需要进行设置后，选择 **Save (保存)**。

## 为配方作业使用 cron 表达式
<a name="jobs.cron"></a>

Cron 表达式有六个必填字段，之间以空格分隔。语法如下所示。

```
Minutes Hours Day-of-month Month Day-of-week Year
```

在前面的语法中，对指示的字段使用以下值和通配符。


| **字段** | **值** | **通配符** | 
| --- | --- | --- | 
|  分钟  |  0-59  |  , - \$1 /  | 
|  小时  |  0–23  |  , - \$1 /  | 
|  D ay-of-month  |  1-31  |  , - \$1 ? / L W  | 
|  Month  |  1-12 或 JAN-DEC  |  , - \$1 /  | 
|  D ay-of-week  |  1-7 或 SUN-SAT  |  , - \$1 ? / L  | 
|  Year  |  1970-2199  |  , - \$1 /  | 

按如下方式使用这些通配符：
+ **,**（逗号）通配符包含其他值。在 `Month` 字段中，`JAN,FEB,MAR` 将包含 January、February 和 March。
+ **-**（短划线）通配符用于指定范围。在 `Day` 字段中，1-15 包含指定月份的 1-15 日。
+ **\$1**（星号）通配符包含该字段中的所有值。在 `Hours` 字段中，**\$1** 包括每个小时。
+ **/**（斜杠）通配符用于指定增量。在 `Minutes` 字段中，您可以输入 **1/10** 以指定从一个小时的第一分钟开始的每个第十分钟（例如，第 11 分钟、第 21 分钟和第 31 分钟）。
+ **?**（问号）通配符用于指定一个或另一个。例如，假设您在 `Day-of-month` 字段中输入 **7**。如果您不在乎第七天是周几，那么可以在 `Day-of-week` 字段中输入 **?**。
+ `Day-of-month` 或 `Day-of-week` 字段中的 **L** 通配符用于指定月或周的最后一天。
+ `Day-of-month` 字段中的 **W** 通配符用于指定工作日。在 `Day-of-month` 字段中，`3W` 用于指定最靠近当月的第三周的日。

这些字段和值具有以下限制：
+ 您无法在同一 cron 表达式中为 `Day-of-month` 和 `Day-of-week` 字段同时指定值。如果您在其中一个字段中指定了值，则必须在另一个字段中使用 **?**（问号）。
+ 不支持产生的速率快于 5 分钟的 Cron 表达式。

在创建计划时，您可以使用以下示例 cron 字符串。


| 分钟 | 小时 | 日期 | 月份 | 星期几 | 年 | 意义 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  0  |  10  |  \$1  |  \$1  |  ?  |  \$1  |  每天上午的 10:00 (UTC) 运行  | 
|  15  |  12  |  \$1  |  \$1  |  ?  |  \$1  |  每天下午 12:15 (UTC) 运行  | 
|  0  |  18  |  ?  |  \$1  |  MON-FRI  |  \$1  |  每星期一到星期五下午 6:00 (UTC) 运行  | 
|  0  |  8  |  1  |  \$1  |  ?  |  \$1  |  每月第 1 天上午 8:00 (UTC) 运行  | 
|  0/15  |  \$1  |  \$1  |  \$1  |  ?  |  \$1  |  每 15 分钟运行一次  | 
|  0/10  |  \$1  |  ?  |  \$1  |  MON-FRI  |  \$1  |  从星期一到星期五，每 10 分钟运行一次  | 
|  0/5  |  8-17  |  ?  |  \$1  |  MON-FRI  |  \$1  |  在每星期一到星期五的上午 8:00 到下午 5:55 (UTC) 之间，每 5 分钟运行一次  | 

例如，您可以使用以下 cron 表达式在每天 12:15 UTC 运行作业。

```
15 12 * * ? *
```

## 删除作业和作业计划
<a name="jobs.deleting"></a>

当您不再需要某个作业或作业计划时，可以将其删除。

**删除作业**

1. 在导航窗格上，选择**作业**。

1. 选择要删除的作业，然对**操作**选择**删除**。

**删除作业计划**

1. 在导航窗格上，选择**作业**，然后选择**计划**选项卡。

1. 选择要删除的计划，选择对**操作**选择**删除**。

# 创建和使用 AWS Glue DataBrew 个人资料职位
<a name="jobs.profile"></a>

*剖析作业*对数据集运行一系列评估，并将结果输出到 Amazon S3。数据剖析收集的信息可帮助您了解自己的数据集，并决定在配方作业中可能需要运行哪种数据准备步骤。

运行配置文件作业的最简单方法是使用默认 DataBrew 设置。您可以在运行剖析作业之前对其进行配置，使其仅返回您想要的信息。

使用以下步骤创建 DataBrew 分析作业。

**创建剖析作业**

1. 登录 AWS 管理控制台 并打开 DataBrew 控制台，网址为[https://console.aws.amazon.com/databrew/](https://console.aws.amazon.com/glue/)。

1. 从导航窗格中选择**作业**，选择**剖析作业**选项卡，然后选择**创建作业**。

1. 输入作业的名称，然后选择**创建一个剖析作业**。

1. 对于**作业输入**，提供要剖析的数据集的名称。

1. （可选）在**数据剖析配置**窗格上配置以下各项：
   + **数据集级别配置**：为数据集中所有列的剖析作业配置详细信息。

     或者，您可以打开检测数据集中的重复行并对其进行计数的功能。您也可以选择**启用相关性矩阵**，然后选择列，以查看多列中值的相关程度。有关可在数据集级别配置的统计信息的详细信息，请参阅[数据集级别的可配置统计信息](profile.configuration.md#statistics.table01)。您可以在 DataBrew 控制台上配置统计信息，也可以使用 DataBrew API 或 AWS SDKs。
   + **列级配置**：使用**原定设置的剖析配置**设置，您可以选择要包含在剖析作业中的列。使用**添加配置覆盖**可选择要对其限制收集的统计信息数的列，或者覆盖某些统计信息的原定设置配置。有关可以在列级别配置的统计信息的详细信息，请参阅[列级别的可配置统计信息](profile.configuration.md#statistics.table02)。您可以在 DataBrew 控制台上配置统计信息，也可以使用 DataBrew API 或 AWS SDKs。

     请确保您指定的任何配置覆盖都应用于您在剖析作业中包含的列。如果您为列配置的不同覆盖之间存在冲突，则最后一个冲突覆盖具有优先级。

1. （可选）您可以创建**数据质量规则**并应用与此数据集关联的其他规则集，也可以移除已应用的规则集。有关数据质量的更多信息，请参阅[验证中的数据质量 AWS Glue DataBrew](profile.data-quality-rules.md)。

1. 在**高级作业设置**窗格上，您可以针对作业运行方式选择更多选项：
   + **最大单位数**-使用并行运行的多个计算节点 DataBrew 处理作业。默认节点数为 5。最大节点数为 149。
   + **作业超时**：如果作业运行时间超过您在此处设置的分钟数，则该作业将失败并显示超时错误。默认值为 2880 分钟（48 小时）。
   + **重试次数**-如果作业在运行时失败， DataBrew 可以尝试再次运行。默认情况下，不会重试作业。
   + **为作业启用 Amazon CloudWatch 日志**- DataBrew 允许将诊断信息发布到 CloudWatch 日志。这些日志可用于故障排除或获取有关如何处理作业的更多详细信息。

1. 对于 **A** ssociated S DataBrew chedule，您可以应用作业计划，以便您的作业在特定时间运行，或者定期运行。有关更多信息，请参阅 [按计划自动运行作业](jobs.recipe.md#jobs.scheduling)。

1. 根据需要进行设置后，选择**创建作业**。或者，如果您想立即运行作业，请选择**创建并运行作业**。

# 在中以编程方式构建配置文件作业配置 AWS Glue DataBrew
<a name="profile.configuration"></a>

在本节中，您可以找到可以通过编程方式使用的剖析作业步骤和功能的描述。你可以从 AWS Command Line Interface (AWS CLI) 中使用它们，也可以使用其中一个来使用它们 AWS SDKs。

在分析作业中，您可以自定义配置以控制数据集的 DataBrew 评估方式。您可以将该配置应用于数据集或将其应用于特定列。您可以在创建剖析作业时构建配置，然后随时对其进行更新。

剖析配置结构包括四个部分：
+ [ProfileColumns 部分](#profile-columns.statistics)
+ [DatasetStatisticsConfiguration 部分](#profile-dataset-stats-config)
+ [ColumnStatisticsConfigurations 部分](#profile-column-stats-config)
+ [EntityDetectorConfiguration 用于配置 PII 的部分](#entity-detector-configuration)

以下为示例。

```
{
    "ProfileColumns": [
        {
            "Name": "example"
        },
        {
            "Regex": "example.*"
        }
    ],
    "DatasetStatisticsConfiguration": {
        "IncludedStatistics": [
            "CORRELATION"
        ],
        "Overrides": [
            {
                "Statistic": "CORRELATION",
                "Parameters": {
                    "columnSelectors": "[{\"name\":\"example\"}, {\"regex\":\"example.*\"}]"
                }
            }
        ]
    },
    "ColumnStatisticsConfigurations": [
        {
            "Selectors": [
                {
                    "Name": "example"
                }
            ],
            "Statistics": {
                "IncludedStatistics": [
                    "CORRELATION",
                    "DUPLICATE_ROWS_COUNT"
                ],
                "Overrides": [
                    {
                        "Statistic": "VALUE_DISTRIBUTION",
                        "Parameters": {
                            "binNumber": "10"
                        }
                    }
                ]
            }
        }
    ]
}
```

## ProfileColumns 部分
<a name="profile-columns.statistics"></a>

在结构的 `ProfileColumns` 部分，设置要在剖析作业中评估的数据集中的列。`ProfileColumns` 是列选择器（`Selectors`）列表。您可以在列选择器中指定列名称或正则表达式。下面是一个示例。

```
"ProfileColumns": [{"Name": "example"}, {"Regex": "example.*"}]
```

指定 `ProfileColumns` 后，只有名称与 `ProfileColumns` 中的名称或正则表达式匹配的列才会包含在剖析作业中。如果分析作业不支持选定列的数据类型，则在作业运行期间 DataBrew 跳过选定列。

如果 ProfileColumns 未定义，则分析作业将评估所有支持的列。支持的列是包含受支持数据类型的数据的列：`ByteType`、`ShortType`、`IntegerType`、`LongType`、`FloatType`、`DoubleType`、`String` 或 `Boolean`。

## DatasetStatisticsConfiguration 部分
<a name="profile-dataset-stats-config"></a>

在结构的 `DatasetStatisticsConfiguration` 部分，您可以为列间评估构建配置。配置包括 `IncludedStatistics` 和 `Overrides`：下面是一个示例。

```
"DatasetStatisticsConfiguration": {
    "IncludedStatistics": ["CORRELATION"],
    "Overrides": [
        {
            "Statistic": "CORRELATION",
            "Parameters": {
                "columnSelectors": "[{\"name\":\"example\"}, {\"regex\":\"example.*\"}]"
            }
        }
    ]
}
```

您可以通过向 `IncludedStatistics` 中添加评估名称来选择想要的评估。下面是一个示例。

```
"IncludedStatistics": ["CORRELATION", "DUPLICATE_ROWS_COUNT"]
```

指定 `IncludedStatistics` 时，只有列表中的评估才会包含在剖析作业中。如果未定义 `IncludedStatistics`，则剖析作业将使用默认设置运行所有受支持的评估。您可以通过向 `IncludedStatistics` 中添加 NONE 来排除所有评估。下面是一个示例。

```
"IncludedStatistics": ["NONE"]
```

### 数据集级别的可配置统计信息
<a name="statistics.table01"></a>

在结构的 `DatasetStatisticsConfiguration` 部分，剖析作业支持下表所示的评估。


| **统计名称** | **描述** | **支持的数据类型** | **默认状态** | **剖析结果的属性** | **剖析结果的类型** | 
| --- | --- | --- | --- | --- | --- | 
| DUPLICATE\$1ROWS\$1COUNT | 数据集中的重复行计数 | 全部 | Enable | duplicateRowsCount | Int | 
| CORRELATION | 两列之间的 Pearson 相关系数 | 数字 | Enable | correlations（在每个选定列中） | 对象 | 

在 `IncludedStatistics` 中，您可以通过添加覆盖来覆盖每个评估的默认设置。每个覆盖项都包括特定评估的名称和参数映射。

在 `DatasetStatisticsConfiguration` 中，剖析作业支持 `CORRELATION` 覆盖。此覆盖计算选定列列表中两列之间的 Pearson 相关系数。默认设置是选择前 10 个数字列。您可以指定列数或列选择器列表来覆盖默认设置。

`CORRELATION` 采用以下参数：
+ `columnNumber` – 数字列的数量。剖析作业从数据集中选择前 *n* 列。此值应大于 1。使用 `"ALL"` 可选择所有数字列。
+ `columnSelectors:` – 列选择器列表。每个选择器可以包含列名或正则表达式。

下面是一个示例。

```
{
    "Statistic": "CORRELATION",
    "Parameters": {
        "columnSelectors": "[{\"name\":\"example\"}, {\"regex\":\"example.*\"}]"
    }
}
```

## ColumnStatisticsConfigurations 部分
<a name="profile-column-stats-config"></a>

在结构的 `ColumnStatisticsConfigurations` 部分，您可以为特定列构建配置。`ColumnStatisticsConfigurations` 是 `ColumnStatisticsConfiguration` 设置列表。在 `ColumnStatisticsConfiguration` 中，有 `Selectors`（一个列选择器列表）以及用于配置统计信息的 `Statistics`。下面是一个示例。

```
{ 
    "Selectors": [{"Name": "example"}
    ],
    "Statistics": {
       "IncludedStatistics": ["CORRELATION", "DUPLICATE_ROWS_COUNT"]
        "Overrides": [
            {
                "Statistic": "VALUE_DISTRIBUTION",
                "Parameters": {
                    "binNumber": "10"
                }
            }
        ]
    }
}
```

`Selectors` 是列选择器列表。与 `ProfileColumns` 相同，可以在每个列选择器中指定列名或正则表达式。当您指定 `Selectors` 时，列配置将应用于与 `Selectors` 中的任何列选择器匹配的列。否则，配置将应用于所有受支持的列。

在 `Statistics` 中，您可以覆盖选定列的设置。与 `DatasetStatisticsConfiguration` 相同，`Statistics` 具有 `IncludedStatistics` 和 `Overrides`。

要选择所需的评估，请向 `IncludedStatistics` 中添加评估名称。

```
"IncludedStatistics": ["CORRELATION", "DUPLICATE_ROWS_COUNT"]                    
```

指定 `IncludedStatistics` 时，只有列表中的评估才会包含在剖析作业中。否则，剖析作业将使用默认设置运行所有受支持的评估。

您可以通过向 `IncludedStatistics` 中添加 `NONE` 来排除所有评估。

```
"IncludedStatistics": ["NONE"]                    
```

 在某些情况下，在 `ColumnStatisticsConfigurations` 中可能存在多个不同的配置，它们具有不同的 `IncludedStatistics` 可应用于同一列。在这些情况下，剖析作业会选择 `ColumnStatisticsConfigurations` 中的最后一个配置并将其 `IncludedStatistics` 应用于所选列。新配置将覆盖旧配置。

### 列级别的可配置统计信息
<a name="statistics.table02"></a>

在 `ColumnStatisticsConfigurations` 中，剖析作业支持下表所示的评估。

此表中受支持的 `number` 数据类型意味着该属性的数据类型为以下类型之一：`ByteType`、`ShortType`、`IntegerType``LongType`、`FloatType` 或 `DoubleType`。


| **统计名称** | **描述** | **支持的数据类型** | **默认状态** | **剖析结果的属性** | **剖析结果的类型** | 
| --- | --- | --- | --- | --- | --- | 
| – | 列的名称。 | 全部 | – | name | 字符串 | 
| – | 列的数据类型。 | 全部 | – | 类型 | 字符串 | 
| DISTINCT\$1VALUES\$1COUNT | 相异值的数量。*相异值*是指至少出现一次的值。 | number/boolean/string | 已启用 | distinctValuesCount | Int | 
| ENTROPY | 熵（信息论）。 | number/boolean/string | 已启用 | entropy | 双精度 | 
| INTER\$1QUARTILE\$1RANGE | 范围介于数字的 25% 和 75% 之间。 | 数字 | 已启用 | interquartileRange | 双精度 | 
| KURTOSIS | 列的峰度。 | 数字 | 已启用 | 峰度 | 双精度 | 
| MAX | 列中的最大值。 | 数字/字符串长度 | 已启用 | max | Int/Double | 
| MAXIMUM\$1VALUES | 列中的最大值及其计数列表。 | 数字 | 已启用 | maximumValues | 列表 | 
| MEAN | 列中值的平均值。 | 数字/字符串长度 | 已启用 | mean | 双精度 | 
| MEDIAN | 列中值的中值。 | 数字/字符串长度 | 已启用 | median | 双精度 | 
| MEDIAN\$1ABSOLUTE\$1DEVIATION | 每个数据点与数值列中值之间绝对差异的中值。 | 数字 | 已启用 | medianAbsoluteDeviation | 双精度 | 
| MIN | 列中的最小值。 | 数字/字符串长度 | 已启用 | min | Int/Double | 
| MINIMUM\$1VALUES | 列中最小值及其计数列表。 | 数字 | 已启用 | minimumValues | 列表 | 
| MISSING\$1VALUES\$1COUNT | 列中的缺失值数量。Null 和空字符串被视为缺失。 | 全部 | 已启用 | missingValuesCount | Int | 
| MODE | 列中出现频率最高的值。如果经常出现几个值，则模式便是这些值之一。 | 数字/字符串长度 | 已启用 | mode | Int/Double | 
| MOST\$1COMMON\$1VALUES | 列中最常见的值列表。 | number/boolean/string | 已启用 | mostCommonValues | 列表 | 
| OUTLIER\$1DETECTION | 通过 Z\$1score 算法检测列中的异常值。对异常值的数量进行计数，并从检测到的异常值中提取样本列表。 | 数字/字符串长度 | 已启用 | zScoreOutliers计数， zScoreOutliers采样 | Int/List | 
| PERCENTILES | 数字列的百分位数值（5%、25%、75%、95%）。 | 数字 | 已启用 | percentile5、percentile25、percentile75、percentile95 | 双精度 | 
| RANGE | 列中值的范围。 | 数字 | 已启用 | range | Int/Double | 
| SKEWNESS | 列中值的偏斜。 | 数字 | 已启用 | skewness | 双精度 | 
| STANDARD\$1DEVIATION | 列中值的无偏样本标准差。 | 数字/字符串长度 | 已启用 | standardDeviation | 双精度 | 
| SUM | 列中值的总和。 | 数字 | 已启用 | sum | Int/Double | 
| UNIQUE\$1VALUES\$1COUNT | 唯一值的数量。唯一值意味着该值仅出现一次。 | number/boolean/string | 已启用 | uniqueValuesCount | Int | 
| VALUE\$1DISTRIBUTION |  按范围测量列中值的分布。  | 数字/字符串长度 | 已启用 | valueDistribution | 列表 | 
| VARIANCE | 列中值的方差。 | 数字 | 已启用 | variance | 双精度 | 
| Z\$1SCORE\$1DISTRIBUTION | 按范围测量数据点 Z 分数值的分布。 | 数字 | 已启用 | zScoreDistribution | 列表 | 
| ZEROS\$1COUNT | 列中零（0）的数量。 | 数字 | 已启用 | zerosCount | Int | 

在 `IncludedStatistics` 中，您可以通过添加覆盖来覆盖每个评估的默认参数。每个覆盖项都包括特定评估的名称和参数映射。

## ColumnStatisticsConfigurations 列的参数
<a name="profile-column-parameters"></a>

在 `ColumnStatisticsConfigurations` 中，剖析作业支持以下参数。

在某些情况下，在 `ColumnStatisticsConfigurations` 中可能存在多个不同的配置，它们具有不同的 `IncludedStatistics` 可应用于同一列。在这些情况下，剖析作业会选择 `ColumnStatisticsConfigurations` 中的最后一个配置并将其 `IncludedStatistics` 应用于所选列。新配置将覆盖旧配置。

### MAXIMUM\$1VALUES
<a name="profile-column-parameter-MAXIMUM-VALUES"></a>

列出数值列中的最大值及其计数。默认列表大小为 5。您可以通过指定 `sampleSize` 的值覆盖列表大小。

**设置**

`sampleSize`：列表的大小，包括数值列中的最大数字和值计数。此值应大于 0。使用 `"ALL"` 可列出所有值。

**示例**

```
{ 
    "Statistic": "MAXIMUM_VALUES",
    "Parameters": {
        "sampleSize": "5"
    }
}
```

### MINIMUM\$1VALUES
<a name="profile-column-parameter-MINIMUM-VALUES"></a>

列出数值列中的最小值及其计数。默认列表大小为 5。您可以通过指定 `sampleSize` 的值覆盖列表大小。

**设置**

`sampleSize`：列表的大小，包括数值列中的最大数字和值计数。此值应大于 0。使用 `"ALL"` 可列出所有值。

**示例**

```
{
    "Statistic": "MINIMUM_VALUES",
    "Parameters": {
        "sampleSize": "5"
    }
}
```

### MOST\$1COMMON\$1VALUES
<a name="profile-column-parameter-MOST-COMMON-VALUES"></a>

列出列中最常见的值及其计数。默认列表大小为 50。您可以通过指定 `sampleSize` 的值覆盖列表大小。

**设置**

`sampleSize`：列表的大小，包括数值列中的最大数字和值计数。此值应大于 0。使用 `"ALL"` 可列出所有值。

**示例**

```
{
    "Statistic": "MOST_COMMON_VALUES",
    "Parameters": {
        "sampleSize": "50"
    }
}
```

### OUTLIER\$1DETECTION
<a name="profile-column-parameter-OUTLIER-DETECTION"></a>

通过 Z 分数算法检测数值列或字符串列中的异常值（基于字符串长度）。

您的剖析作业会对异常值的数量进行计数，并生成异常值及其 Z 分数的样本列表。该样本列表按 Z 分数的绝对值进行排序。默认列表大小为 50。

当一个值与均值的偏差超过标准差阈值时，Z 分数算法会将其标识为异常值。默认异常值阈值为 3。

您可以再提供一个阈值（即轻度阈值）以获取更多信息。轻度阈值应小于阈值。默认情况下，此功能处于关闭状态。如果指定了轻度阈值，则剖析作业会再返回一个计数，即 `zScoreMildOutliersCount`。此外，`zScoreOutliersSample` 在这种情况下可以包括一个轻度阈值异常值样本。

**设置**
+ `threshold`：要在检测异常值时使用的阈值。此值应大于或等于 0。
+ `mildThreshold`：要检测异常值时使用的轻度阈值。此值应大于或等于 0 并小于 `threshold`。
+ `sampleSize`：列中包含异常值的列表的大小。使用 `"ALL"` 可列出所有值。

**示例**

```
{
    "Statistic": "OUTLIER_DETECTION",
    "Parameters": {
        "threshold": "5",
        "mildThreshold": "3.5",
        "sampleSize": "20"
    }
}
```

### VALUE\$1DISTRIBUTION
<a name="profile-column-parameter-VALUE-DISTRIBUTION"></a>

按值范围测量列中值的分布。剖析作业按数值范围将数值列或字符串列（基于字符串长度）中的值分组到分箱，并生成分箱列表。分箱连续排列，存储桶的上限值是下一个存储桶的下限值。

**设置**

` binNumber`：分箱数量。此值应大于 0。

**示例**

```
{
    "Statistic": "VALUE_DISTRIBUTION",
    "Parameters": {
        "binNumber": "5"
    }
}
```

### Z\$1SCORE\$1DISTRIBUTION
<a name="profile-column-parameter-Z-SCORE-DISTRIBUTION"></a>

测量值的 Z 分数在数值列中的分布。剖析作业按数值范围将值的 Z 分数分组到分箱中，并生成分箱列表。分箱连续排列，存储桶的上限值是下一个存储桶的下限值。

**设置**

` binNumber`：分箱数量。此值应大于 0。

**示例**

```
{
    "Statistic": "Z_SCORE_DISTRIBUTION",
    "Parameters": {
        "binNumber": "5"
    }
}
```

## EntityDetectorConfiguration 用于配置 PII 的部分
<a name="entity-detector-configuration"></a>

在结构`EntityDetectorConfiguration`部分中，您可以将数据集中要 DataBrew 检测为个人识别信息 (PII) 的实体类型配置为**个人资料作业的个人身份信息** (PII)。

### EntityTypes
<a name="w2aac19c15c13c23b5"></a>

您可以将要 DataBrew 检测的实体类型配置为个人资料作业的 PII。未定义 `EntityDetectorConfiguration` 时，禁用实体检测。可以在您的数据集中检测到以下实体类型：
+ USA\$1SSN
+ EMAIL
+ USA\$1ITIN
+ USA\$1PASSPORT\$1NUMBER
+ PHONE\$1NUMBER
+ USA\$1DRIVING\$1LICENSE
+ BANK\$1ACCOUNT
+ CREDIT\$1CARD
+ IP\$1ADDRESS
+ MAC\$1ADDRESS
+ USA\$1DEA\$1NUMBER
+ USA\$1HCPCS\$1CODE
+ USA\$1NATIONAL\$1PROVIDER\$1IDENTIFIER
+ USA\$1NATIONAL\$1DRUG\$1CODE
+ USA\$1HEALTH\$1INSURANCE\$1CLAIM\$1NUMBER
+ USA\$1MEDICARE\$1BENEFICIARY\$1IDENTIFIER
+ USA\$1CPT\$1CODE
+ PERSON\$1NAME
+ DATE

还支持实体类型组 `USA_ALL`，它包括除了 `PERSON_NAME` 和 `DATE` 之外的所有上述实体类型。

`EntityTypes` 的类型是一个字符串数组。

### AllowedStatistics
<a name="w2aac19c15c13c23b7"></a>

配置允许在包含检测到的实体的列上运行的统计信息。如果未定义 `AllowedStatistics`，则不会对包含检测到的实体的列计算统计信息。有关 `AllowedStatistics` 参数的有效值列表，请参阅[列级别的可配置统计信息](#statistics.table02)。

`AllowedStatistics` 的类型是一个 `AllowedStatistics` 对象数组。