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