测量 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 成本探索 控制台中,选择导航窗格中的 成本探索保存报告。选择 创建新报告。
选择 成本和使用情况 作为报告类型。
选择 创建报告。
在 日期范围 中输入一个范围。
在 粒度 中选择 每日。
在 维度 中选择 标签,然后选择 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技术来提升提示词,能有效提高生成图像的质量和相关性。通过语义检索和优化生成有助于用户快速找...