AWS Glue Data Quality for the Data Catalog 入门 - AWS Glue

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

AWS Glue Data Quality for the Data Catalog 入门

此 设置开始部分提供的说明有助于您在 AWS Glue 控制台上开始使用 AWS Glue Data Quality。您将学习如何完成基本任务,例如生成数据质量规则建议和根据您的数据评估规则集。

先决条件

在 AWS Glue Data Quality 使用之前,您应熟悉在 AWS Glue 中使用 Data Catalog 和爬网程序。使用 AWS Glue Data Quality,您可以评估 Data Catalog 数据库中表的质量。您需要以下项目:

  • Data Catalog 中的一个表,用于评估您的数据质量规则集。

  • AWS Glue 的 IAM 角色,在生成规则建议或运行数据质量任务时提供。此角色必须具有运行各种 AWS Glue Data Quality 进程所需的资源的访问权限。这些资源包括 AWS Glue、Amazon S3 和 CloudWatch。要查看包含 AWS Glue Data Quality 最低权限的策略示例,请参阅 示例 IAM policies

    要了解有关 AWS Glue 的 IAM 角色的更多信息,请参阅 Create an IAM policy for the AWS Glue serviceCreate an IAM role for the AWS Glue service。您还可以查看 Authorization for AWS Glue Data Quality actions 上特定于数据质量的所有 AWS Glue 权限的列表。

  • 至少有一个包含各种数据的表的数据库。本教程中使用的表名为 yyz-tickets,包含表 tickets。该数据是多伦多市政府提供的用于停车收费的公开信息的集合。如果您创建自己的表,请确保表中填充了各种有效数据,以获得最佳的推荐规则集。

分步示例

有关示例数据集的分步示例,请参阅 AWSGlue Data Quality 博客文章

生成规则建议

规则建议使您无需编写代码即可轻松开始提高数据质量。使用 AWS Glue Data Quality,您可以分析数据、确定规则并创建规则集,您可以在数据质量任务中对其进行评估。建议运行在 90 天后被自动删除。

生成数据质量规则建议
  1. 打开 AWS Glue 控制台,网址为 https://console.aws.amazon.com/glue/

  2. 在导航窗格中,选择 Tables(表)。然后选择要为其生成数据质量规则建议的表。

  3. 在表格详细信息页面上,选择数据质量选项卡以访问表的 AWS Glue Data Quality 规则和设置。

  4. 数据质量选项卡上,选择添加规则并监控数据质量

  5. 规则集生成器页面上,如果没有规则建议运行,页面顶部的警报将提示您启动建议任务。

  6. 选择推荐规则以打开模态并输入建议任务的参数。

  7. 选择一个有权访问 AWS Glue 的 IAM 角色。此角色必须具有运行各种 AWS Glue Data Quality 进程所需的资源的访问权限。

  8. 根据您的偏好填写字段后,选择推荐规则以开始运行建议任务。如果建议运行正在进行或已完成,则可以在此警报中管理您的运行。您可能需要刷新警报才能查看状态更改。已完成和正在进行的建议任务运行显示在运行历史记录页面中,该页面列出了过去 90 天的所有建议运行。

推荐的规则是什么意思

AWS Glue Data Quality 根据输入表中每列的数据生成规则。它使用这些规则来确定可以筛选数据以保持质量要求的潜在界限。以下生成的规则列表包括一些示例,这些示例有助于理解这些规则的含义以及它们在应用于您的数据时可能做什么。

有关生成的数据质量定义语言(DQDL)规则类型的完整列表,请参阅 DQDL rule type reference

  • IsComplete "SET_FINE_AMOUNT" - IsComplete 规则验证是否为任何给定行填写了该列。使用此规则在数据中将列标记为非可选列。

  • Uniqueness "TICKET_NUMBER" > 0.95 - Uniqueness 规则验证列中的数据是否满足某个唯一性阈值。在本例中,确定为 "TICKET_NUMBER" 填充任何给定行的数据的内容与所有其他行的内容最多 95% 相同,这表明了这一规则。

  • ColumnValues "PROVINCE" in ["ON", "QC", "AB", "NY",...] - ColumnValues 规则根据现有列内容定义列的有效值。在本例中,每行的数据是州或省的 2 个字母的牌照。

  • ColumnLength "INFRACTION_DESCRIPTION" between 15 and 31 - ColumnLength 规则对列的数据强制执行长度限制。此规则是根据样本数据生成的,该数据基于一列字符串的最小和最大记录长度。

监控规则建议

运行数据质量规则建议时,添加规则并监控数据质量页面会在顶部栏中显示您可以执行的信息和其他操作。

