Stack CLI (舊版)
重要
此文件已淘汰,且可能未更新。
此資訊適用於舊版 Databricks CLI 0.18 版和更早版本。 Databricks 建議您改用較新的 Databricks CLI 0.205 版或更新版本。 請參閱什麼是 Databricks CLI?。 若要尋找 Databricks CLI 版本,請執行 databricks -v
。
若要從 Databricks CLI 0.18 版或更低版本移轉至 Databricks CLI 0.205 版或更新版本,請參閱 Databricks CLI 移轉。
Databricks CLI 0.205 版和更新版本不支援堆疊 CLI。 Databricks 建議您改用 Databricks Terraform 提供者 。
注意
堆疊 CLI 需要 Databricks CLI 0.8.3 或更新版本。
Stack CLI 提供一種方式來管理 Azure Databricks 資源的堆棧,例如作業、筆記本和 DBFS 檔案。 您可以在本機儲存筆記本和 DBFS 檔案,並建立堆棧組態 JSON 範本,以定義從本機檔案到 Azure Databricks 工作區中路徑的對應,以及執行筆記本的作業組態。
使用堆疊 CLI 搭配堆疊組態 JSON 範本來部署和管理您的堆疊。
您可以在 databricks stack
後面附加 Databricks stack CLI 子命令來執行它們。
databricks stack --help
Usage: databricks stack [OPTIONS] COMMAND [ARGS]...
[Beta] Utility to deploy and download Databricks resource stacks.
Options:
-v, --version [VERSION]
--debug Debug Mode. Shows full stack trace on error.
--profile TEXT CLI connection profile to use. The default profile is
"DEFAULT".
-h, --help Show this message and exit.
Commands:
deploy Deploy a stack of resources given a JSON configuration of the stack
Usage: databricks stack deploy [OPTIONS] CONFIG_PATH
Options:
-o, --overwrite Include to overwrite existing workspace notebooks and DBFS
files [default: False]
download Download workspace notebooks of a stack to the local filesystem
given a JSON stack configuration template.
Usage: databricks stack download [OPTIONS] CONFIG_PATH
Options:
-o, --overwrite Include to overwrite existing workspace notebooks in the
local filesystem [default: False]
將堆棧部署至工作區
此子命令會部署技術堆疊。 請參閱 堆疊設定 以瞭解如何設定堆疊。
databricks stack deploy ./config.json
堆疊組態 JSON 範本 提供 的 config.json
範例。
下載 Stack Notebook 的變更
此子命令可用來下載堆疊的筆記本。
databricks stack download ./config.json
範例
堆疊設定
範例堆疊的檔案結構
tree
.
├── notebooks
| ├── common
| | └── notebook.scala
| └── config
| ├── environment.scala
| └── setup.sql
├── lib
| └── library.jar
└── config.json
此範例堆疊包含位於 notebooks/common/notebook.scala
的主要筆記本,以及位於 notebooks/config
資料夾中的設定筆記本。 堆疊中的 lib/library.jar
具有 JAR 庫相依性。
config.json
是堆疊的組態 JSON 模板。 這是傳遞至堆疊 CLI 以進行堆疊部署的內容。
堆疊組態 JSON 範本
堆疊組態範本描述堆疊組態。
cat config.json
{
"name": "example-stack",
"resources": [
{
"id": "example-workspace-notebook",
"service": "workspace",
"properties": {
"source_path": "notebooks/common/notebook.scala",
"path": "/Users/example@example.com/dev/notebook",
"object_type": "NOTEBOOK"
}
},
{
"id": "example-workspace-config-dir",
"service": "workspace",
"properties": {
"source_path": "notebooks/config",
"path": "/Users/example@example.com/dev/config",
"object_type": "DIRECTORY"
}
},
{
"id": "example-dbfs-library",
"service": "dbfs",
"properties": {
"source_path": "lib/library.jar",
"path": "dbfs:/tmp/lib/library.jar",
"is_dir": false
}
},
{
"id": "example-job",
"service": "jobs",
"properties": {
"name": "Example Stack CLI Job",
"new_cluster": {
"spark_version": "7.3.x-scala2.12",
"node_type_id": "Standard_DS3_v2",
"num_workers": 3
},
"timeout_seconds": 7200,
"max_retries": 1,
"notebook_task": {
"notebook_path": "/Users/example@example.com/dev/notebook"
},
"libraries": [
{
"jar": "dbfs:/tmp/lib/library.jar"
}
]
}
}
]
}
每個作業、工作區筆記本、工作區目錄、DBFS 檔案或 DBFS 目錄都會定義為 ResourceConfig。 每個代表工作區或 DBFS 資產的 ResourceConfig
都包含一個對應,將本地的檔案或目錄(source_path
)對應到工作區或 DBFS 中的位置(path
)。
堆疊組態範本架構 概述堆疊組態範本的架構。
部署堆疊
您使用 databricks stack deploy <configuration-file>
命令來部署堆疊。
databricks stack deploy ./config.json
在堆疊部署期間,DBFS 和工作區資產會上傳至您的 Azure Databricks 工作區,並建立任務。
在堆疊部署期間,用於部署的 StackStatus JSON 檔案會儲存在與堆疊組態範本相同的目錄中,並且在檔案名稱的延伸模組前新增deployed
:(例如,./config.deployed.json
)。 Stack CLI 會使用此檔案來追蹤工作區上過去的已部署資源。
堆疊狀態架構 概述堆疊組態的架構。
重要
請勿嘗試編輯或移動堆疊狀態檔。 如果您收到有關堆疊狀態檔案的任何錯誤,請刪除檔案,然後再試一次部署。
./config.deployed.json
{
"cli_version": "0.8.3",
"deployed_output": [
{
"id": "example-workspace-notebook",
"databricks_id": {
"path": "/Users/example@example.com/dev/notebook"
},
"service": "workspace"
},
{
"id": "example-workspace-config-dir",
"databricks_id": {
"path": "/Users/example@example.com/dev/config"
},
"service": "workspace"
},
{
"id": "example-dbfs-library",
"databricks_id": {
"path": "dbfs:/tmp/lib/library.jar"
},
"service": "dbfs"
},
{
"id": "example-job",
"databricks_id": {
"job_id": 123456
},
"service": "jobs"
}
],
"name": "example-stack"
}
資料結構
本節內容:
堆疊組態範本架構
StackConfig
這些是堆疊組態範本的外部欄位。 所有欄位皆為必填項目。
欄位名稱 | 類型 | 描述 |
---|---|---|
名字 | STRING |
堆疊的名稱。 |
資源 | ResourceConfig 清單 | Azure Databricks 中的資產。 資源與三個服務相關(REST API 命名空間):工作區、作業和 dbfs。 |
ResourceConfig
每個 ResourceConfig
的欄位。 所有欄位皆為必填項目。
欄位名稱 | 類型 | 描述 |
---|---|---|
身分證明 (ID) | STRING |
資源的唯一標識碼。 確保 ResourceConfig 的唯一性被維持。 |
服務 | ResourceService | 資源運行的 REST API 服務。 其中一個: jobs 、workspace 或 dbfs 。 |
屬性 | ResourceProperties | 這中的欄位會根據 ResourceConfig 服務而有所不同。 |
資源屬性
ResourceService 的資源屬性。 欄位會被分類為 Azure Databricks REST API 中已使用或未使用的欄位。 所有列出的欄位都是必要欄位。
服務 | Stack CLI 中使用的 REST API 欄位 | 僅用於 Stack CLI 的欄位 |
---|---|---|
工作區 | 路徑:STRING - 遠端工作區的筆記本或目錄路徑。 (例如 /Users/example@example.com/notebook )object_type: 工作區 API- Notebook 物件類型。 只能是 NOTEBOOK 或 DIRECTORY 。 |
source_path:STRING - 本地工作區筆記本或目錄的來源路徑。 堆疊組態範本檔案的相對路徑,或文件系統中的絕對路徑。 |
工作 |
設定或 new_settings 結構中的任何欄位。 在設定或new_settings結構中不需要的唯一欄位,卻是堆疊CLI所必需的。 name: STRING - 要部署之作業的名稱。 為了不建立太多重複作業,Stack CLI 會在堆疊部署的作業中強制執行唯一名稱。 |
無。 |
dbfs | 路徑: STRING - 比對遠端 DBFS 路徑。 必須以 dbfs:/ 開頭。 (例如) dbfs:/this/is/a/sample/path is_dir: BOOL - 確認 DBFS 路徑是否為目錄或檔案。 |
source_path: STRING - DBFS 檔案或目錄的本機來源路徑。 堆疊組態範本檔案的相對路徑,或文件系統中的絕對路徑。 |
ResourceService
每個資源都屬於與 Databricks REST API 一致的特定服務。 這些是 Stack CLI 所支援的服務。
服務 | 描述 |
---|---|
工作區 | 工作區筆記本或目錄。 |
工作 | Azure Databricks 的一個作業。 |
dbfs | DBFS 檔案或目錄。 |
堆疊狀態架構
StackStatus
使用 CLI 部署堆疊之後,就會建立堆疊狀態檔案。 最上層欄位包括:
欄位名稱 | 類型 | 描述 |
---|---|---|
名稱 | STRING |
堆疊的名稱。 此欄位與 StackConfig 中的欄位相同。 |
cli版本 | STRING |
用來部署堆疊的 Databricks CLI 版本。 |
已部署資源 | ResourceStatus 的清單 | 每個已部署資源的狀態。 針對 StackConfig 中定義的每個資源,此處會產生對應的 ResourceStatus。 |
ResourceStatus
欄位名稱 | 類型 | 描述 |
---|---|---|
識別碼 | STRING |
資源的棧唯一標識碼。 |
服務 | ResourceService | 資源運行的 REST API 服務。 其中一個: jobs 、workspace 或 dbfs 。 |
資料磚識別碼 | DatabricksId | 已部署資源的實體標識碼。 實際架構取決於資源的類型(服務)。 |
DatabricksId
欄位相依於服務的 JSON 物件。
服務 | JSON 中的欄位 | 類型 | 描述 |
---|---|---|---|
工作區 | 路徑 | 字串 | Azure Databricks 工作區中筆記本或目錄的絕對路徑。 命名與 工作區 API 一致。 |
工作 | 工作識別碼 (job_id) | 字串 | Azure Databricks 工作區中顯示的作業標識碼。 這可用來更新已部署的作業。 |
dbfs | 路徑 | 字串 | Azure Databricks 工作區中筆記本或目錄的絕對路徑。 命名與 DBFS API 一致。 |