使用Airflow在数据库之间移动和转换数据

Hug*_*ugo 7 airflow

使用气流,我从MySQL数据库中提取数据,用python转换它并将其加载到Redshift集群中.

目前我使用3个气流任务:它们通过在本地磁盘上写入CSV来传递数据.

如果不写入磁盘我怎么能这样做?我应该在python中编写一个大任务吗?(这会降低能见度)

编辑:这是一个关于Airflow的问题,以及选择任务粒度以及如何在它们之间传递数据的最佳实践.这不是关于数据迁移或ETL的一般问题.在这个问题中,ETL仅用作气流任务的工作量的例子.

Dmi*_*ine -4

您可以使用 XCom 在任务之间传递信息。您可以在文档中阅读它,并且默认情况下随 Airflow 安装的示例 DAG 集中还有一个示例。

  • XCom 旨在“控制和共享状态的微妙形式”(引用文档)。我认为它不适合传递数据,因为“用户应确保使用适当大小的对象”。我修改了我的问题以使其更清楚。谢谢德米特里。 (3认同)