当规则建议正在进行时,您可以在建议任务完成之前选择停止运行。任务正在进行时,您将看到运行的状态进行中以及运行开始的日期和时间。

规则建议完成后,规则建议栏会显示建议的规则数量、上次建议运行的状态以及完成的日期和时间戳。

您可以通过选择插入规则建议来添加推荐的规则。要查看之前推荐的规则,请选择一个特定的日期。要运行新的建议,请选择更多操作,然后选择推荐的规则

通过选择管理用户设置来设置默认设置。您可以为 Amazon S3 设置默认路径,来存储规则集或设置运行 Data Catalog 的默认角色。

编辑推荐的规则集

由于 AWS Glue Data Quality 会根据您现有的可用数据生成规则,因此您可能会在自动建议中看到一些意想不到或不想要的规则。为了充分利用推荐的规则集,您需要对其进行评估和修改。在本教程的这一步中,您将采用上一步中生成的规则并对其进行调整,以对某些数据强制执行更严格的质量。您还可以放宽其他规则,以确保以后可以添加正确、唯一的数据。

编辑建议的规则集
  1. 在 AWS Glue 控制台中的导航窗格中,选择 Data Catalog,然后选择数据库表。选择 tickets 表。

  2. 在表格详细信息页面上,选择数据质量选项卡以访问表的 AWS Glue Data Quality 规则和设置。

  3. 规则集部分,选择在 生成规则建议 中生成的规则集。

  4. 选择操作,然后在控制台窗口中选择编辑。规则集编辑器加载到控制台中。它包括规则的编辑窗格和 DQDL 的快速参考。

  5. 删除脚本中的 2 行。这放宽了将数据库大小限制在一定行数之内的要求。编辑完成后,您的文件应在第 1-3 行包含以下内容:

    Rules = [ IsComplete "TAG_NUMBER_MASKED", ColumnLength "TAG_NUMBER_MASKED" between 6 and 9,
  6. 删除脚本中的 25 行。这放宽了记录在案的省份中占 96% 的要求为 ON。编辑完成后,您的文件应包含从行 24 到规则集末尾的以下内容:

    ColumnValues "PROVINCE" in ["ON", "QC", "AB", "NY", "AZ", "NS", "BC", "MI", "PQ", "MB", "PA", "FL", "SK", "NJ", "OH", "NB", "IL", "MA", "CA", "VA", "TX", "NF", "MD", "PE", "CT", "NC", "GA", "IN", "OR", "MN", "TN", "WI", "KY", "MO", "WA", "NH", "SC", "CO", "OK", "VT", "RI", "ME", "AL", "YT", "IA", "DE", "AR", "LA", "XX", "WV", "MT", "KS", "NT", "DC", "NV", "NE", "UT", "MS", "NM", "ID", "SD", "ND", "AK", "NU", "GO", "WY", "HI"], ColumnLength "PROVINCE" = 2 ]
  7. 将行14 更改为以下内容:

    IsComplete "TIME_OF_INFRACTION",

    通过将数据库限制为仅包含记录的违规时间的工单,这加强了对列的要求。在此数据集中,您应始终将没有记录违规时间的工单视为无效数据。这与分区或转换可能更适合进一步使用或检查数据以确定质量规则的情况不同。

  8. 选择控制台页面底部的更新规则集

创建新规则集

规则集是一组数据质量规则,您可以根据数据进行评估。在 AWS Glue 控制台中,您可以使用数据质量定义语言(DQDL)创作自定义规则集。

创建数据质量规则集
  1. 在 AWS Glue 控制台中的导航窗格中,选择 Data Catalog,选择数据库,然后选择。选择表 tickets

  2. 打开 Data quality(数据质量)选项卡。

  3. 规则集部分中,选择创建规则集。DQDL 编辑器将在控制台中启动。它有一个用于直接编辑的文本区域,还有用于 DQDL 规则和表架构的快速参考。

  4. 开始向 DQDL 编辑器的文本区域添加规则。您可以直接从本教程中编写规则,也可以使用数据质量规则编辑器的 DQDL 规则生成器功能。

    注意
    如何使用 DQDL 规则生成器
    1. 从列表中选择规则类型,然后选择加号将示例语法插入编辑器窗格。

    2. 将占位符列名与您自己的列名交换。表中的列名可在架构选项卡中找到。

    3. 根据需要更新表达式参数。有关 DQDL 支持的表达式的完整列表,请参阅Expressions

    例如,以下规则是对 tickets 表中 ticket_number 列进行数据验证的约束。要添加以下规则,请使用 DQDL 规则生成器或直接编辑您的规则集:

    IsComplete "ticket_number", IsUnique "ticket_number", ColumnValues "ticket_number" > 9000000000
  5. 规则集名称字段中为您的新规则集提供一个名称。

  6. 选择保存规则集

