使用Athena和MySQL构建批量数据流水线

使用Athena和MySQL搭建高效批量数据流水线

面向初学者的端到端教程

Photo by Redd F on Unsplash

在这个故事中,我将讲述一种最流行的数据转换任务运行方式——批处理数据处理。当我们需要以块的形式处理数据时,这种数据流水线设计模式非常有用,对于需要调度的ETL工作非常高效。我将通过使用MySQL和Athena构建一个数据转换流水线来演示如何实现。我们将使用基础设施即代码在云中部署。

想象一下,你刚刚加入一家公司作为数据工程师。他们的数据堆栈是现代的、事件驱动的、具有成本效益、灵活且可以轻松扩展以满足你拥有的不断增长的数据资源。外部数据源和数据流水线在你的数据平台上由数据工程团队管理,使用了具有CI/CD GitHub集成的灵活环境设置。

作为数据工程师,你需要创建一个业务智能仪表板,显示公司收入流的地理信息,如下所示。原始付款数据存储在服务器数据库(MySQL)中。你想构建一个批处理流水线,每天从数据库中提取数据,然后使用AWS S3存储数据文件并使用Athena处理。

Revenue dashboard. Image by author.

批处理数据流水线

一个数据流水线可以被看作是一系列的数据处理步骤。由于这些阶段之间存在逻辑数据流连接,每个阶段生成一个输出,作为下一个阶段的输入

只要在A和B之间进行数据处理,就存在一个数据流水线。

由于概念和逻辑的差异,数据流水线可能是不同的。我之前在这里写过关于它的文章[1]:

数据流水线设计模式

选择合适的架构和示例

towardsdatascience.com