OpenLineage Airflow 集成

OpenLineage 是一个用于数据血缘收集和分析的开源框架。它的核心是一个可扩展的规范,系统可以使用它来与血缘元数据进行互操作。 查看 OpenLineage 文档

快速入门

要使用 OpenLineage 检测您的 Airflow 实例,请参阅 使用 OpenLineage 集成

要为 Airflow 操作符实现 OpenLineage 支持,请参阅 在操作符中实现 OpenLineage

对我有什么好处?

收集的元数据可以回答以下问题

  • 为什么特定的数据转换失败了?

  • 哪些上游源正在馈送到某个数据集?

  • 哪些下游进程依赖于这个特定的数据集?

  • 我的数据是最新的吗?

  • 我能识别数据处理管道中的瓶颈吗?

  • 最新的代码更改如何影响数据处理时间?

  • 如何追踪报告中数据不准确的原因?

  • 如何通过数据生命周期管理数据隐私和合规性要求?

  • 是否存在可以优化或删除的冗余数据处理?

  • 此关键报告存在哪些数据依赖关系?

理解复杂的 DAG 间依赖关系并提供最新的 DAG 执行运行时可见性可能具有挑战性。OpenLineage 与 Airflow 集成以收集 DAG 血缘元数据,以便轻松维护 DAG 间依赖关系并通过血缘图查看,同时还保留 DAG 历史运行的目录。

对于将接收事件的 OpenLineage 后端,您可以使用 Marquez

它在后台如何工作?

OpenLineage 集成实现了 AirflowPlugin。这允许在 Airflow 启动时发现它并注册 Airflow 监听器

然后,当某些事件发生时(例如 DAG 或 TaskInstance 启动、完成或失败),Airflow 会调用 OpenLineageListener。对于 DAG,监听器在 Airflow Scheduler 中运行。对于 TaskInstance,监听器在 Airflow Worker 上运行。

当 TaskInstance 监听器方法被调用时,OpenLineageListener 会构造元数据,例如事件的唯一 run_id 和事件时间。然后,它会尝试从 Airflow 操作符中提取元数据,如 提取优先级 中所述。

此条目有帮助吗?