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

此条目是否有帮助?