共用方式為


使用自動調整功能來最佳化 Lakeflow Spark 宣告式管線的叢集使用率

本文討論如何使用增強的自動調整來優化 Azure Databricks 上的管線。

所有新的管線在預設狀態下會啟用進階的自動調整。 無伺服器化管線也會使用垂直自動擴展。 請參閱 什麼是垂直自動調整?

對於無伺服器化管線,增強型自動擴展一律為開啟且無法停用。 請參閱 設定無伺服器管線

什麼是增強型自動調整?

Databricks 增強的自動調整功能根據工作負載量自動配置叢集資源,最佳化叢集資源利用,並將對於管線數據處理延遲的影響降至最低。

增強型自動調整可改善 Azure Databricks 叢集自動調整功能, 具有下列功能:

  • 增強的自動調整會實作串流工作負載的優化,並新增增強功能來改善批次工作負載的效能。 隨著工作負載變更,增強的自動調整可藉由新增或移除計算機來優化成本。
  • 增強的自動調整會主動關閉使用量過低的節點,同時保證關機期間沒有失敗的工作。 現有的叢集自動調整功能只有在節點閑置時才會縮減節點數量。

增強型自動調整是您在管線 UI 中建立新管線時的預設自動調整模式。 您可以編輯 UI 中的管線設定,以啟用現有管線的增強式自動調整。 您也可以在使用 管線 REST API 建立或編輯管線時啟用增強型自動調整功能。

增強型自動調整會使用哪些指標來做出擴展或縮減決策?

增強型自動縮放使用兩個指標來決定擴展或縮減:

  • 任務位置利用率:這是叢集中忙碌任務位置數量 與可用工作位置總數的平均比率
  • 工作佇列大小:這是等候在工作位置中執行的工作數目。

啟用增強型自動調整以優化管線

增強型自動調整是您在管線 UI 中建立新管線時的預設自動調整模式。 您可以編輯 UI 中的管線設定,以啟用現有管線的增強式自動調整。 您也可以在使用 Lakeflow 管線編輯器編輯管線時啟用增強型自動調整。

若要使用強化自動擴展,請執行下列其中一項操作:

  • 在 Lakeflow 管線編輯器中編輯管線設定時,將 叢集模式 設定為 增強型自動調整
  • autoscale 設定新增至管線叢集組態,並將 [mode] 欄位設定為 ENHANCED。 請參閱 設定管線的傳統計算

在為生產管線配置高級自動縮放時,請遵循以下指導方針:

  • Min workers 設定保留為預設值。
  • 根據預算和管線優先順序,將 Max workers 設定為值。

下列範例會配置增強式自動調整叢集,至少有5個工作者,最多10個工作者。 max_workers 必須大於或等於 min_workers

備註

  • 增強型自動調整僅適用於 updates 叢集。 傳統自動調整用於 maintenance 叢集。
  • autoscale 組態有兩種模式:
{
  "clusters": [
    {
      "autoscale": {
        "min_workers": 5,
        "max_workers": 10,
        "mode": "ENHANCED"
      }
    }
  ]
}

如果管道配置為連續執行,在自動擴展配置變更之後會自動重新啟動。 重新啟動之後,預期會有短暫的延遲增加。 在這段短暫的延遲增加期間之後,叢集大小應根據您的 autoscale 設定進行更新,而管線延遲應該會回到其先前的延遲特性。

限制使用增強式自動調整之管線的成本

備註

您無法為無伺服器管線配置工作者。

在管線的 計算 窗格中設定 Max workers 參數,可設置自動調整的最大上限。 減少可用的工作人員數量可能會增加某些工作負載的延遲,但可以防止計算資源成本在計算密集型作業期間激增。

Databricks 建議調整 最大工作者 設定,以平衡您特定需求的成本延遲取捨。

[管線] UI 中的 [計算] 窗格,您可以在其中設定自動調整的 [最大工作者]

監視已啟用增強自動調整功能的傳統型管線

您可以使用管線使用者介面中的事件記錄檔來監視傳統管線的增強型自動調整計量。 增強的自動擴展事件具有 autoscale 事件類型。 以下是範例事件:

Event Message
叢集調整大小申請已啟動 Scaling [up or down] to <y> executors from current cluster size of <x>
叢集調整大小要求成功 Achieved cluster size <x> for cluster <cluster-id> with status SUCCEEDED
叢集調整大小要求部分地成功了 Achieved cluster size <x> for cluster <cluster-id> with status PARTIALLY_SUCCEEDED
叢集重設大小要求失敗 Achieved cluster size <x> for cluster <cluster-id> with status FAILED

您也可以直接查詢 事件記錄檔來檢視增強的自動調整事件:

什麼是垂直自動調整?

無伺服器管線透過 Databricks 增強型自動調整提供的水平自動擴展功能,自動配置最符合成本效益的執行個體類型,以執行管線而不會因記憶體不足而失敗。 當需要較大的虛擬機類型來執行管線更新時,垂直自動調整會擴展,並在它判斷更新可以使用較小的虛擬機類型執行時進行縮減。 垂直自動調整決定是否應該增加或減少驅動節點、工作節點,或同時調整驅動和工作節點。

垂直自動擴展適用於所有無伺服器管線,包括用於 Databricks SQL 實體化檢視和串流資料表的管線。

垂直自動調整的運作方式是透過偵測因記憶體不足錯誤而失敗的管線更新來運作。 當偵測到這些失敗時,垂直自動調整會根據從失敗更新收集的記憶體不足數據,配置較大的實例類型。 在生產模式中,會自動啟動使用新計算資源的新更新。 在開發模式中,當您手動啟動新的更新時,會使用新的計算資源。

如果垂直自動調整擴展偵測到已配置實例的記憶體一致使用量過低,它會縮減實例類型規模,以用於下一次管線更新。