Airflow 是编排 ETL/ELT 数据管道的开源标准。

将 Airflow 用于 ETL/ELT 管道

提取-转换-加载(ETL)和提取-加载-转换(ELT)数据管道是 Apache Airflow 最常见的用例。在 2023 年 Apache Airflow 调查中,90% 的受访者正在使用 Airflow 进行 ETL/ELT,以支持分析用例。

以下视频展示了一个简单的 Airflow ETL/ELT 管道,它从 CSV 文件中提取气候数据,从 API 中提取天气数据,运行转换,然后将结果加载到数据库中以支持仪表盘。您可以在此处找到此示例的代码。


为什么要将 Airflow 用于 ETL/ELT 管道?

Airflow 是将 ETL/ELT 管道定义为 Python 代码的事实标准。Airflow 之所以在此用例中广受欢迎,是因为它具有:

  • 工具无关性:Airflow 可用于编排任何数据源或目标端的 ETL/ELT 管道。
  • 可扩展性:有许多 Airflow 模块可用于连接到任何数据源或目标端,您还可以编写自己的自定义 operator 和 hook 以满足特定用例。
  • 动态性:在 Airflow 中,您可以定义动态任务,它们充当占位符,可根据变化的输入在运行时进行调整。
  • 可伸缩性:如果提供足够的计算能力,Airflow 可以扩展以处理无限数量的任务和工作流。

Airflow 用于 ETL/ELT 管道的功能

Airflow 具有多项关键功能,使其成为 ETL/ELT 的绝佳选择

  • 数据集:在 Airflow 中,您可以根据 Airflow 实例中任何其他任务对数据集的更新,以数据驱动的方式调度 DAG。
  • 对象存储:Airflow 对象存储是对Path API 的抽象,它简化了与 Amazon S3、Google Cloud Storage 和 Azure Blob Storage 等对象存储系统的交互。
  • Airflow provider:Airflow provider 通过额外的模块扩展核心 Airflow 功能,以简化与流行数据工具的集成。您可以在此处找到活跃 provider 的列表。