Databricks Asset Bundles 開發
本文說明 Databricks Asset Bundles 的開發與生命週期。 如需 Databricks Asset Bundles 的一般資訊,請參閱什麼是 Databricks Asset Bundles?。
套件組合的生命週期
若要了解如何有效地使用套件組合,您需要了解套件組合的基本生命週期:
- 套件組合基本架構是根據專案所建立。
- 套件組合專案在本機開發。 套件組合包含設定檔,可定義基礎結構和工作區設定,例如部署目標、Databricks 資源的設定,例如作業和管線,以及來源檔案和其他成品。
- 套件組合專案目已驗證。 驗證會根據對應的物件結構描述驗證套件組合設定中的設定和資源定義,以確保套件組合可部署到 Databricks。
- 套件組合部署到目標工作區。 最常見的套件組合會先部署到用戶的個人開發工作區進行測試。 完成套件組合測試之後,即可將套件組合部署到檢閱及測試環境,然後部署到生產目標。
- 您可以執行部署套件組合中定義的工作流程資源。 例如,您可以執行作業。
- 如果不再使用套件組合,它可以永久終結。
您可以使用 Databricks CLI 套件組合命令來建立、驗證、部署、執行和終結套件組合,如下列各節所述。
步驟 1:建立套件組合
有三種方式可以開始建立套件組合:
- 使用預設套件組合範本。
- 使用自訂套件組合範本。
- 手動建立套件組合。
使用預設套件組合範本
若要使用 Azure Databricks 預設套件組合範本來建立可進一步自訂的入門套件組合,請使用 Databricks CLI 0.218.0 版或更新版本來執行 bundle init
命令,這可讓您從可用的範本清單中選擇。 請參閲從專案範本建立套件組合。
databricks bundle init
您可以在 databricks/cli 和 databricks/mlops-stacks Github 公用存放庫中檢視預設套件組合範本的來源。
直接跳到步驟 2:填入套件組合設定檔。
使用自訂套件組合範本
若要使用 Azure Databricks 預設套件組合範本以外的套件組合範本,您必須知道本機路徑或遠端套件組合範本位置的 URL。 使用 Databricks CLI 0.218.0 版或更新版本來執行 bundle init
命令,如下所示:
databricks bundle init <project-template-local-path-or-url>
如需此命令的詳細資訊,請參閱 Databricks Asset Bundle 項目範本。 如需特定套件組合範本的相關資訊,請參閱套件組合範本提供者的文件。
直接跳到步驟 2:填入套件組合設定檔。
手動建立套件組合
若要手動建立套件組合,而不是使用套件組合範本,請在本機計算機上建立專案目錄,或使用第三方 Git 提供者建立的空存放庫。
在您的目錄或存放庫中,建立一或多個套件組合設定檔作為輸入。 這些檔案會以 YAML 格式表示。 至少必須有一個 (且只有一個) 套件組合設定檔,名為 databricks.yml
。 必須在 databricks.yml
檔案的 include
對應中參考其他套件組合設定檔。
若要更輕鬆且快速地建立符合 Databricks Asset Bundle 組態語法的 YAML 檔案,您可以使用 Visual Studio Code、PyCharm Professional 或 IntelliJ IDEA Ultimate 等工具來提供 YAML 檔案和 JSON 結構描述檔案的支援,如下所示:
Visual Studio Code
將 YAML 語言伺服器支援新增至 Visual Studio Code,例如從 Visual Studio Code 市集安裝 YAML 延伸項目。
使用 Databricks CLI 0.218.0 版或更新版本產生 Databricks Asset Bundle 組態 JSON 結構描述檔案,以執行
bundle schema
命令,並將輸出重新導向轉接至 JSON 檔案。 例如,在目前的目錄中產生名為bundle_config_schema.json
的檔案,如下所示:databricks bundle schema > bundle_config_schema.json
使用 Visual Studio Code 在目前的目錄中建立或開啟套件組合設定檔。 此檔案必須命名為
databricks.yml
。將下列註解新增至套件組合設定檔的開頭:
# yaml-language-server: $schema=bundle_config_schema.json
注意
在上述註解中,如果您的 Databricks Asset Bundle 組態 JSON 結構描述檔案位於不同的路徑,請將
bundle_config_schema.json
取代為結構描述檔案的完整路徑。使用您之前新增的 YAML 語言伺服器功能。 如需詳細資訊,請參閱您的 YAML 語言伺服器文件。
PyCharm Professional
使用 Databricks CLI 0.218.0 版或更新版本產生 Databricks Asset Bundle 組態 JSON 結構描述檔案,以執行
bundle schema
命令,並將輸出重新導向轉接至 JSON 檔案。 例如,在目前的目錄中產生名為bundle_config_schema.json
的檔案,如下所示:databricks bundle schema > bundle_config_schema.json
依照設定自訂 JSON 結構描述中的指示,設定 PyCharm 以辨識套件組合設定 JSON 結構描述檔案,然後完成 JSON 結構描述對應。
使用 PyCharm 建立或開啟套件組合設定檔。 此檔案必須命名為
databricks.yml
。 當您輸入時,PyCharm 會檢查 JSON 結構描述語法和格式,並提供程式碼完成提示。
IntelliJ IDEA Ultimate
使用 Databricks CLI 0.218.0 版或更新版本產生 Databricks Asset Bundle 組態 JSON 結構描述檔案,以執行
bundle schema
命令,並將輸出重新導向轉接至 JSON 檔案。 例如,在目前的目錄中產生名為bundle_config_schema.json
的檔案,如下所示:databricks bundle schema > bundle_config_schema.json
依照設定自訂 JSON 結構描述中的指示,設定 IntelliJ IDEA 以辨識套件組合設定 JSON 結構描述檔案,然後完成 JSON 結構描述對應。
使用 IntelliJ IDEA 建立或開啟套件組合設定檔。 此檔案必須命名為
databricks.yml
。 當您輸入時,IntelliJ IDEA 會檢查 JSON 結構描述語法和格式,並提供程式碼完成提示。
步驟 2:填入套件組合設定檔
套件組合設定檔會指定工作區詳細資料、成品名稱、檔案位置、作業詳細資料和管線詳細資料等設定,以定義您的 Azure Databricks 工作流程。 一般而言,套件組合設定也包含開發、檢閱及測試和生產部署目標。 如需套件組合設定檔的詳細資訊,請參閱 Databricks Asset Bundle 組態。
您可以使用 bundle generate
命令來自動產生工作區中現有資源的套件組合設定,然後使用 bundle deployment bind
將套件組合設定連結至工作區中的資源,使其保持同步。請參閱產生套件組合設定檔和繫結套件組合資源。
步驟 3:驗證套件組合設定檔
部署成品或執行作業或管線之前,您應該先確認套件組合設定檔中的定義是否有效。 若要這樣做,請從套件組合專案根目錄執行 bundle validate
命令。 請參閱驗證套件組合。
databricks bundle validate
如果驗證成功,則會傳回套件組合身分識別的摘要和確認訊息。 若要輸出結構描述,請使用 databricks bundle schema
命令。 請參閱顯示套件組合設定結構描述。
步驟 4:部署套件組合
部署套件組合之前,請確定遠端工作區已啟用工作區檔案。 請參閲工作區檔案是什麼?。
若要將套件組合部署至遠端工作區,請從套件組合根目錄執行 bundle deploy
命令,如部署套件組合中所述。 Databricks CLI 會部署到套件組合設定檔內宣告的目標工作區。 參閲目標。
databricks bundle deploy
套件組合的唯一身分識別是由其名稱、目標和部署者的身分識別所定義。 如果這些屬性在不同的套件組合中都相同,則這些套件組合的部署會互相干擾。 如需其他詳細資料,請參閱部署套件組合。
提示
您可以藉由設定 BUNDLE_ROOT
環境變數,在套件組合根目錄之外執行 databricks bundle
命令。 如果未設定此環境變數,databricks bundle
命令會嘗試在目前的工作目錄中搜尋來尋找套件組合根目錄。
步驟 5:執行套件組合
若要執行特定作業或管線,請從套件組合根目錄執行 bundle run
命令,指定套件組合組態檔內宣告的作業或管線索引鍵,如執行作業或管線中所述。 資源索引鍵是資源 YAML 區塊的最上層元素。 如果您未指定作業或管線索引鍵,系統會提示您從可用資源清單中選取要執行的資源。 如果未指定 -t
選項,則會使用套件組合設定檔內宣告的預設目標。 例如,若要在預設目標的內容中執行具有索引鍵 hello_job
的作業:
databricks bundle run hello_job
若要在以名稱 dev
宣告的目標內容中使用索引鍵 hello_job
執行作業:
databricks bundle run -t dev hello_job
步驟 6:終結套件組合
警告
終結套件組合會永久刪除套件組合先前部署的作業、管線和成品。 此動作無法復原。
如果您已完成套件組合,而且想要刪除先前部署的作業、管線和成品,請從套件組合根目錄執行 bundle destroy
命令。 該命令會刪除套件組合設定檔中定義的所有先前部署的作業、管線和成品。 請參閱終結套件組合。
databricks bundle destroy
根據預設,系統會提示您確認永久刪除先前部署的作業、管線和成品。 若要略過這些提示並執行自動永久刪除,請將 --auto-approve
選項新增至 bundle destroy
命令。