本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
评估 Amazon Glue Studio 中 ETL 作业的数据质量
在本教程中,您将开始使用 Amazon Glue Studio 中的 Amazon Glue 数据质量。您将了解如何执行以下操作:
-
使用数据质量定义语言(DQDL)规则构建器创建规则集。
-
指定数据质量操作、要输出的数据以及数据质量结果的输出位置。
-
查看数据质量结果。
要通过示例进行练习,请查看博客文章适用于 ETL 管道的 Amazon Glue Data Quality 的入门
步骤 1:将“评估数据质量”转换节点添加到可视化作业
在此步骤中,将“评估数据质量”节点添加到可视作业编辑器中。
添加数据质量节点
-
在 Amazon Glue Studio 控制台中,从创建作业部分选择源和目标可视化,然后选择创建。
-
选择要应用数据质量转换的节点。通常,这将是转换节点或数据来源。
-
选择“+”图标打开左侧的资源面板。然后在搜索栏中搜索评估数据质量,然后从搜索结果中选择评估数据质量。
-
可视化作业编辑器将显示来自所选节点的评估数据质量转换节点分支。在控制台的右侧,Transform(转换)选项卡自动打开。如果您需要更改父节点,请选择节点属性选项卡,然后从下拉菜单中选择父节点。
当您选择新的父节点时,将在父节点和 Evaluate Data Quality(评估数据质量)节点之间建立新的连接。移除所有不需要的父节点。只能将一个父节点连接到一个 Evaluate Data Quality(评估数据质量)节点。
-
评估数据质量转换支持多个父数据集,因此您可以跨多个数据集验证数据质量规则。支持多个数据集的规则包括 ReferentialIntegrity、DatasetMatch、SchemaMatch、RowCountMatch 和 AggregateMatch。
向“评估数据质量”转换添加多个输入时,需要选择“主要”输入。您的主要输入是要验证数据质量的数据集。所有其他节点或输入都被视为引用。
您可以使用“评估数据质量”转换来标识未通过数据质量检查的特定记录。我们建议您选择主数据集,因为标记不良记录的新列会添加到主数据集中。
-
您可以为输入数据来源指定别名。在使用 ReferentialIntegrity 规则时,别名提供了另一种引用输入源的方式。由于只能将一个数据来源指定为主要源,因此您添加的每个额外数据来源都需要一个别名。
在以下示例中,ReferentialIntegrity 规则通过别名指定输入数据来源,并与主数据来源进行一对一比较。
Rules = [ ReferentialIntegrity “Aliasname.name” = 1 ]
步骤 2:使用 DQDL 创建规则
在本步骤中,您将使用 DQDL 来创建规则。在本教程中,您使用完整性规则类型创建单个规则。此规则类型检查列中完整(非空)值与给定表达式的百分比。有关使用 DQDL 的更多信息,请参阅 DQDL。
-
在转换选项卡中,选择插入按钮添加规则类型。这会将规则类型添加到规则编辑器中,您可以在其中输入规则的参数。
注意
编辑规则时,请确保规则在方括号内,并确保规则用逗号分隔。例如,完整的规则表达式将如下所示:
Rules= [ Completeness "year">0.8, Completeness "month">0.8 ]
此示例为名为“年”和“月”的列指定了完整性参数。为了让规则通过,这些列的“完成”值必须大于 80%,或者每个相应列的实例中的数据必须超过 80%。
在此示例中,搜索并插入 Completeness(完整性)规则类型。这会将规则类型添加到规则编辑器中。此规则类型具有以下语法:
Completeness <COL_NAME> <EXPRESSION>
。大多数规则类型都要求您提供表达式作为参数才能创建布尔响应。有关支持的 DQDL 表达式的更多信息,请参阅 DQDL expressions。接下来,您将添加列名。
-
在 DQDL 规则生成器中,选择架构选项卡。使用搜索栏在输入架构中查找列名。输入架构显示列名和数据类型。
-
在规则编辑器中,单击规则类型的右侧,在要插入列的位置插入光标。或者,您也可以在规则中输入列的名称。
例如,在输入架构列表的列列表中,选择该列旁边的插入按钮(在本示例中为年份)。这会将该列添加到规则中。
-
然后,在规则编辑器中添加一个表达式来评估规则。由于完整性规则类型会根据给定表达式检查列中完整(非空)值的百分比,因此请输入一个表达式(例如
> 0.8
)。该规则检查该列的完整值(非空值)是否大于 80%。
步骤 3:配置数据质量输出
创建数据质量规则后,您可以选择其他选项来指定数据质量节点输出:
-
在 Data quality transform output(数据质量转换输出)中,从以下选项中选择:
-
原始数据 — 选择输出原始输入数据。当您选择此选项时,作业中会添加一个新的子节点“rowLevelOutcomes”。该架构与作为输入传递给转换的主数据集的架构相匹配。如果您只想在出现质量问题时传递数据并使作业失败,则此选项非常有用。
另一个用例是您想要检测未通过数据质量检查的不良记录。要检测不良记录,请选择添加新列以指示数据质量错误选项。此操作将在“rowLevelOutcomes”转换的架构中添加四个新列。
-
DataQualityRulesPass(字符串数组)— 提供一组通过数据质量检查的规则。
-
DataQualityRulesFail(字符串数组)— 提供一组未通过数据质量检查的规则。
-
DataQualityRulesSkip(字符串数组)— 提供已跳过的规则数组。以下规则无法识别错误记录,因为它们是在数据集级别应用的。
-
AggregateMatch
-
ColumnCount
-
ColumnExists
-
ColumnNamesMatchPattern
-
CustomSql
-
RowCount
-
RowCountMatch
-
StandardDeviation
-
平均值
-
ColumnCorrelation
-
-
DataQualityEvaluationResult — 在行级别提供“通过”或“失败”状态。请注意:您的总体结果可能为“失败”,但某项记录可能会通过。例如,RowCount 规则可能已失败,但所有其他规则可能都已成功。在这种情况下,此字段状态为“已通过”。
-
-
-
数据质量结果 — 选择输出配置的规则及其通过或失败状态。如果要将结果写入 Amazon S3 或其他数据库,此选项非常有用。
-
数据质量输出设置(可选)— 选择数据质量输出设置以显示数据质量结果位置字段。然后,选择浏览搜索要设置为数据质量输出目标的 Amazon S3 位置。
第 4 步。配置数据质量操作
您可以使用操作将指标发布到 CloudWatch 或根据特定条件停止作业。只有在创建规则后,操作才可用。当您选择此选项时,同样的指标也会发布到 Amazon EventBridge。您可以使用这些选项来创建通知警报。
-
规则集失败时 — 您可以选择在作业运行时,如果规则集失败该怎么做。如果您希望在数据质量失败时作业失败,请通过选择以下选项之一来选择作业何时失败。默认情况下,此操作处于未选中状态,即使数据质量规则失败,作业也将完成运行。
-
无 — 如果选择无(默认值),则作业不会失败,即使规则集失败,作业仍会继续运行。
-
将数据加载到目标后作业失败 — 作业失败且未保存任何数据。要保存结果,请选择用于保存数据质量结果的 Amazon S3 位置。
-
在不加载到目标数据的情况下作业失败 — 当发生数据质量错误时,此选项会立即使作业失败。它不加载任何数据目标,包括数据质量转换的结果。
-
步骤 5:查看数据质量结果
运行作业后,选择数据质量选项卡查看数据质量结果。
-
对于每个运行作业,查看数据质量结果。每个节点显示数据质量状态和状态详细信息。选择节点可查看所有规则和每条规则的状态。
-
选择下载结果可下载包含有关作业运行和数据质量结果信息的 CSV 文件。
-
如果您运行了多个带有数据质量结果的作业,则可以按日期和时间范围筛选结果。选择按日期和时间范围筛选以展开筛选窗口。
-
您可以选择 Relative range(相对范围)或者 Absolute range(绝对范围)。对于绝对范围,请使用日历选择日期并输入开始时间和结束时间的值。完成后,选择应用。