测量 AWS Glue 数据质量在 ETL 管道中的表现 大数据博客

AWS Glue 数据质量在 ETL 管道中的性能测量

作者:Ruben Afonso Gonzalo Herreros Kalyan Kumar Neelampudi 于 2024 年 3 月 12 日发布于 分析、AWS Glue、中级、技术操作指南

点评 分享 推特 领英 邮件

关键要点

数据湖已成为主流架构,数据质量验证是提升数据可重用性和一致性的关键因素。AWS Glue 数据质量可以将数据验证的工作量从几天减少到几小时,并提供关于运行数据验证所需资源的计算建议、统计数据和见解。本文展示了不断增加复杂性的 数据质量规则集在预定义测试数据集上的基准结果,包括运行时间、数据处理单位(DPU)的资源使用情况,以及如何通过 AWS 成本探索工具跟踪运行成本。本文是六部分系列文章的第六部分,详细说明 AWS Glue 数据质量的工作原理。

解决方案概述

我们首先定义测试数据集,以探讨 AWS Glue 数据质量如何根据输入数据集自动扩展。

数据集详情

测试数据集包含104列和100万行,存储于 Parquet 格式中。你可以 下载数据集 或使用 GitHub 上的 Python 脚本 本地重新创建。如果选择运行生成脚本,请确保在 Python 环境中安装 Pandas 和 Mimesis 包:

bashpip install pandas mimesis

数据集架构结合了数值、分类和字符串变量,以支持多种内置的 AWS Glue 数据质量 规则类型。其架构仿照金融市场数据中最常见的属性,如证券代码、交易量和价格预测。

数据质量规则集

我们将一些内置的 AWS Glue 数据质量规则类型进行分类,以定义基准结构。这些分类考虑了规则是否执行不需要逐行检查的列检查简单规则、逐行分析中等规则或数据类型检查,最终比较行值与其他数据源复杂规则。以下表格总结了这些规则。

简单规则中等规则复杂规则ColumnCountDistinctValuesCountColumnValuesColumnDataTypeIsCompleteCompletenessColumnExistSumReferentialIntegrityColumnNamesMatchPatternStandardDeviationColumnCorrelationRowCountMeanRowCountMatchColumnLength

我们定义了八个不同的 AWS Glue ETL 作业,在这些作业中运行数据质量规则集。每个作业有不同数量的数据质量规则,并且每个作业也都有关联的 用户定义的成本分配标签,稍后我们将用它在 AWS 成本探索中创建数据质量成本报告。

我们在以下表格中提供了每个规则集的纯文本定义。

作业名称简单规则中等规则复杂规则规则数量标签定义ruleset00000dqjobrs0ruleset10011dqjobrs1链接ruleset53115dqjobrs5链接ruleset1062210dqjobrs10链接ruleset5030101050dqjobrs50链接ruleset100503020100dqjobrs100链接ruleset2001006040200dqjobrs200链接ruleset40020012080400dqjobrs400链接

创建包含数据质量规则集的 AWS Glue ETL 作业

我们将 测试数据集 上传到 Amazon Simple Storage Service (Amazon S3),并且还上传两个附加的 CSV 文件,用于评估 AWS Glue 数据质量中的引用完整性规则isocodescsv 和 exchangescsv,在将它们添加至 AWS Glue 数据目录后。请按以下步骤操作:

在 Amazon S3 控制台中,创建一个新的 S3 存储桶并上传 测试数据集。在 S3 存储桶中创建一个名为 isocodes 的文件夹,并上传 isocodescsv 文件。在 S3 存储桶中再创建一个名为 exchange 的文件夹,并上传 exchangescsv 文件。在 AWS Glue 控制台中,运行两个 AWS Glue 爬虫,每个爬虫分别注册 CSV 内容到 AWS Glue 数据目录 (dataqualitycatalog)。有关说明,请参阅 添加 AWS Glue 爬虫。

AWS Glue 爬虫作为 AWS Glue 数据目录的一部分,生成了两个表exchanges 和 isocodes。

