发布于: Oct 14, 2022

创建全自动ETL管道的需求越来越大。如今,海量数据从四面八方纷涌而来,比如来自 IoT 传感器、应用程序日志和点击流等资源的非结构化数据,以及来自事务处理应用程序、关系数据库和电子表格的结构化数据。数据已成为每家企业的重要组成部分。为了快速获取数据中的价值,保持单一事实来源(single source of truth),并且自动执行从数据提取到转换和分析的整个 pipeline 的需求应运而生。
随着数据的体量、处理速度和种类的增加,人们越来越关注数据分析的复杂性。数据要经过一些步骤的处理才能变为可供企业用户使用的状态,而这些步骤的数量和复杂性对于企业来说是一种担忧。数据工程团队的大部分时间常常用来构建和优化“提取、转换和加载”(ETL) 管道。自动执行整个流程能缩短实现价值的时间和降低运营成本。在这篇博文中,我们将介绍如何创建全自动的数据编目和 ETL 管道来转换数据。

在这篇博文中,您将了解到如何构建和自动化以下架构。

您通过将 Amazon Simple Storage Service (Amazon S3) 用作主数据存储来构建无服务器数据湖。考虑到 Amazon S3 的可扩展性与高可用性,它最适合作为数据的单一事实来源。
您可以使用不同的方法在 Amazon S3 中提取和存储数据。例如,您可以使用 Amazon Kinesis Data Firehose 提取流数据,可以使用 Amazon Web Services Database Migration Service (Amazon Web Services DMS) 从现有数据库中提取关系数据,还可以使用 Amazon Web Services DataSync 从本地网络文件系统 (NFS) 中提取文件。
提取的数据放在我们称为原始区的 Amazon S3 存储桶中。要使该数据可用,您必须在 Amazon Web Services Glue 数据目录中为该数据的架构进行编目。要执行此操作,您可以使用由 Amazon S3 触发器调用的 Amazon Web Services Lambda 函数,来启动对该数据进行编目的 Amazon Web Services Glue 爬网程序。在该爬网程序完成表定义的创建后,您要使用 Amazon CloudWatch Events 规则调用第二个 Lambda 函数。此步骤会启动 Amazon Web Services Glue ETL 作业来处理数据,并将数据输出到我们称为已处理区的另一个 Amazon S3 存储桶中。
Amazon Web Services Glue ETL 作业将数据转换为 Apache Parquet 格式,然后将其存储在已处理的 S3 存储桶中。您可以修改 ETL 作业以实现其他目的,例如数据的更精细分区、压缩或扩充。监视和通知是自动化流程的重要组成部分。因此,在 ETL 作业完成时,另一条 CloudWatch 规则会立即使用 Amazon Simple Notification Service (Amazon SNS) 主题向您发送电子邮件通知。此通知指出您的数据已成功处理。
总的来说,此管道将数据进行分类和转换,并在完成时向您发送电子邮件通知。

相关文章