共用方式為


什麼是 Databricks Asset Bundles?

Databricks Asset Bundles (DAB) 是一種工具,可協助您採用軟體工程最佳做法,包括原始檔控制、程式碼檢閱、測試和持續整合和傳遞 (CI/CD),用於您的資料和 AI 專案。 套件組合可讓您將 Databricks 資源描述為來源檔案,例如工作、管線和筆記本。 這些原始程式檔提供專案的端對端定義,包括其結構、測試和部署方式,這可讓您在主動開發期間更輕鬆地在專案上共同作業。

套件組合提供一種方式,將中繼資料與專案的來源檔案一起納入。 當您使用套件組合部署專案時,此中繼資料會用來佈建基礎結構和其他資源。 您的專案原始程式檔和中繼資料集合接著會部署為目標環境的單一套件組合。 套件組合包含下列部分:

  • 必要的雲端基礎結構和工作區設定
  • 包含商務邏輯的來源檔案,如筆記本和 Python 檔案
  • Databricks 資源的定義和設定,例如 Azure Databricks 工作、Delta Live Tables 管線、模型服務端點、MLflow 實驗和 MLflow 已註冊的模型
  • 單元測試和整合測試

下圖提供具有配套的開發與 CI/CD 管線的高階檢視:

Databricks Asset Bundles 概觀

何時應該使用 Databricks Asset Bundles?

Databricks Asset Bundles 是管理 Databricks 專案的基礎結構即程式碼 (IaC) 方法。 當您想要管理需要多個參與者和自動化的複雜專案時,請使用它們,而持續整合和部署 (CI/CD) 是必要專案。 由於套件組合透過 YAML 範本和您與原始程式碼一起建立和維護的檔案定義和管理,因此它們會對應至 IaC 作為適當方法的案例。

套件組合的一些理想案例包括:

  • 在基於團隊的環境中開發資料、分析和 ML 專案。 套件組合可協助您高效組織和管理各種來源檔案。 這可確保順暢的共同作業和簡化的程序。
  • 更快速地迭代 ML 問題。 使用從頭開始遵循生產最佳做法的 ML 專案來管理 ML 管線資源 (例如訓練和批次推斷工作)。
  • 撰寫包含預設權限、服務主體和 CI/CD 組態的自訂套件組合範本,以設定新專案的組織標準。
  • 法規合規性:在法規合規性很重要的產業中,套件組合有助於維護程式碼和基礎結構工作的版本化歷程記錄。 這能協助治理,並確保符合必要的合規性標準。

Databricks Asset Bundles 如何運作?

套件組合中繼資料使用 YAML 檔案來定義,這些檔案會指定 Databricks 專案的成品、資源和組態。 您可手動建立此 YAML 檔案,或使用套件組合範本產生一個檔案。 Databricks CLI 接著可以使用這些套件組合 YAML 檔案來驗證、部署和執行套件組合。 您可以直接從 IDE、終端機或 Databricks 內執行套件組合專案。 本文使用 Databricks CLI。

您可手動或根據範本建立套件組合。 Databricks CLI 提供簡單使用案例的預設範本,但對於更具體或複雜的工作,您可以建立自訂組合範本來實作小組的最佳做法,並讓一般設定保持一致。

如需用來表示 Databricks Asset Bundles 之組態 YAML 的詳細資訊,請參閱 Databricks Asset Bundles 組態

設定您的環境以使用套件組合

使用 Databricks CLI 輕鬆地從命令列部署套件組合。 若要安裝 Databricks CLI,請參閱安裝或更新 Databricks CLI

Databricks Asset Bundles 可以在 Databricks CLI 0.218.0 版或更新版本中取得。 要尋找已安裝的 Databricks CLI 版本,請執行下列命令:

databricks --version

安裝 Databricks CLI 之後,請確認遠端 Databricks 工作區已正確設定。 套件組合需要啟用工作區檔案功能,因為此功能支援使用 Databricks 筆記本以外的檔案,例如 .py.yml 檔案。 如果您使用 Databricks Runtime 11.3 LTS 版 (或更新版本),則此功能預設為啟用。

驗證

Azure Databricks 提供幾種驗證方法:

  • 針對有人參與驗證案例,例如使用網頁瀏覽器登入目標 Azure Databricks 工作區的手動工作流程 (當 Databricks CLI 提示時),請使用 OAuth 使用者對機器 (U2M) 驗證。 這個方法非常適合用於實驗 Databricks Asset Bundles 的入門教學課程,或快速開發套件組合。
  • 針對無人參與驗證案例,例如完全自動化的工作流程,您目前沒有機會使用網頁瀏覽器登入目標 Azure Databricks 工作區,請使用 OAuth 計算機對機器 (M2M) 驗證。 此方法需要使用 Azure Databricks 服務主體,而且非常適合搭配 GitHub 等 CI/CD 系統使用 Databricks Asset Bundles。

