bundle
命令群組
注意
此資訊適用於 Databricks CLI 0.218.0 版和更新版本。 若要尋找 Databricks CLI 版本請執行 databricks -v
。
bundle
Databricks CLI 內的命令群組可讓您以程式設計方式驗證、部署和執行 Azure Databricks 工作流程,例如 Azure Databricks 作業、Delta Live Tables 管線和 MLOps Stack。 請參閱 什麼是 Databricks 資產套件組合?。
重要
若要安裝 Databricks CLI,請參閱 安裝或更新 Databricks CLI。 若要設定 Databricks CLI 的驗證,請參閱 Databricks CLI 的驗證。
bundle
您可以將命令附加至 來執行databricks bundle
命令。 若要顯示命令的說明 bundle
,請執行 databricks bundle -h
。
從專案範本建立套件組合
若要使用適用於 Python 的預設 Databricks Asset Bundle 範本來建立 Databricks 資產套件組合, bundle init
請執行下列命令,然後回答螢幕上的提示:
databricks bundle init
若要使用非預設 Databricks Asset Bundle 範本建立 Databricks 資產組合,請執行 bundle init
命令,如下所示:
databricks bundle init <project-template-local-path-or-url> \
--project-dir="</local/path/to/project/template/output>"
另請參閱:
- Databricks Asset Bundle 範本
- 使用 Databricks 資產組合在 Azure Databricks 上開發作業
- 使用 Databricks 資產組合開發 Delta Live Tables 管線
- MLOps Stack 的 Databricks 資產套件組合
顯示套件組合元件架構
若要顯示 Databricks 資產組合組態架構,請執行 bundle schema
命令,如下所示:
databricks bundle schema
若要將 Databricks Asset Bundle 組態架構輸出為 JSON 檔案,請執行 bundle schema
命令並將輸出重新導向至 JSON 檔案。 例如,您可以在目前目錄中產生名為 bundle_config_schema.json
的檔案,如下所示:
databricks bundle schema > bundle_config_schema.json
驗證套件組合
若要驗證您的套件組合組態檔語法正確,請從套件組合專案根目錄執行 bundle validate
命令,如下所示:
databricks bundle validate
根據預設,此命令會傳回套件組合身分識別的摘要:
Name: MyBundle
Target: dev
Workspace:
Host: https://my-host.cloud.databricks.com
User: someone@example.com
Path: /Users/someone@example.com/.bundle/MyBundle/dev
Validation OK!
注意
如果資源屬性是在對應物件架構中找不到的套件組合組態檔中定義,則 bundle validate
命令會輸出警告。
將套件組合的樹狀結構同步至工作區
bundle sync
使用 命令,對本機檔系統目錄內的套件組合檔案變更進行單向同步處理,到遠端 Azure Databricks 工作區內的目錄。
注意
bundle sync
命令無法同步處理遠端 Azure Databricks 工作區內目錄的檔案變更,回到本機文件系統內的目錄。
databricks bundle sync
命令的運作方式與 databricks sync
命令相同,並以生產力便利的方式提供。 如需命令使用方式資訊,請參閱 同步處理命令群組。
產生套件組合組態檔
您可以使用 bundle generate
命令,為 Databricks 工作區中已存在的作業或管線產生資源組態。 此命令會在 *.yml
套件組合專案的資料夾中產生作業或管線 resources
的檔案,並下載作業或管線組態中參考的任何筆記本。 目前,此命令僅支援具有筆記本工作的工作。
重要
命令 bundle generate
是為了方便自動產生資源設定而提供。 不過,當此組態包含在套件組合中並部署時,它會建立新的資源,而且除非 bundle deployment bind
第一次用於資源,否則不會更新現有的資源。
bundle generate
執行命令,如下所示:
databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]
例如,下列命令會在套件組合專案資料夾中產生包含下列 YAML 的新 hello_job.yml
檔案 resources
,並將 下載 simple_notebook.py
至 src
項目資料夾。
databricks bundle generate job --existing-job-id 6565621249
# This is the contents of the resulting hello_job.yml file.
resources:
jobs:
6565621249:
name: Hello Job
format: MULTI_TASK
tasks:
- task_key: run_notebook
existing_cluster_id: 0704-xxxxxx-yyyyyyy
notebook_task:
notebook_path: ./src/simple_notebook.py
source: WORKSPACE
run_if: ALL_SUCCESS
max_concurrent_runs: 1
系結套件組合資源
bundle deployment bind
命令可讓您將套件組合定義的作業和管線連結至 Azure Databricks 工作區中的現有作業和管線,讓它們由 Databricks 資產組合管理。 如果您系結資源,工作區中現有的 Azure Databricks 資源會根據下一個 bundle deploy
之後所系結的套件組合中所定義的組態來更新。
提示
在執行系結之前,最好先確認套件組合工作區。
databricks bundle deployment bind [resource-key] [resource-id]
例如,下列命令會將資源 hello_job
系結至工作區中的遠端對應專案。 命令會輸出差異,並可讓您拒絕資源系結,但如果已確認,套件組合中作業定義的任何更新會在下次部署套件組合時套用至對應的遠端作業。
databricks bundle deployment bind hello_job 6565621249
如果您要移除套件組合中作業或管線與其工作區中遠端對應項目之間的連結,請使用 bundle deployment unbind
。
databricks bundle deployment unbind [resource-key]
部署套件組合
若要將套件組合部署至遠端工作區,請從套件組合專案根目錄執行 bundle deploy
命令。 如果未指定任何命令選項,則會使用套件組合組態檔內宣告的默認目標。
databricks bundle deploy
若要將套件組合部署至特定目標,請將 [或--target
] 選項以及目標的名稱設定-t
為套件組合組態檔內宣告。 例如,針對以名稱 dev
宣告的目標:
databricks bundle deploy -t dev
套件組合可以部署到多個工作區,例如開發、預備和生產工作區。 基本上, root_path
屬性是決定套件組合的唯一身分識別,預設為 ~/.bundle/${bundle.name}/${bundle.target}
。 因此,根據預設,套件組合的身分識別是由部署者的身分識別、套件組合的名稱和套件組合的目標名稱所組成。 如果這些套件組合在不同套件組合中完全相同,則這些套件組合的部署將會互相干擾。
此外,套件組合部署會追蹤其標識元在其目標工作區中建立的資源,做為儲存在工作區文件系統中的狀態。 資源名稱不會用來在套件組合部署與資源實例之間相互關聯,因此:
- 如果套件組合組態中的資源不存在於目標工作區中,則會建立資源。
- 如果套件組合組態中的資源存在於目標工作區中,則會在工作區中更新。
- 如果資源已從套件組合組態中移除,則先前部署的資源會從目標工作區中移除。
- 如果您變更套件組合名稱、套件組合目標或工作區,則只能忘記資源與套件組合的關聯。 您可以執行
bundle validate
以輸出包含這些值的摘要。
執行套件組合
若要執行特定作業或管線,請使用 bundle run
命令。 您必須指定套件組合組態檔內宣告之作業或管線的資源索引鍵。 根據預設,會使用套件組合組態檔內宣告的環境。 例如,若要在預設環境中執行作業 hello_job
,請執行下列命令:
databricks bundle run hello_job
若要在以名稱dev
宣告的目標內容中使用索引鍵hello_job
執行作業:
databricks bundle run -t dev hello_job
如果您要執行 管線驗證 執行,請使用 --validate-only
選項,如下列範例所示:
databricks bundle run --validate-only my_pipeline
若要傳遞 作業參數,請使用 --params
選項,後面接著逗號分隔的索引鍵/值組,其中索引鍵是參數名稱。 例如,下列命令會將 參數設定為 作業hello_job
的名稱message
HelloWorld
:
databricks bundle run --params message=HelloWorld hello_job
注意
您可以使用 作業工作選項將參數傳遞至作業 工作,但 --params
此選項是傳遞作業參數的建議方法。 如果為未定義作業參數的作業指定作業參數,或為已定義作業參數的工作指定工作參數,就會發生錯誤。
若要取消並重新啟動現有的作業執行或管線更新,請使用 --restart
選項:
databricks bundle run --restart hello_job
終結套件組合
若要刪除先前部署的作業、管線和成品,請執行 bundle destroy
命令。 下列命令會刪除套件組合組態檔中定義的所有先前部署作業、管線和成品:
databricks bundle destroy
注意
套件組合的身分識別是由套件組合名稱、套件組合目標和工作區所組成。 如果您已變更上述任何一項,然後在部署之前嘗試終結套件組合,就會發生錯誤。
根據預設,系統會提示您確認永久刪除先前部署的作業、管線和成品。 若要略過這些提示並執行自動永久刪除,請將 選項新增 --auto-approve
至 bundle destroy
命令。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應