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 中所述。

本條目是否有幫助?