共用方式為


Databricks 上的協調流程概觀

Azure Databricks 提供 協調 數據處理工作負載的內建體驗,讓您可以在較大的工作流程中協調及執行多個工作。 您可以簡化、優化及排程執行頻繁、可重複的工作,以便輕鬆管理複雜的工作流程。

本文介紹使用 Databricks 作業管理生產工作負載的相關概念和選擇。

什麼是工作?

在 Databricks 中,作業用來在 工作流程中排定並統籌 Databricks 的任務。 常見的數據處理工作流程包括 ETL 工作流程、執行筆記本和機器學習服務 (ML) 工作流程,以及與 dbt 和 Azure Data Factory (ADF) 等外部系統整合。

作業由一或多個任務組成,並支援使用可視化撰寫 UI 的自訂控制流程邏輯,例如分支(if / else 語句)或循環處理(對每個語句)。 工作可以在 ETL 工作流程中載入或轉換數據,或在機器學習管線中以受控且可重複的方式建置、定型和部署 ML 模型。

範例:每日數據處理和驗證作業

下列範例顯示 Azure Databricks 中的作業。

Azure Databricks 介面中顯示的排程作業範例,其中包含 4 個工作和每天執行的觸發機制。

此範例作業具有下列特性:

  1. 第一個任務會擷取營收數據。
  2. 第二個任務是使用 if / else 結構來檢查是否為空。
  3. 如果沒有,則會執行轉換工作。
  4. 否則,它會執行具有資料品質驗證的筆記本任務。
  5. 排定於每天上午 11:29 執行。

要快速了解如何建立自己的任務,請參閱 使用 Azure Databricks 作業建立第一個工作流程

一般使用案例

從基礎數據工程原則到進階機器學習和無縫工具整合,這些常見使用案例展示了推動現代化分析、工作流程自動化和基礎結構延展性的功能廣度。

編排概念

在 Azure Databricks 中使用協調流程時,有三個主要概念:作業、工作和觸發程式。

工作 - 工作是協調、排程和執行操作的主要資源。 作業的複雜度可能會有所不同,可以從執行 Azure Databricks 筆記本的單一任務,直到處理具有條件邏輯和依賴關係的數百個任務。 作業中的工作會以視覺方式表示為有向無循環圖(DAG)。 您可以指定工作的屬性,包括:

  • 觸發程式 - 這會定義執行作業的時機。
  • 參數 - 自動傳遞至作業中的任務的執行時參數。
  • 通知 - 當作業失敗或耗時過長時,要發送的電子郵件或網路鉤子。
  • Git - 作業工作的原始檔控制設定。

任務 - 任務是工作中的特定單位。 每項工作都可以執行各種作業,包括:

  • 某個筆記本任務會執行 Databricks 筆記本。 您可以指定筆記本的路徑,以及它所需的任何參數。
  • 管道任務會執行管線。 您可以指定現有的 DLT 管線,例如具體化檢視或串流數據表。
  • Python 腳本工作會執行 Python 檔案。 您可以提供檔案的路徑和任何必要參數。

有許多類型的工作。 如需完整清單,請參閱 的工作類型。 工作可以與其他工作有相依性,並有條件地執行其他工作,讓您能夠建立具有條件式邏輯和相依性的複雜工作流程。

觸發程式 - 觸發程式是根據特定條件或事件起始執行作業的機制。 觸發程式可以是時間型的,例如在排程時間執行作業(例如,上午 2 點前一天),或以事件為基礎,例如在新的數據抵達雲端記憶體時執行作業。

監視和可觀察性

工作具備監控和可觀察性的內建支援。 下列主題提供此支援的概觀。 如需監視作業和協調流程的詳細資訊,請參閱 Databricks 作業的監視和可檢視性

UI 中的作業監視和可檢視性 - 在 Azure Databricks UI 中,您可以檢視作業,包括作業擁有者和上次執行結果等詳細數據,以及依作業屬性進行篩選。 您可以檢視作業執行的歷程記錄,並取得作業中每項工作的詳細資訊。

作業執行狀態和計量 - Databricks 報告作業執行成功,以及作業執行中每項工作的記錄和計量,以診斷問題並瞭解效能。

通知和警示 - 您可以透過電子郵件、Slack、自定義 Webhook 和其他選項設定作業事件的通知。

透過系統數據表 自定義查詢 - Azure Databricks 提供記錄作業執行和跨帳戶工作的系統數據表。 您可以使用這些資料表來查詢和分析作業效能和成本。 您可以建立儀錶板來可視化作業計量和趨勢,以協助監視工作流程的健康情況和效能。

限制

存在下列限制:

  • 工作區受限於 2000 個同時任務執行。 429 Too Many Requests 回應會在您要求無法立即啟動的執行時傳回。
  • 工作區在一小時內可以建立的作業數目限制為 10000 (包括「執行提交」)。 這項限制也會影響 REST API 和筆記本工作流程所建立的作業。
  • 工作區最多可包含 12000 個已儲存的任務。
  • 作業最多可以包含 100 個工作。

我能否以程序設計方式管理工作流程?

Databricks 有工具和 API,讓您能以程序設計方式排程及協調工作流程,包括下列各項:

如需使用工具和 API 建立和管理作業的範例,請參閱 自動化作業建立和管理。 如需所有可用開發人員工具的文件,請參閱 本機開發工具

外部工具會使用 Databricks 工具和 API,以程式設計方式排程工作流程。 您可以使用 Azure Data Factory 或 Apache AirFlow 等工具來排程作業。

使用 Apache AirFlow 的工作流程調度

您可以使用 Apache Airflow 來管理及排程資料工作流程。 使用 Airflow 時,您可在 Python 檔案中定義工作流程,而 Airflow 會管理排程和執行工作流程。 請參閱使用 Apache Airflow 協調 Azure Databricks 作業

與 Azure Data Factory 的工作流程協調

Azure Data Factory (ADF) 是雲端資料整合服務,將資料儲存、移動及處理服務組合成自動化資料管線。 您可以使用 ADF 來協調 Azure Databricks 作業,作為 ADF 管線的一部分。

ADF 也有內建支援,可在 ADF 管線中執行 Databricks 筆記本、Python 指令碼或包裝在 JAR 中的程式碼。

若要了解如何在 ADF 管線中執行 Databricks 筆記本,請參閱在 Azure Data Factory 中使用 Databricks 筆記本活動執行 Databricks 筆記本,然後執行 Databricks 筆記本來轉換資料

若要了解如何在 ADF 管線中執行 Python 指令碼,請參閱在 Azure Databricks 中執行 Python 活動來轉換資料。

若要了解如何在 ADF 管線中執行在 JAR 中封裝的程式碼,請參閱在 Azure Databricks 中執行 JAR 活動來轉換資料