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 運算子中提取元數據,如 提取優先順序 中所述。

這篇文章對您有幫助嗎?