OpenLineage Airflow 集成¶
OpenLineage 是一个用于数据沿袭收集和分析的开放框架。它的核心是一个可扩展的规范,系统可以使用它来与沿袭元数据进行互操作。 查看 OpenLineage 文档。
快速入门¶
要使用 OpenLineage 工具化你的 Airflow 实例,请参阅 使用 OpenLineage 集成。
要为 Airflow 运算符实现 OpenLineage 支持,请参阅 在运算符中实现 OpenLineage。
它对我有什么用?¶
收集的元数据可以回答以下问题:
为什么特定的数据转换失败?
哪些上游源正在馈送到特定数据集?
哪些下游流程依赖于此特定数据集?
我的数据是否新鲜?
我能否识别出数据处理管道中的瓶颈?
最新的代码更改如何影响数据处理时间?
我如何追踪报告中数据不准确的原因?
在数据的整个生命周期中,如何管理数据隐私和合规性要求?
是否存在可以优化或删除的冗余数据处理流程?
此关键报告存在哪些数据依赖项?
理解复杂的 DAG 间依赖关系并提供 DAG 执行的最新运行时可见性可能具有挑战性。 OpenLineage 与 Airflow 集成以收集 DAG 沿袭元数据,以便可以通过沿袭图轻松维护和查看 DAG 间依赖关系,同时保留 DAG 历史运行的目录。
对于将接收事件的 OpenLineage 后端,你可以使用 Marquez
它在幕后如何工作?¶
OpenLineage 集成实现了 AirflowPlugin。这使其可以在 Airflow 启动时被发现并注册 Airflow 监听器。
然后,当某些事件发生时,OpenLineageListener
会被 Airflow 调用 - 当 DAG 或 TaskInstance 开始、完成或失败时。 对于 DAG,监听器在 Airflow 调度器中运行。 对于 TaskInstance,监听器在 Airflow 工作器上运行。
当调用 TaskInstance 监听器方法时,OpenLineageListener
会构建元数据,例如事件的唯一 run_id
和事件时间。 然后,它尝试从 Airflow 运算符中提取元数据,如 提取优先级 中所述。