验证 Amazon Glue DataBrew 中的数据质量 - Amazon Glue DataBrew
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

验证 Amazon Glue DataBrew 中的数据质量

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

路径示例包括以下各项:

  • "APY" 中的值介于 0 和 100 之间

  • group_name 中缺失值的数量不超过 5%

您可以为单个列定义每条规则,也可以将其独立应用于多个选定列,例如:

  • "rate""pay""increase" 列的最大值不超过 100。

一条规则可以由多项简单检查组成。您可以定义这些规则是全部属实还是其中任意一项属实,例如:

  • "ProductId" 中的值应以 "asin-" 开头,并且列 "ProductId" 中值的长度为 32。

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

与配置文件信息相同,您只能为简单类型(例如字符串和数字)的列定义列级数据质量规则。无法为复杂类型(例如数组或结构)的列定义数据质量规则。有关使用配置文件信息的更多详细信息,请参阅创建和使用 Amazon Glue DataBrew 剖析作业

验证数据质量规则

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

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

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

根据验证结果采取行动

当 DataBrew 剖析作业完成时,DataBrew 会发送一个 Amazon CloudWatch 事件,其中包含有关该作业运行的详细信息。如果您还将作业配置为验证数据质量规则,则 DataBrew 会针对每个经过验证的规则集发送一个事件。该事件包含其结果(SUCCEEDEDFAILEDERROR)以及指向详细数据质量验证报告的链接。然后,您可以根据验证状态,通过调用下一个操作自动执行进一步操作。有关将事件与目标操作(例如 Amazon SNS 通知、Amazon Lambda 函数调用等)关联的更多信息,请参阅 Amazon 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-typesourcedetail 属性的嵌套属性等事件属性来创建事件模式。例如,从任何 DataBrew 作业中匹配所有失败验证的事件模式如下所示:

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

有关创建规则集和验证其规则的示例,请参阅创建包含数据质量规则的规则集。有关在 DataBrew 中使用 CloudWatch 事件的更多信息,请参阅使用 CloudWatch Events 实现 DataBrew 自动化

检查数据质量规则的验证结果并更新这些规则

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

查看数据质量规则的验证数据
  1. 在 DataBrew 控制台上,选择查看数据剖析。这样将显示数据集的数据剖析概览选项卡。

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

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

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

更新数据质量规则
  1. 在导航窗格上,选择 DQ 规则

  2. 数据质量规则集名称下,选择包含您计划编辑的规则的数据集。

  3. 选择要更改的规则,然后选择编辑

  4. 进行必要的更正,然后选择更新规则集

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