使用 亚马逊云科技 Glue 数据质量设置警报和协调数据质量规则

警报和通知在保持数据质量方面起着至关重要的作用,因为它们有助于对数据集中可能出现的任何数据质量问题做出迅速有效的响应。通过建立和配置警报和通知,您可以主动监控数据质量,并在发现数据质量问题时及时收到警报。这种主动的方法有助于降低根据不准确的信息做出决策的风险。此外,它允许采取必要的措施,例如纠正数据源中的错误、完善数据转换过程和更新数据质量规则。

我们很高兴地宣布, 亚马逊云科技 Glue 数据质量 现已正式上线, 它提供与 亚马逊 Event Bridge 和 亚马逊云科技 St ep F un ction s 的内置集成,以简化事件驱动的数据质量管理。您现在可以在 可用区域 中使用此功能 。它简化了您监控和评估数据质量的体验。

这篇文章是五篇文章系列的第 4 部分,旨在解释如何使用 亚马逊云科技 Glue 数据质量设置警报和协调数据质量规则:

  • 第 1 部分:亚马逊云科技 Glue 数据目录中的 亚马逊云科技 Glue 数据质量入门
  • 第 2 部分:适用于 ETL 管道的 亚马逊云科技 Glue 数据质量入门
  • 第 3 部分:使用 亚马逊云科技 Glue 数据质量为多个数据集设置数据质量规则
  • 第 4 部分:使用 亚马逊云科技 Glue 数据质量设置警报并协调数据质量规则
  • 第 5 部分:可视化 亚马逊云科技 Glue 数据质量生成的数据质量分数和指标

解决方案概述

在这篇文章中,我们提供了有关使用 亚马逊简单通知服务 (Amazon SNS) 启用警报和通知 的全面指南。我们将逐步引导您逐步使用 EventBridge 制定规则,在数据质量结果与指定模式一致时激活 亚马逊云科技 Lambda 函数。Lambda 函数负责转换数据质量指标并通过 Amazon SNS 将其发送到指定的电子邮件地址。

为了加快解决方案的实施,为了方便起见,我们准备了一 个 亚马逊云科技 CloudFormation 模板。亚马逊云科技 CloudFormation 是一款强大的管理工具,使您能够使用统一的标准化语言在 亚马逊云科技 中定义和配置所有必要的基础设施资源。

该解决方案旨在自动评估 亚马逊云科技 Glu e 数据目录表的数据质量(静态数据质量),并允许您在 亚马逊云科技 Glue 数据质量结果可用时配置电子邮件通知。

以下架构图概述了完整的管道。

数据管道包括以下关键步骤:

  1. 第一步涉及使用步骤函数自动进行的 亚马逊云科技 Glue 数据质量评估。该工作流程旨在根据数据集(或表)上定义的规则集开始评估。工作流程接受用户 提供的 输入参数
  2. EventBridge 规则接收来自 亚马逊云科技 Glue 数据质量评估的事件通知,包括结果。该规则根据预定义的规则评估事件负载,然后触发 Lambda 函数进行通知。
  3. Lambda 函数向指定的电子邮件地址发送包含数据质量统计信息的 SNS 通知。此外,该函数将自定义结果写入指定的 Amazon Simple Storage Servic e (Amazon S3) 存储桶,从而确保其持久性和可访问性,便于进一步分析或处理。

以下各节更详细地讨论了这些步骤的设置。

使用 亚马逊云科技 CloudFormation 部署资源

我们使用 亚马逊云科技 CloudFormation 创建了多种资源,包括 Lambda 函数、EventBridge 规则、步骤函数状态机以及 亚马逊云科技 身份和访问 管理 (IAM) 角色。 完成以下步骤:

  1. 要启动 CloudFormation 堆栈,请选择 启动 堆栈:
  2. 提供您的 emailAddressAlertNotification 的电子邮件地址 ,该电子邮件地址将被注册为数据质量通知 的目标收件人。
  3. 将其他参数保留为其默认值并创建堆栈。

