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 堆疊 CLI 子命令附加至 , databricks stack
以執行這些命令。
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
範例。
下載堆疊筆記本變更
此子命令會下載堆疊的筆記本。
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 檔案會儲存在與名稱相同的堆疊組態範本中,並在延伸模組之前 .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
這些是堆疊組態範本的外部欄位。 所有欄位皆為必填項目。
欄位名稱 | 類型 | Description |
---|---|---|
NAME | STRING |
堆疊的名稱。 |
resources | ResourceConfig 清單 | Azure Databricks 中的資產。 資源與三個服務相關(REST API 命名空間):工作區、作業和 dbfs。 |
ResourceConfig
每個 ResourceConfig
的欄位。 所有欄位皆為必填項目。
欄位名稱 | 類型 | 描述 |
---|---|---|
id | STRING |
資源的唯一識別碼。 會強制執行 ResourceConfig 的唯一性。 |
服務 | ResourceService | 資源的 REST API 服務。 其中一個: jobs 、workspace 或 dbfs 。 |
內容 | ResourceProperties | 這中的欄位會根據 ResourceConfig 服務而有所不同。 |
ResourceProperties
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 - 工作區筆記本或目錄的本機來源路徑。 堆疊組態範本檔案的相對路徑,或檔案系統中的絕對路徑。 |
jobs | 設定或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 所支援的服務。
服務 | 描述 |
---|---|
工作區 | 工作區筆記本或目錄。 |
jobs | Azure Databricks 作業。 |
dbfs | DBFS 檔案或目錄。 |
堆疊狀態架構
StackStatus
使用 CLI 部署堆疊之後,就會建立堆疊狀態檔案。 最上層欄位包括:
欄位名稱 | 類型 | Description |
---|---|---|
NAME | STRING |
堆疊的名稱。 此欄位與 StackConfig 中的 欄位相同。 |
cli_version | STRING |
用來部署堆疊的 Databricks CLI 版本。 |
deployed_resources | ResourceStatus 清單 | 每個已部署資源的狀態。 針對 StackConfig 中 定義的每個資源,此處會產生對應的 ResourceStatus 。 |
ResourceStatus
欄位名稱 | 類型 | 描述 |
---|---|---|
id | STRING |
資源的堆疊唯一識別碼。 |
服務 | ResourceService | 資源的 REST API 服務。 其中一個: jobs 、workspace 或 dbfs 。 |
databricks_id | DatabricksId | 已部署資源的實體識別碼。 實際架構取決於資源的類型(服務)。 |
DatabricksId
欄位相依于服務的 JSON 物件。
服務 | JSON 中的欄位 | 類型 | 描述 |
---|---|---|---|
工作區 | path | 字串 | Azure Databricks 工作區中筆記本或目錄的絕對路徑。 命名與 工作區 API 一致。 |
jobs | job_id | 字串 | Azure Databricks 工作區中顯示的作業識別碼。 這可用來更新已部署的作業。 |
dbfs | path | 字串 | Azure Databricks 工作區中筆記本或目錄的絕對路徑。 命名與 DBFS API 一致。 |