共用方式為


設定 DLT 管線的計算

本文包含設定 DLT 管線自定義計算設定時的指示和考慮。

無伺服器管線不提供計算組態選項。 請參閱 設定無伺服器 DLT 管線

選取叢集原則

用戶必須具有部署計算以設定及更新 DLT 管線的許可權。 工作區管理員可以設定叢集原則,讓用戶能夠存取 DLT 的計算資源。 請參閱 定義 DLT 流水線運算的限制。

注意

  • 叢集原則是選擇性的。 如果您缺少 DLT 所需的計算許可權,請洽詢您的工作區管理員。

  • 若要確保正確套用叢集原則預設值,請將 apply_policy_default_values 設定為管線組態中 叢集組態中的 true

    {
      "clusters": [
        {
          "label": "default",
          "policy_id": "<policy-id>",
          "apply_policy_default_values": true
        }
      ]
    }
    

設定叢集標籤

您可以使用 叢集標籤 來監視管線叢集的使用狀況。 當您建立或編輯管線或編輯管線叢集的 JSON 設定時,請在 DLT UI 中新增叢集卷標。

選擇要執行管線的實例類型

根據預設,DLT 會選擇您的管道驅動節點和工作節點的實例類型。 您可以選擇性地設定實體類型。

例如,選取實例類型以改善管線效能,或在執行管線時解決記憶體問題。 當您 使用 REST API 或在 DLT UI 中建立編輯管線 時,您可以設定實例類型。

若要在 DLT UI 中建立或編輯管線時設定實例類型:

  1. 按一下 [設定] 按鈕。
  2. 在管線設定的 [進階] 區段中,於 [工作節點類型] 和 [驅動類型] 下拉選單中,選擇管線的實例類型。

進階計算組態

注意

由於計算資源由系統全權管理以支援無伺服器 DLT 管線,因此當您選擇 的無伺服器 管線時,計算設定將無法使用。

每個 DLT 管線都有兩個相關聯的叢集:

  • updates 叢集會處理管道更新。
  • maintenance 叢集會執行每日維護工作。

使用工作區管線組態 UI 指定的計算設定會同時套用至更新和維護叢集。 您必須編輯 JSON 組態,才能獨立修改這些設定。

這些叢集使用的組態是由管線設定中指定的 clusters 屬性所決定。

使用叢集標籤,您可以新增僅適用於特定叢集類型的計算設定。 設定管線叢集時,您可以使用三個標籤:

注意

如果您只定義一個叢集組態,則可以省略叢集卷標設定。 如果未提供標籤的設定,則 default 標籤會套用至叢集組態。 只有在您需要自定義不同叢集類型的設定時,才需要叢集卷標設定。

  • default 標籤會定義 updatesmaintenance 叢集的計算設定。 將相同的設定套用至這兩個叢集可藉由確保儲存位置的數據存取認證等必要組態套用至維護叢集,以改善維護執行的可靠性。
  • maintenance 標籤會定義僅適用於 maintenance 叢集的計算設定。 您也可以使用 maintenance 標籤來覆寫 default 標籤所設定的設定。
  • updates 標籤標會定義僅適用於 updates 叢集的設定。 使用它來設定不應套用至 maintenance 叢集的設定。

使用 defaultupdates 標籤定義的設定會合併為 updates 叢集建立最終組態。 如果使用 defaultupdates 標籤定義相同的設定,則以 updates 標籤定義的設定會覆寫以 default 標籤定義的設定。

下列範例會定義Spark組態參數,該參數只會新增至 updates 叢集的組態:

{
  "clusters": [
    {
      "label": "default",
      "autoscale": {
        "min_workers": 1,
        "max_workers": 5,
        "mode": "ENHANCED"
      }
    },
    {
      "label": "updates",
      "spark_conf": {
        "key": "value"
      }
    }
  ]
}

DLT 有類似叢集設定的選項,如同 Azure Databricks 上的其他計算。 如同其他管線設定,您可以修改叢集的 JSON 組態,以指定 UI 中不存在的選項。 請參閱 運算

注意

因為 DLT 執行時間會管理管線叢集的生命週期並執行自定義版本的 Databricks Runtime,所以您無法在管線設定中手動設定某些叢集設定,例如 Spark 版本或叢集名稱。 請參閱 使用者無法設定的叢集屬性

設定更新和維護叢集的實例類型

若要在管線的 JSON 設定中設定實例類型,請按兩下 [JSON] 按鈕,然後在叢集組態中輸入實例類型組態:

注意

為了避免將不必要的資源指派給 maintenance 叢集,本範例會使用 updates 標籤,只設定 updates 叢集的實例類型。 若要將實例類型指派給 updatesmaintenance 叢集,請使用 default 標籤或省略標籤的設定。 如果未提供標籤的設定,default 標籤就會套用至管線叢集組態。 請參閱 進階計算組態。

{
  "clusters": [
    {
      "label": "updates",
      "node_type_id": "Standard_D12_v2",
      "driver_node_type_id": "Standard_D3_v2",
      "...": "..."
    }
  ]
}

延遲計算關機

若要控制叢集關機行為,您可以使用開發或生產模式,或使用管線設定中的 pipelines.clusterShutdown.delay 設定。 下列範例會將 pipelines.clusterShutdown.delay 值設定為 60 秒:

{
  "configuration": {
    "pipelines.clusterShutdown.delay": "60s"
  }
}

開啟 production 模式時,pipelines.clusterShutdown.delay 的預設值是 0 seconds。 開啟 development 模式時,預設值會 2 hours

注意

由於 DLT 叢集在不使用時會自動關閉,因此參考叢集設定中設定 autotermination_minutes 的叢集原則會導致錯誤。

建立單一節點叢集

如果您在叢集設定中將 num_workers 設定為 0,叢集會建立為 單一節點叢集。 設定自動調整叢集並將 min_workers 設定為 0,max_workers 設定為 0 會建立單一節點叢集。

如果您設定自動調整叢集,並將 min_workers 設定為0,則不會將叢集建立為單一節點叢集。 叢集始終至少有一個活躍的工作節點,直到終止。

DLT 中建立單一節點叢集的範例叢集組態:

{
  "clusters": [
    {
      "num_workers": 0
    }
  ]
}