OpenLineage Airflow 整合¶
OpenLineage 是一個開放框架,用於資料沿襲收集和分析。其核心是一個可擴展的規範,系統可以使用它來與沿襲元數據互操作。 查看 OpenLineage 文件。
快速入門¶
若要使用 OpenLineage 儀器化您的 Airflow 實例,請參閱 使用 OpenLineage 整合。
若要為 Airflow 運算子實作 OpenLineage 支援,請參閱 在運算子中實作 OpenLineage。
這對我有什麼好處?¶
收集的元數據可以回答如下問題:
為什麼特定的資料轉換失敗?
哪些上游來源饋入特定資料集?
哪些下游流程依賴於這個特定的資料集?
我的資料是否新鮮?
我可以識別資料處理管道中的瓶頸嗎?
最新的程式碼變更如何影響資料處理時間?
我該如何追蹤報告中資料不準確的原因?
資料隱私和合規性要求如何在資料的生命週期中被管理?
是否有可以優化或移除的冗餘資料流程?
這個關鍵報告存在哪些資料依賴性?
理解複雜的跨 DAG 依賴性並提供 DAG 執行的最新運行時可見性可能具有挑戰性。 OpenLineage 與 Airflow 整合以收集 DAG 沿襲元數據,以便跨 DAG 依賴性易於維護,並可通過沿襲圖查看,同時也保留 DAG 歷史運行的目錄。
對於將接收事件的 OpenLineage 後端,您可以使用 Marquez
底層運作原理?¶
OpenLineage 整合實作 AirflowPlugin。這使其能夠在 Airflow 啟動時被發現並註冊 Airflow Listener。
OpenLineageListener
然後在特定事件發生時被 Airflow 呼叫 - 當 DAG 或 TaskInstance 開始、完成或失敗時。對於 DAG,監聽器在 Airflow Scheduler 中運行。對於 TaskInstance,監聽器在 Airflow Worker 上運行。
當 TaskInstance 監聽器方法被呼叫時,OpenLineageListener
建構元數據,例如事件的唯一 run_id
和事件時間。然後,它嘗試從 Airflow 運算子中提取元數據,如 提取優先順序 中所述。