

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

# 验证中的数据质量 Amazon Glue DataBrew
<a name="profile.data-quality-rules"></a>

为确保数据集的质量，应在规则集中定义数据质量规则列表。*规则集*是一组规则，可将不同的数据指标与预期值进行比较。如果未满足某条规则的任何标准，则整个规则集将验证失败。然后，您可以检查每条规则的单独结果。对于任何导致验证失败的规则，您可以进行必要的更正并重新验证。

路径示例包括以下各项：
+ 列 `"APY"` 中的值介于 0 和 100 之间
+ 列 `group_name` 中缺失值的数量不超过 5%

您可以为单个列定义每条规则，也可以将其独立应用于多个选定列，例如：
+ `"rate"`、`"pay"`、`"increase"` 列的最大值不超过 100。

一条规则可以由多项简单检查组成。您可以定义这些规则是全部属实还是其中任意一项属实，例如：
+ 列 `"ProductId"` 中的值应以 `"asin-"` 开头，并且列 `"ProductId"` 中值的长度为 32。

您可以针对聚合值（例如 `max`、`min` 或 `number of duplicate values`，其中只有一个值要比较）或者针对列的每行中的非聚合值，来验证规则。在后一种情况下，您还可以定义一个“通过”阈值，例如 `value in columnA > value in columnB for at least 95% of rows`。

 与配置文件信息相同，您只能为简单类型（例如字符串和数字）的列定义列级数据质量规则。无法为复杂类型（例如数组或结构）的列定义数据质量规则。有关使用配置文件信息的更多详细信息，请参阅[创建和使用 Amazon Glue DataBrew 个人资料职位](jobs.profile.md)。

## 验证数据质量规则
<a name="profile.data-quality-rules-validating"></a>

定义规则集后，您可以将其添加到剖析作业中进行验证。您可以为一个数据集定义多个规则集。

例如，一个规则集可能包含具有最低可接受标准的规则。该规则集验证失败可能意味着该数据不可接受，无法供进一步使用。例如，在用于机器学习训练的数据集的关键列中缺少值。您可以使用更严格的第二个规则集来验证数据集是否具有如此高的质量，无需进行任何清理。

您可以在剖析作业配置中应用为给定数据集定义的一个或多个规则集。剖析作业运行时，除数据配置文件外，它还会生成验证报告。验证报告与配置文件数据位于同一位置。与个人资料信息一样，您可以在 DataBrew控制台中浏览结果。在**数据集详细信息**视图中，选择**数据质量**选项卡可查看结果。有关使用配置文件信息的更多详细信息，请参阅[创建和使用 Amazon Glue DataBrew 个人资料职位](jobs.profile.md)。

## 根据验证结果采取行动
<a name="profile.data-quality-rules-results-acting"></a>

 DataBrew 配置任务完成后， DataBrew 会发送一个 Amazon CloudWatch 事件，其中包含该任务运行的详细信息。如果您还将作业配置为验证数据质量规则，则会为每个经过验证的规则集 DataBrew发送一个事件。该事件包含其结果（`SUCCEEDED`、`FAILED` 或 `ERROR`）以及指向详细数据质量验证报告的链接。然后，您可以根据验证状态，通过调用**下一个操作**自动执行进一步操作。有关将事件与目标操作（例如 Amazon SNS 通知、 Amazon Lambda 函数调用等）关联的更多信息，请参阅 Amazon 入[门](https://docs.amazonaws.cn/eventbridge/latest/userguide/eventbridge-getting-set-up.html)。 EventBridge

 以下是 DataBrew 验证结果事件的示例：

```
{
  "version": "0",
  "id": "fb27348b-112d-e7c2-560d-85e7c2c09964",
  "detail-type": "DataBrew Ruleset Validation Result",   
  "source": "aws.databrew",                     
  "account": "123456789012",          
  "time": "2021-11-18T13:15:46Z", 
  "region": "us-east-1",
  "resources": [],
  "detail": {
    "datasetName": "MyDataset", 
    "jobName": "MyProfileJob",
    "jobRunId": "db_f07954d20d083de0c1fc1eee11498d8635ee5be4ca416af27d33933e91ff4e6e",
    "rulesetName": "MyRuleset",
    "validationState": "FAILED",
    "validationReportLocation": "s3://MyBucket/MyKey/MyDataset_f07954d20d083de0c1fc1eee11498d8635ee5be4ca416af27d33933e91ff4e6e_dq-validation-report.json"
  }
}
```

您可以在 Amazon Eventbridge 中使用诸如 `detail-type`、`source` 及 `detail` 属性的嵌套属性等事件属性来[创建事件模式](https://docs.amazonaws.cn/eventbridge/latest/userguide/eb-event-patterns.html#eb-create-pattern)。例如，匹配任何 DataBrew 作业中所有失败验证的事件模式如下所示：

```
{
  "source": ["aws.databrew"],
  "detail-type": ["DataBrew Ruleset Validation Result"],
  "detail": {
   "validationState": ["FAILED"]
  }
}
```

有关创建规则集和验证其规则的示例，请参阅[创建包含数据质量规则的规则集](profile.data-quality-rules-create.md)。有关在中处理 CloudWatch 事件的更多信息 DataBrew，请参阅 [DataBrew 使用 CloudWatch 事件自动化](monitoring.cloudwatch-events.md) 

## 检查数据质量规则的验证结果并更新这些规则
<a name="profile.data-quality-ruleset-inspect-results"></a>

剖析作业完成后，您可以查看数据质量规则的验证结果，并根据需要更新这些规则。

**查看数据质量规则的验证数据**

1. 在 DataBrew 控制台上，选择**查看数据配置文件**。这样将显示数据集的**数据剖析概览**选项卡。

1. 选择**数据质量规则**选项卡。在此选项卡上，您可以查看所有数据质量规则的结果。

1. 选择单个规则，了解有关该规则的更多详细信息。

对于任何验证失败的规则，您可以进行必要的更正。

**更新数据质量规则**

1. 在导航窗格上，选择 **DQ 规则**。

1. 在**数据质量规则集名称**下，选择包含您计划编辑的规则的数据集。

1. 选择要更改的规则，然后选择**编辑**。

1. 进行必要的更正，然后选择**更新规则集**。

1. 重新运行作业。重复执行此过程，直到所有验证通过为止。