共用方式為


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
workspacedbfs
屬性 ResourceProperties 這中的欄位會根據 ResourceConfig 服務而有所不同。

資源屬性

ResourceService 的資源屬性。 欄位會被分類為 Azure Databricks REST API 中已使用或未使用的欄位。 所有列出的欄位都是必要欄位。

服務 Stack CLI 中使用的 REST API 欄位 僅用於 Stack CLI 的欄位
工作區 路徑:STRING- 遠端工作區的筆記本或目錄路徑。 (例如 /Users/example@example.com/notebook
object_type: 工作區 API- Notebook 物件類型。 只能是 NOTEBOOKDIRECTORY
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
workspacedbfs
資料磚識別碼 DatabricksId 已部署資源的實體標識碼。 實際架構取決於資源的類型(服務)。

DatabricksId

欄位相依於服務的 JSON 物件。

服務 JSON 中的欄位 類型 描述
工作區 路徑 字串 Azure Databricks 工作區中筆記本或目錄的絕對路徑。 命名與 工作區 API 一致。
工作 工作識別碼 (job_id) 字串 Azure Databricks 工作區中顯示的作業標識碼。 這可用來更新已部署的作業。
dbfs 路徑 字串 Azure Databricks 工作區中筆記本或目錄的絕對路徑。 命名與 DBFS API 一致。