OpenLineage Airflow 集成

OpenLineage 是一个用于数据血缘(Data Lineage)收集和分析的开放框架。其核心是一个可扩展的规范,系统可以利用它来与血缘元数据进行互操作。查阅 OpenLineage 文档

快速入门

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

要为 Airflow Operator 实现 OpenLineage 支持,请参阅在 Operator 中实现 OpenLineage

它能解决什么问题?

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

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

  • 哪些上游源输入到特定的数据集?

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

  • 我的数据是否及时?

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

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

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

  • 数据隐私和合规性要求如何在数据的整个生命周期中得到管理?

  • 是否存在可以优化或移除的冗余数据流程?

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

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

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

内部工作原理?

OpenLineage 集成实现了AirflowPlugin。这使得它可以在 Airflow 启动时被发现并注册Airflow Listener

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

TaskInstance 监听器方法被调用时,OpenLineageListener 会构建元数据,例如事件的唯一 run_id 和事件时间。然后,它会尝试从 Airflow Operator 中提取元数据,如Extraction precedence 中所述。

本条目是否有帮助?