现在我们将创建一个 AWS 身份与访问管理 角色,该角色在运行时将被 ETL 作业使用:

在 IAM 控制台中,创建一个名为 AWSGlueDataQualityPerformanceRole 的新的 IAM 角色。对于 受信实体类型,选择 AWS 服务。对于 服务或用例,选择 Glue。

选择 下一步。

对于 权限策略,输入 AWSGlueServiceRole。

选择 下一步。

创建并附加一个新的内联策略AWSGlueDataQualityBucketPolicy,内容如下。替换占位符为你之前创建的 S3 存储桶名称:

json{ Version 20121017 Statement [ { Effect Allow Action s3GetObject Resource [ arnawss3ltyourAmazonS3bucketnamegt/ ] } ]}

接下来,我们创建其中一个 AWS Glue ETL 作业,ruleset5。

在 AWS Glue 控制台中,在导航窗格中的 ETL 作业 下,选择 视觉 ETL。

在 创建作业 部分,选择 视觉 ETL。

在视觉编辑器中,添加一个 数据源 S3 存储桶 源节点:

对于 S3 URL,输入包含测试数据集的 S3 文件夹。对于 数据格式,选择 Parquet。

创建一个新的操作节点,转换:评估数据目录:

对于 节点父级,选择你创建的节点。

在 规则集编辑器 中添加 ruleset5 定义。

滚动到底部,在 性能配置 下启用 缓存数据。

在 作业详细信息 中,选择 IAM 角色为 AWSGlueDataQualityPerformanceRole。

在 标签 部分,定义 dqjob 标签为 rs5。

这个标签在每个数据质量 ETL 作业中将不同;我们在 AWS 成本探索中用它们来查看 ETL 作业的成本。

选择 保存。对其他规则集重复此步骤以定义所有 ETL 作业。

运行 AWS Glue ETL 作业

完成以下步骤以运行 ETL 作业:

在 AWS Glue 控制台中,在导航窗格的 ETL 作业 下选择 视觉 ETL。选择 ETL 作业并选择 运行作业。对全部 ETL 作业重复操作。

完成 ETL 作业后,作业运行监控 页面将显示作业详细信息。如以下截图所示,每个 ETL 作业都有 DPU 小时 列。

性能评估

以下表格总结了在相同测试数据集上运行八个不同数据质量规则集的持续时间、DPU 小时和估算成本。请注意,所有规则集均以之前描述的整个测试数据集104 列,100 万行运行。

ETL 作业名称规则数量标签持续时间秒DPU 小时DPUs成本ruleset400400dqjobrs400445712410054ruleset200200dqjobrs200235706510029ruleset100100dqjobrs100186505210023ruleset5050dqjobrs50155204310019ruleset1010dqjobrs10152204210018ruleset55dqjobrs5150304210018ruleset11dqjobrs1150104210018ruleset00dqjobrs053201510006

评估一个空规则集的成本几乎为零,但它已被包含在内,因为可以作为快速测试,以验证与 AWS Glue 数据质量作业相关联的 IAM 角色和对 Amazon S3 中测试数据集的读取权限。数据质量作业的成本在评估规则集超过100条规则后开始增加,在此数字以下则保持不变。

可以观察到,在基准测试中运行的数据质量规则集中,最大的规则集400条规则的成本仍然略高于050美元。

AWS 成本探索中的数据质量成本分析

为了在 AWS 成本探索中查看数据质量 ETL 作业标签,首先需要 激活用户定义的成本分配标签。

在创建并应用用户定义的标签到你的资源后,标签键可能需要长达24小时才会出现在成本分配标签页面上以供激活。激活也可能需要最长24小时。

在 AWS 成本探索 控制台中,选择导航窗格中的 成本探索保存报告。

选择 创建新报告。

选择 成本和使用情况 作为报告类型。

选择 创建报告。

在 日期范围 中输入一个范围。

测量 AWS Glue 数据质量在 ETL 管道中的表现 大数据博客在 粒度 中选择 每日。

在 维度 中选择 标签,然后选择 dqjob 标签。