堆栈大约需要 4 分钟才能完成。

  1. 记录 亚马逊云科技 CloudFormation 控制台上 “ 输出 ” 选项卡上列出的输出。
  2. 导航到堆栈创建的 S3 存储桶( dataqualitys3BucketNameStaging),然后上传文件 yellow_tripdata_2022-01.parq uet 文件。
  3. 检查您的电子邮件中是否有主题为 “亚马逊云科技 通知 — 订阅确认” 的消息,然后确认您的订阅。

现在 CloudFormation 堆栈已经完成,让我们在使用步骤函数运行 亚马逊云科技 Glue 数据质量管道之前更新 Lambda 函数代码。

更新 Lambda 函数

本节介绍更新 Lambda 函数的步骤。我们基于 亚马逊云科技 CloudFormation 创建的资源修改了 Amazon SNS 的 ARN 和 S3 的输出存储桶名称。

完成以下步骤:

  1. 在 Lambda 控制台上, 在导航 窗格中选择函数
  2. 选择函数 glu edataQualityBlogalertLambda-xxxx(由上一步中的 CloudFormation 模板创建 )。
  3. 分别使用来自 snst opicNameAlertNotification 和 dataquality 3BucketnameOutputs 的 CloudFormation 堆 栈输出中的相应值修改 sns_topic_arn 和 s3b ucket 的值。
  4. 在 “ 文件 ” 菜单上,选择 “ 保存 ” 。
  5. 选择 “ 部署 ” 。

现在我们已经更新了 Lambda 函数,让我们来看看由 CloudFormation 模板创建的 EventBridge 规则。

查看和分析 EventBridge 规则

本节介绍了 EventBridge 规则的重要性以及规则如何使用事件模式来选择事件并将其发送到特定目标。在本节中,我们将创建一条规则,其事件模式设置为 “ 数据质量评估结果可用 ”, 并将目标配置为 Lambda 函数。

  1. 在 EventBridge 控制台上,选择导航 窗格中的 规则
  2. 选择规则 gluedataQualityB logeVentbridge-xxxx

事件模式 选项卡上,我们可以查看源事件模式。事件模式基于各种 亚马逊云科技 服务或自定义应用程序生成的事件的结构和内容。

  1. 我们将来源设置为 aws-glue-dataQuality,事件模式详细信息类型为 “ 数据 质量 评估结果可 用”。

目标 选项卡上,您可以查看当事件匹配指定模式时将触发的特定操作或服务。

  1. 在这里,我们将 EventBridge 配置为在事件与定义的模式匹配时调用特定的 Lambda 函数。

这允许您运行无服务器函数来响应事件。

现在您已经了解了 EventBridge 规则,让我们回顾一下由 Step Functions 创建的 亚马逊云科技 Glue 数据质量管道。

设置和部署 Step Functions 状态机

亚马逊云科技 CloudFormation 创建了 StatemachineGlueDataqualityCustomBlog-xxxx 状态机,以协调现有 AWS Glue 数据质量规则的评估、需要时创建自定义 规则以及随后对规则集的评估。完成以下步骤来配置和运行状态机:

  1. 在 Step Functions 控制台上, 在导航窗格中选择 状态机
  2. 打开状态机 StateMachineGluedataqualityCustomblog-xxx x。
  3. 选择 “ 编辑”
  4. 使用以 glu edataqualityBlogstep sFunctionrole-xxxx 开头的 IAM 角色 ARN 修改第 80 行,然后选择保存。

