共用方式為


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

ResourceProperties

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 - 工作區筆記本或目錄的本機來源路徑。 堆疊組態範本檔案的相對路徑,或檔案系統中的絕對路徑。
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
workspacedbfs
databricks_id DatabricksId 已部署資源的實體識別碼。 實際架構取決於資源的類型(服務)。

DatabricksId

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

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