在 应用的筛选器 中,选择 dqjob 标签和用于数据质量规则集的八个标签rs0、rs1、rs5、rs10、rs50、rs100、rs200、和 rs400。

选择 应用。

成本和使用情况报告将会更新。 X 轴显示数据质量规则集标签的类别。AWS 成本探索中的 成本和使用情况 图表将刷新并显示最近运行的数据质量 ETL 作业的每月总成本,按 ETL 作业聚合。

清理工作

要清理基础设施并避免额外费用,请完成以下步骤:

猎豹每天免费1小时加速清空最初创建用于存储测试数据集的 S3 存储桶。删除你在 AWS Glue 中创建的 ETL 作业。删除 AWSGlueDataQualityPerformanceRole IAM 角色。删除在 AWS 成本探索中创建的自定义报告。

结论

AWS Glue 数据质量为 ETL 管道中的数据质量验证提供了一种高效的方法,并能够自动扩展以适应数据量的增加。内置的数据质量规则类型提供了多种选项,以自定义数据质量检查,并专注于你的数据应该如何呈现,而不是实施无差别的逻辑。

在本基准分析中,我们展示了 AWS Glue 数据质量规则集的常规模型几乎没有额外开销,而在复杂情况下,成本呈线性增加。我们还回顾了如何标记 AWS Glue 数据质量作业,以便在 AWS 成本探索中可以快速获取成本信息。

AWS Glue 数据质量已在所有 AWS Glue 可用的 AWS 区域 正式发布。如需了解更多 AWS Glue 数据

提升您的稳定扩散提示,使用检索增强生成 机器学习博客

提升您的稳定扩散提示,使用检索增强生成 机器学习博客

提升你的 Stable Diffusion 提示词效果:检索增强生成技术关键要点文本到图像生成是快速发展的领域,涵盖多种应用。Stable Diffusion 模型可以快速生成高质量图像。使用检索增强生成RAG技术来提升提示词,能有效提高生成图像的质量和相关性。通过语义检索和优化生成有助于用户快速找...

搜索

vps加速器下载

猎豹加速官网,成立于1997年,是一家位于浙江省嵊州市的高科技金融支付公司。自成立以来,公司专注于提供安全、快捷、创新的电子支付解决方案,致力于通过科技创新推动金融服务的变革和升级。猎豹加速官网已经成为中国支付行业的领头羊之一,服务覆盖全国数千万个客户,包括个人用户、企业以及政府机构。

公司的主要业务涵盖了互联网支付、移动支付、跨境电子支付等多个领域。猎豹加速官网采用先进的技术平台和严格的安全标准,为用户提供一站式支付解决方案,有效地支持了各种商业活动的数字化转型。此外,金链支付也在不断开拓创新,例如推出基于区块链技术的支付系统,以及与大数据、人工智能等前沿技术的深度融合,进一步提升支付安全性和效率。

随着全球数字经济的快速发展,猎豹加速官网也积极拓展国际市场,已经和多个国家和地区的金融机构建立了合作关系,使得金链支付的服务能够跨越国界,满足更多用户的跨境支付需求。公司不仅仅是支付技术的提供者,更是全球支付行业创新的引领者。

为了更好地履行企业社会责任,猎豹加速官网还积极参与多种公益活动,致力于通过企业力量改善社会福利,并推动可持续发展。公司设立了专门的社会责任部门,负责规划和执行各类社会贡献项目,如教育支持、环境保护和扶贫等。

总部位于风景秀丽的嵊州市,猎豹加速官网在这里不仅享受到了优越的地理和政策优势,同时也贡献了大量的就业机会,推动了地方经济的发展。公司注重团队建设和员工福利,提供了优厚的薪资福利和持续的职业发展机会,吸引了大量优秀人才的加盟。

展望未来,猎豹加速官网将继续坚持“安全、快捷、创新”的经营理念,不断探索和实践新的支付技术,进一步扩大服务范围,为全球用户提供更多样化、便捷化的支付服务,推动全球支付行业的持续健康发展。