Step Functions 需要一定的权限(最低权限)才能运行状态机和评估 亚马逊云科技 Glue 数据质量规则集。

  1. 选择 “ 开始执行 ” 。
  2. 提供以下输入:
    
    {“规则集名称”:“,“数据库名称”:“,“表格名称”:“”,“”,“dq_output_location”:“s3: ///defaultlogs”} 
     
    

此步骤假设规则集存在,并按以下屏幕截图所示运行工作流程。它运行数据质量规则集评估并将结果写入 S3 存储桶。

如果它在数据质量规则中找不到规则集名称,它将为您创建自定义规则集并执行数据质量规则集评估。亚马逊云科技 Step Functions 正在创建自定义规则集。以下是状态机代码的代码片段。


状态机结果和运行选项

Step Functions 状态机已运行 亚马逊云科技 Glue 数据质量评估。现在,EventBridge 会匹配 数据质量评估结果可用的 模式 并触发 Lambda 函数。Lambda 函数将自定义的 亚马逊云科技 Glue 数据质量指标结果写入 S3 存储桶,并通过 Amazon SNS 发送电子邮件通知。

以下示例电子邮件提供了 亚马逊云科技 Glue 数据质量规则集评估的运营指标。它提供了有关规则集名称、通过或失败的规则数量以及分数的详细信息。这有助于您在规则失败时直观显示每条规则的结果以及评估消息。

Sample email notification

您可以灵活地在 Step Functions 工作流程的两种运行模式之间进行选择:

  • 第一个选项是按需模式,每当你想要启动 亚马逊云科技 Glue 数据质量评估时,都要手动触发 Step Functions 工作流程。
  • 或者,您可以使用 EventBridge 安排整个步骤函数工作流程。使用 EventBridge,您可以定义时间表或特定触发器,以按预定间隔或响应特定事件自动启动工作流程。这种自动化方法减少了对手动干预的需求并简化了数据质量评估流程。有关更多详细信息,请参阅 安排无服务器工作流程

清理

为了避免将来产生费用并清理未使用的角色和策略,请删除您创建的资源:

  1. 在 亚马逊云科技 CloudFormation 控制台上, 在导航窗格中选择 堆栈
  2. 选择您的堆栈并将其删除。

如果您继续阅读本系列 的 第 5 部分 ,则可以跳过此步骤。

结论

在这篇文章中,我们讨论了组织可以采取的三个关键步骤来优化 亚马逊云科技 上的数据质量和可靠性:

  • 创建 CloudFormation 模板以确保部署 亚马逊云科技 资源时的一致性和可重复性。
  • 集成 亚马逊云科技 Glue 数据质量规则集评估和 Lambda,以自动评估数据质量并通过 Amazon SNS 接收事件驱动的提醒和电子邮件通知。这显著提高了数据的准确性和可靠性。
  • 使用步骤函数来编排 亚马逊云科技 Glue 数据质量规则集操作。您可以创建和评估自定义和推荐的规则集,从而优化数据质量和准确性。

这些步骤构成了在 亚马逊云科技 上提高数据质量和可靠性的综合方法,帮助组织保持高标准并实现其目标。

要深入了解 亚马逊云科技 Glue 数据质量 API,请参阅 数据质量 API 。要了解有关 亚马逊云科技 Glue 数据质量的更多信息,请查看 亚马逊云科技 Glue 数据质量开发者指南

如果您在 亚马逊云科技 Lak e Formation 环境中构建此管道时需要任何帮助,或者对这篇文章有任何疑问,请在评论部分告知我们或在 Lake Formation论坛 上发起新话题 。


作者简介

A@@ vik Bhattacharjee 是 亚马逊云科技 的高级合作伙伴解决方案架构师。他与客户合作制定IT战略,使通过云实现数字化转型更加容易,重点是大数据和分析以及人工智能/机器学习。

A@@ mit Kumar Pand a 是 亚马逊云科技 专业服务的数据架构师,他热衷于帮助客户构建可扩展的数据分析解决方案,从而做出关键的业务决策。

尼尔·帕特 尔 是一名在 GlueML 工作的软件工程师。他为亚马逊云科技 Glue数据质量功能做出了贡献,并希望该功能能够扩大所有亚马逊云科技 CloudFormation用户的功能范围,同时展示整个亚马逊云科技 Glue的强大功能和可用性。

Edward Cho 是 亚马逊云科技 Glue 的软件开发工程师。他为 亚马逊云科技 Glue 数据质量功能以及基础开源项目 Deequ 做出了贡献。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。