公司新闻

在 Amazon Redshift 数据资产上实施数据质量检查并与 Amazon DataZone

在 Amazon Redshift 数据资产上实施数据质量检查并与 Amazon DataZone

在Amazon Redshift数据资产上实施数据质量检查并与Amazon DataZone集成

重点摘要

本文探讨了如何在Amazon Redshift环境中实施数据质量检查,并与Amazon DataZone集成,以增强数据资产的可靠性和可用性。通过整合AWS Glue Data Quality,组织能够实时监控数据质量,帮助决策者做出明智选择。

数据质量在数据管道中至关重要,因为它直接影响从数据中获得的商业洞察的有效性。目前,许多组织使用AWS Glue Data Quality来定义和强制执行其静态和动态数据的质量规则。然而,组织面临的一个主要挑战是如何为用户提供数据资产健康性和可靠性的可见性。在使用Amazon DataZone的业务数据目录中,这一点尤为关键,因为用户依赖数据的可信度进行知情决策。随着数据的更新和刷新,质量下降的风险也随之增加。

Amazon DataZone是一个数据管理服务,旨在简化数据发现、数据目录、数据共享和治理。它允许组织拥有一个安全的数据中心,确保组织中的每个人都可以在AWS、本地和第三方来源找到、访问和协作数据。它简化了分析师、工程师和业务用户的数据访问,使他们能够无缝发现、使用和共享数据。数据生产者数据拥有者可以通过预定义的审批来添加上下文并控制访问,从而实现安全和受管的数据共享。以下图表展示了Amazon DataZone的高层架构。如需了解Amazon DataZone的核心组件,请查阅Amazon DataZone术语和概念。

为了解决数据质量问题,Amazon DataZone现在直接与AWS Glue Data Quality集成,使您能够在Amazon DataZone网页入口中可视化AWS Glue数据目录资产的数据质量得分。您可以访问有关数据完整性、唯一性和准确性等多个关键绩效指标KPI数据质量得分的见解。

通过提供对应用于数据资产的数据质量验证规则的全面视图,您可以明智地判断特定数据资产是否适合其预期用途。Amazon DataZone还集成了数据质量运行的历史趋势,使您能够充分了解该资产的质量是否随着时间的推移而得到改善或下降。借助Amazon DataZone API,数据拥有者可以将第三方系统的数据质量规则集成到特定数据资产中。以下截图展示了嵌入在Amazon DataZone商业目录中的数据质量见解示例。如需了解更多信息,请参阅Amazon DataZone现在与AWS Glue Data Quality和外部数据质量解决方案集成。

在这篇文章中,我们将展示如何捕获在Amazon Redshift中生成的数据资产的数据质量指标。

Amazon Redshift是一个快速、可扩展的全托管云数据仓库,可让您处理和运行结构化和半结构化数据的复杂SQL分析工作负载。Amazon DataZone本地支持Amazon Redshift数据资产的数据共享。

使用Amazon DataZone,数据所有者可以直接将Redshift数据库表和视图的技术元数据导入到Amazon DataZone项目的清单中。当这些数据资产被导入到Amazon DataZone时,会绕过AWS Glue数据目录,从而在数据质量集成上造成差距。本文提出了一种解决方案,以通过数据质量得分和KPI指标来丰富Amazon Redshift数据资产。

解决方案概述

所提议的解决方案使用AWS Glue Studio创建一个可视化的提取、转换和加载ETL管道,用于数据质量验证,并使用自定义可视化转换将数据质量结果发布到Amazon DataZone。以下截图展示了该管道。

该管道通过直接与Amazon Redshift建立连接开始,然后根据组织的业务需求应用在AWS Glue中定义的必要数据质量规则。应用完规则后,管道将数据与这些规则进行验证。规则的结果随后通过实现Amazon DataZone APIs的自定义可视化转换推送到Amazon DataZone。

