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 操作符中提取元数据,如 提取优先级 中所述。