針對 OAuth U2M 驗證,執行下列動作:

  1. 針對每個目標工作區執行下列命令,使用 Databricks CLI 在本機起始 OAuth 權杖管理。

    在下列命令中,將 <workspace-url> 取代為您的 Azure Databricks 個別工作區網址,例如 https://adb-1234567890123456.7.azuredatabricks.net

    databricks auth login --host <workspace-url>
    
  2. Databricks CLI 會提示您儲存輸入為 Azure Databricks 組態設定檔的資訊。 按 Enter 以接受建議的設定檔名稱,或輸入新或現有設定檔的名稱。 任何具有相同名稱的現有設定檔,會以您輸入的資訊覆寫。 您可使用設定檔,在多個工作區之間快速切換驗證內容。

    若要取得任何現有設定檔的清單,請在個別的終端機或命令提示字元中,使用 Databricks CLI 來執行 databricks auth profiles 命令。 若要檢視特定設定檔的現有設定,請執行 databricks auth env --profile <profile-name> 命令。

  3. 在網頁瀏覽器中,完成畫面上的指示,登入 Azure Databricks 工作區。

  4. 若要檢視設定檔目前的 OAuth 權杖值和權杖即將到期的時間戳記,請執行下列其中一個命令:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    如果您有多個具有相同 --host 值的設定檔,您可能需要一起指定 --host-p 選項,以協助 Databricks CLI 尋找正確的相符 OAuth 權杖資訊。

每當驗證、部署、執行或終結套件組合時,可以使用下列一個或多個方式使用此組態設定檔名稱:

  • 使用命令列選項 -p <profile-name>,附加至命令 databricks bundle validatedatabricks bundle deploydatabricks bundle rundatabricks bundle destroy。 請參閱 Databricks Asset Bundles 開發
  • 作為套件組合設定檔最上層 workspace 對應中的 profile 對應值 (雖然 Databricks 建議您使用 host 對應集至 Azure Databricks 工作區的網址,而不是 profile 對應,因為它可讓您的套件組合設定檔更具可移植性)。 請參閱工作區profile 對應的涵蓋範圍。
  • 如果組態設定檔的名稱是 DEFAULT,則預設會在指定命令列選項 -p <profile-name>profile (或 host) 對應時使用。

針對 OAuth M2M 驗證,執行下列動作:

  1. 完成 OAuth M2M 驗證設定指示。 請參閱使用 OAuth (OAuth M2M) 透過服務主體對 Azure Databricks 的存取進行驗證

  2. 使用下列其中一種方式,在目標計算資源上安裝 Databricks CLI:

    • 若要即時在計算資源上手動安裝 Databricks CLI,請參閱安裝或更新 Databricks CLI
    • 若要使用 GitHub Actions 在 GitHub 虛擬機器上自動安裝 Databricks CLI,請參閱 GitHub 中的 setup-cli
    • 若要使用其他 CI/CD 系統自動在虛擬機上安裝 Databricks CLI,請參閱 CI/CD 系統提供者的文件和 安裝或更新 Databricks CLI
  3. 在計算資源上設定下列環境變數,如下所示:

    • DATABRICKS_HOST,設定為 Azure Databricks 個別工作區網址,例如 https://adb-1234567890123456.7.azuredatabricks.net
    • DATABRICKS_CLIENT_ID,設定為 Azure Databricks 服務主體的應用程式 ID 值。
    • DATABRICKS_CLIENT_SECRET,設定為 Azure Databricks 服務主體的 OAuth 祕密值。

    若要設定這些環境變數,請參閱目標計算資源的作業系統或 CI/CD 系統的文件。

開發您的第一個 Databricks Asset Bundles

啟動套件組合開發的最快方式是使用套件組合專案範本。 使用 Databricks CLI 套件組件命令建立您的第一個套件組合專案。 此命令會提供 Databricks 提供的預設套件組合範本選擇,並詢問一系列問題來初始化專案變數。

databricks bundle init

建立套件組合是套件組合生命週期中的第一個步驟。 第二個步驟是開發您的套件組合,這是在 databricks.yml 和資源設定檔中定義套件組合設定和資源的關鍵元素。 如需套件組合設定的資訊,請參閱 Databricks Asset Bundle 組態

提示

套件組合設定範例可在套件組合設定範例中和 GitHub 中的套件組合範例存放庫中找到。

下一步