数据管道中的自定义可视化转换使Python代码的复杂逻辑可重用,数据工程师可以将此模块封装在他们自己的数据管道中,以发布数据质量结果。该转换可以独立于源数据进行分析。

每个业务单元可以通过保持在特定领域内定义和应用自己的数据质量规则的完全自主权来使用此解决方案。这些规则维护其数据的准确性和完整性。预构建的自定义转换充当这些业务单元的核心组件,帮助他们在特定领域的数据管道中重用该模块,从而简化集成。为了通过自定义可视化转换发布领域特定的数据质量结果,每个业务单元只需重用代码库,并配置Amazon DataZone域、需要假设的角色以及数据质量结果需要发布的表和架构名称等参数。

在接下来的部分中,我们将逐步讲解如何将AWS Glue数据质量得分和结果发布到Amazon DataZone中的Redshift表。

前提条件

为便于跟随,您应具备以下条件:

AWS账户 在继续之前,您必须拥有一个有效的AWS账户。如果没有,详见如何创建和激活新的AWS账户?Redshift集群 可以按照创建示例Amazon Redshift集群的说明创建一个预置集群,或者按照开始使用Amazon Redshift Serverless数据仓库的说明预置一个Amazon Redshift Serverless工作组。Amazon DataZone资源 您需要一个Amazon DataZone域,一个Amazon DataZone项目,以及一个新的Amazon DataZone环境具有DataWarehouseProfile。有关说明,请参考使用Amazon Redshift的Amazon DataZone快速入门。IAM角色 如果您希望在自己的环境中进行模拟,并且您的Amazon DataZone域具有相关的附加生产者账户,请确保您在Amazon DataZone域账户中拥有具有Amazon DataZone写入权限的AWS身份与访问管理IAM角色,您的AWS Glue角色可以假设该角色。AWS Glue连接到您的Redshift集群 有关如何创建此连接的说明,请参阅从AWS Glue Studio可视化编辑器探索Amazon Redshift的新ETL和ELT功能。

该解决方案使用自定义可视化转换来发布来自AWS Glue Studio的数据质量得分。有关详细信息,请查阅为AWS Glue Studio创建自己的可重用可视化转换。

自定义可视化转换使您能够定义、重用和共享特定于业务的ETL逻辑与团队。每个业务单元可以应用与其领域相关的数据质量检查,并重用自定义可视化转换将数据质量结果推送到Amazon DataZone,并将数据质量指标与其数据资产集成。这消除了在不同代码基础中编写类似逻辑可能导致的不一致性风险,并帮助实现更快的开发周期和更高的效率。

为了使自定义转换工作,您需要将两个文件上传到Amazon简单存储服务Amazon S3存储桶中,该存储桶与您打算运行AWS Glue的AWS账户相同。下载以下文件:

postdqresultstodatazonepy 表示转换函数并包含实现逻辑postdqresultstodatazonejson 表示定义转换所需的配置文件

将下载的文件复制到您的AWS Glue资产S3桶中的transforms文件夹即s3//awsglueassets lt账户IDgtlt区域gt/transforms。默认情况下,AWS Glue Studio将从同一S3桶的transforms文件夹读取所有JSON文件。

在接下来的部分中,我们将逐步指导您如何使用AWS Glue Studio构建一个数据质量验证的ETL管道。

加速器免费版下载安装

创建一个新的AWS Glue可视化ETL作业

您可以使用AWS Glue for Spark从Redshift数据库的表中读取和写入数据。AWS Glue对Amazon Redshift提供了内置支持。在AWS Glue控制台中,选择创建和编辑ETL作业以创建一个新的可视化ETL作业。

建立与Amazon Redshift的连接

在作业面板中,选择Amazon Redshift作为数据源。对于Redshift连接,选择先前创建的连接,并指定需要应用数据质量检查的相关架构和表。

应用数据质量规则和验证检查