评估多个数据集的数据质量

您可以使用 ReferentialIntegrity 和 DatasetMatch 规则集跨多个数据集设置数据质量规则。ReferentialIntegrity 会检查主数据集中的数据是否存在于其他数据集中。

要添加引用数据集,请选择架构选项卡,然后选择更新引用表。系统将提示您选择数据库和表。您可以添加表,然后设置数据质量规则。AggregateMatch、RowCountMatch、ReferentialIntegrity、SchemaMatch 和 DatasetMatch 等规则类型支持对多个数据集执行数据质量检查的功能。

运行规则集以评估数据质量

当您运行数据质量任务时,AWS Glue Data Quality 会根据您的数据评估规则集并计算数据质量分数。此分数代表通过输入的数据质量规则的百分比。

运行数据质量任务
  1. 在 AWS Glue 控制台中的导航窗格中,选择 Data Catalog,选择数据库,然后选择。选择表 tickets

  2. 选择数据质量选项卡。

  3. 规则集列表中,选择要对照表评估的规则集。在此步骤中,我们建议使用您已经编写或修改过的规则集,而不是生成的规则。选择运行

  4. 在模态中,选择您的 IAM 角色。此角色必须具有运行各种 AWS Glue Data Quality 进程所需的资源的访问权限。您可以将 IAM 角色保存为默认角色,也可以前往默认设置页面对其进行修改。

  5. Data quality actions(数据质量操作)下,选择是否要 Publish metrics to Amazon CloudWatch(将指标发布到 Amazon CloudWatch)。选择此选项后,AWS Glue Data Quality 会发布指标,指示通过的规则数量和失败的规则数量。要对以这种方式存储的指标采取行动,您可以使用 CloudWatch 警报。系统还会将关键指标发布到 Amazon EventBridge 供您设置警报。有关更多信息,请参阅 Setting up alerts, deployments, and scheduling

  6. 运行频率中,选择按需运行或计划规则集。计划规则集时,系统会提示您输入任务名称。计划将在 Amazon EventBridge 中创建。您可以在 Amazon EventBridge 中编辑计划。

  7. 要在 Amazon S3 中保存数据质量结果,请选择数据质量结果位置。您之前为此任务选择的 IAM 角色必须具有您选择的位置的写入权限。

  8. 其他配置下,输入您希望 AWS Glue 为数据质量任务分配的请求的工作线程数

  9. 您可以选择在数据来源上设置筛选器。这可以帮助减少要读取的数据。您还可以使用筛选器来运行增量验证,方法是选择分区信息并通过 API 调用将其作为参数传递。为了提高性能,您可以提供分区谓词。

  10. 选择运行。您应该在 Data quality task runs(数据质量任务运行)列表中看到您的新任务。当任务的运行状态列显示为已完成时,您可以查看质量分数结果。您可能需要刷新控制台窗口才能正确更新状态。

  11. 要查看数据质量结果详细信息的列,请选择“+”图标展开规则集。结果显示了在评估中通过和失败的规则,以及触发规则失败的原因。

查看数据质量分数和结果

查看所有已创建的规则集的最新运行情况
  1. 在 AWS Glue 控制台中,选择 Tables(表)。然后选择要为其运行数据质量任务的表。

  2. 选择数据质量选项卡。

  3. 数据质量快照显示了一段时间内运行的总体趋势。默认情况下,系统会显示所有规则集的最近 10 次运行。要按规则集进行筛选,请从下拉列表中选择所需的规则集。如果运行次数少于 10 次,则会显示所有已完成的可用运行。

  4. 数据质量表中,系统显示了每个规则集及其最新运行次数(如果有的话)以及分数。展开规则集会显示该规则集中的规则以及该运行的规则结果。

查看特定规则集的最新运行情况
  1. 在 AWS Glue 控制台中,选择 Tables(表)。然后选择要为其运行数据质量任务的表。

  2. 选择数据质量选项卡。

  3. 数据质量表中,选择特定的规则集。

  4. 规则集详细信息页面上,选择运行历史记录选项卡。

    该特定规则集的所有评估运行都列在该选项卡的表格中。您可以查看分数历史记录和运行状态。

  5. 要查看有关特定运行的更多信息,请选择运行 ID 以转到评估运行详细信息页面。在此页面上,您可以看到有关运行的详细信息以及有关各个规则结果状态的更多详细信息。