下一步是将评估数据质量节点添加到您的可视化作业编辑器。此节点允许您定义和应用与您的数据相关的领域特定数据质量规则。在定义完规则后,您可以选择输出数据质量结果。规则的结果可以存储在Amazon S3位置。您还可以选择将数据质量结果发布到Amazon CloudWatch并基于阈值设置警报通知。

预览数据质量结果

选择数据质量结果会自动添加新的节点ruleOutcomes。以下截图展示了ruleOutcomes节点的数据质量结果预览。该节点输出数据质量结果,包括每个规则的结果及其失败原因。

将数据质量结果发布到Amazon DataZone

ruleOutcomes节点的输出将传递给自定义可视化转换。两者文件上传后,AWS Glue Studio可视化编辑器会自动列出在postdqresultstodatazonejson中提到的转换在此情况下,为Datazone DQ Result Sink以及其他转换。此外,AWS Glue Studio会解析JSON定义文件,显示转换的元数据,例如名称、描述和参数列表。在此情况下,它列出了需要假设的角色、Amazon DataZone域的域ID,以及数据资产的表和架构名称等参数。

填写参数:

角色假定是可选的,可以留空;仅当您的AWS Glue作业在相关账户中运行时需要它。域ID可以通过在Amazon DataZone门户中选择用户资料名称找到。表名和架构名称与创建Redshift源转换时使用的名称相同。数据质量规则集名称是您希望在Amazon DataZone中给规则集指定的名称;可以为同一个表创建多个规则集。最大结果是您希望脚本返回的Amazon DataZone资产的最大数量,如果同一表和架构名称有多个匹配项。

编辑作业详细信息,并在作业参数中添加以下关键值对,以导入包含最新Amazon DataZone APIs的正确版本Boto3:

additionalpythonmodules

boto3gt=134105

最后,保存并运行作业。

关于在Amazon DataZone插入数据质量值的实现逻辑,请参阅Amazon DataZone现在与AWS Glue Data Quality和外部数据质量解决方案集成。在postdqresultstodatazonepy脚本中,我们仅调整了代码以提取AWS Glue评估数据质量转换结果的元数据,并添加方法以根据表信息查找正确的DataZone资产。如果您有兴趣,可以查看脚本中的代码。

在AWS Glue ETL作业运行完成后,您可以导航到Amazon DataZone控制台,并确认相关资产页面上现在显示了数据质量信息。

结论

在本文中,我们展示了如何利用AWS Glue Data Quality和Amazon DataZone对Amazon Redshift数据资产实施全面的数据质量监控。通过整合这两个服务,您可以为数据消费者提供有价值的数据质量和可靠性见解,从而增强信任并在整个组织内实现自助服务数据发现和更明智的决策。

如果您希望提升Amazon Redshift环境的数据质量并改善数据驱动的决策,我们鼓励您探索AWS Glue Data Quality与Amazon DataZone的集成,以及Amazon DataZone中新预览的OpenLineage兼容数据血缘可视化功能。有关更多信息和详细的实施指南,请参阅以下资源:

在 Amazon Redshift 数据资产上实施数据质量检查并与 Amazon DataZone Amazon DataZone现在与AWS Glue Data Quality和外部数据质量解决方案集成从AWS Glue数据目录入门AWS Glue数据质量Amazon DataZone介绍OpenLineage兼容的数据血缘可视化预览使用Amazon Redshift开始使用Amazon DataZone在Amazon DataZone中介绍数据血缘预览

关于作者

Fabrizio Napolitano 是数据库和分析领域的首席专家解决方案架构师。他在分析领域工作了20年,最近因搬到加拿大而意外成为一名冰球爸爸。

Lakshmi Nair 是AWS的高级分析专家解决方案架构师。她专注于跨行业设计先进的分析系统,致力于构建基于云的数据平台,实现实时流处理、大数据处理和稳健的数据治理。

![Varsha Velagapudi](https//d2908q01vomqb2cloudfrontnet/b6692ea5df920cad691c20319a6fffd7a4a766b8/2024/08/09