Partilhar via


CLI de pilha (legado)

Importante

Esta documentação foi desativada e pode não ser atualizada.

Essas informações se aplicam às versões herdadas da CLI do Databricks 0.18 e inferiores. O Databricks recomenda que você use a CLI mais recente do Databricks versão 0.205 ou superior. Consulte O que é a CLI do Databricks?. Para encontrar sua versão da CLI do Databricks, execute databricks -v.

Para migrar da CLI do Databricks versão 0.18 ou inferior para a CLI do Databricks versão 0.205 ou superior, consulte Migração da CLI do Databricks.

As versões 0.205 e superiores da CLI do Databricks não suportam a CLI da pilha. O Databricks recomenda que você use o provedor Databricks Terraform.

Nota

A CLI de pilha requer a CLI do Databricks 0.8.3 ou superior.

A CLI de pilha fornece uma maneira de gerenciar uma pilha de recursos do Azure Databricks, como trabalhos, blocos de anotações e arquivos DBFS. Você pode armazenar blocos de anotações e arquivos DBFS localmente e criar um modelo JSON de configuração de pilha que define mapeamentos de seus arquivos locais para caminhos em seu espaço de trabalho do Azure Databricks, juntamente com configurações de trabalhos que executam os blocos de anotações.

Use a CLI de pilha com o modelo JSON de configuração de pilha para implantar e gerenciar sua pilha.

Execute os subcomandos da CLI da pilha do Databricks anexando-os ao 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]

Implantar uma pilha em um espaço de trabalho

Este subcomando implanta uma pilha. Consulte Configuração de pilha para saber como configurar uma pilha.

databricks stack deploy ./config.json

O modelo JSON de configuração de pilha fornece um exemplo de config.json.

Baixar alterações de bloco de anotações de pilha

Este subcomando baixa os blocos de anotações de uma pilha.

databricks stack download ./config.json

Exemplos

Configuração da pilha

Estrutura de arquivo de uma pilha de exemplo

tree
.
├── notebooks
|   ├── common
|   |   └── notebook.scala
|   └── config
|       ├── environment.scala
|       └── setup.sql
├── lib
|   └── library.jar
└── config.json

Esta pilha de exemplo contém um bloco de anotações principal junto notebooks/common/notebook.scala com blocos de anotações de configuração na notebooks/config pasta. Há uma dependência da biblioteca JAR da pilha no lib/library.jar. config.json é o modelo JSON de configuração de pilha da pilha. Isso é o que é passado para a CLI da pilha para a implantação da pilha.

Modelo JSON de configuração de pilha

O modelo de configuração de pilha descreve a configuração de pilha.

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"
          }
        ]
      }
    }
  ]
}

Cada trabalho, bloco de anotações de espaço de trabalho, diretório de espaço de trabalho, arquivo DBFS ou diretório DBFS é definido como um ResourceConfig. Cada ResourceConfig um que representa um espaço de trabalho ou ativo DBFS contém um mapeamento do arquivo ou diretório onde ele existe localmente (source_path) para onde ele existiria no espaço de trabalho ou DBFS (path).

O esquema do modelo de configuração de pilha descreve o esquema para o modelo de configuração de pilha.

Implantar uma pilha

Você implanta uma pilha usando o databricks stack deploy <configuration-file> comando.

databricks stack deploy ./config.json

Durante a implantação da pilha, o DBFS e os ativos do espaço de trabalho são carregados no seu espaço de trabalho do Azure Databricks e os trabalhos são criados.

No momento da implantação da pilha, um arquivo JSON StackStatus para a implantação é salvo no mesmo diretório que o modelo de configuração da pilha com o nome, adicionando deployed imediatamente antes da .json extensão: (por exemplo, ./config.deployed.json). Esse arquivo é usado pela CLI de pilha para controlar recursos implantados anteriormente em seu espaço de trabalho.

O esquema de status da pilha descreve o esquema de uma configuração de pilha.

Importante

Não tente editar ou mover o arquivo de status da pilha. Se você receber algum erro em relação ao arquivo de status da pilha, exclua o arquivo e tente a implantação novamente.

./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"
}

Estruturas de dados

Nesta secção:

Esquema de modelo de configuração de pilha

StackConfig

Estes são os campos externos de um modelo de configuração de pilha. Todos os campos são obrigatórios.

Nome do Campo Tipo Description
nome STRING O nome da pilha.
recursos Lista de ResourceConfig Um ativo no Azure Databricks. Os recursos estão relacionados a três serviços (namespaces da API REST): espaço de trabalho, trabalhos e dbfs.

ResourceConfig

Os campos para cada ResourceConfig. Todos os campos são obrigatórios.

Nome do Campo Tipo Descrição
id STRING Um ID exclusivo para o recurso. A exclusividade de ResourceConfig é imposta.
service ResourceService O serviço de API REST no qual o recurso opera. Um dos seguintes: jobs,
workspace, ou dbfs.
propriedades ResourceProperties Os campos são diferentes dependendo do ResourceConfig serviço.

ResourceProperties

As propriedades de um recurso por ResourceService. Os campos são classificados como aqueles usados ou não usados em uma API REST do Azure Databricks. Todos os campos listados são obrigatórios.

service Campos da API REST usados na CLI de pilha Campos usados somente na CLI de pilha
área de trabalho path: STRING- Caminhos de espaço de trabalho remoto de blocos de anotações ou diretórios. (Ex. /Users/example@example.com/notebook)

object_type: Tipo de objeto Workspace API- Notebook. Só pode ser NOTEBOOK ou DIRECTORY.
source_path: STRING- Caminho de origem local de blocos de anotações ou diretórios de espaço de trabalho. Um caminho relativo para o arquivo de modelo de configuração de pilha ou um caminho absoluto em seu sistema de arquivos.
empregos Qualquer campo nas configurações ou new_settings estrutura. O único campo não obrigatório nas configurações ou na estrutura new_settings, mas necessário para a CLI da pilha é:

name: STRING- Nome do trabalho a ser implantado. Para não criar muitos trabalhos duplicados, a CLI de pilha impõe nomes exclusivos em trabalhos implantados em pilha.
Nenhum.
DBFS caminho: STRING- Caminho DBFS remoto correspondente. Deve começar com dbfs:/. (ex. dbfs:/this/is/a/sample/path)

is_dir: BOOL- Se um caminho DBFS é um diretório ou um arquivo.
source_path: STRING- Caminho de origem local de arquivos ou diretórios DBFS. Um caminho relativo para o arquivo de modelo de configuração de pilha ou um caminho absoluto em seu sistema de arquivos.

ResourceService

Cada recurso pertence a um serviço específico que se alinha com a API REST do Databricks. Estes são os serviços que são suportados pela CLI de pilha.

Serviço Description
área de trabalho Um bloco de anotações ou diretório de espaço de trabalho.
empregos Um trabalho do Azure Databricks.
DBFS Um arquivo ou diretório DBFS.

Esquema de status da pilha

Status da pilha

Um arquivo de status de pilha é criado depois que uma pilha é implantada usando a CLI. Os campos de nível superior são:

Nome do Campo Tipo Description
nome STRING O nome da pilha. Este campo é o mesmo campo que em StackConfig.
cli_version STRING A versão da CLI do Databricks usada para implantar a pilha.
deployed_resources Lista de ResourceStatus O status de cada recurso implantado. Para cada recurso definido em StackConfig, um ResourceStatus correspondente é gerado aqui.

ResourceStatus

Nome do Campo Tipo Descrição
id STRING Um ID exclusivo de pilha para o recurso.
service ResourceService O serviço de API REST no qual o recurso opera. Um dos seguintes: jobs,
workspace, ou dbfs.
databricks_id DatabricksId A ID física do recurso implantado. O esquema real depende do tipo (serviço) do recurso.

DatabricksId

Um objeto JSON cujo campo depende do serviço.

Serviço Campo em JSON Tipo Description
área de trabalho path STRING O caminho absoluto do bloco de anotações ou diretório em um espaço de trabalho do Azure Databricks. A nomenclatura é consistente com a API do espaço de trabalho.
empregos job_id STRING A ID do trabalho conforme mostrado em um espaço de trabalho do Azure Databricks. Isso pode ser usado para atualizar trabalhos já implantados.
DBFS path STRING O caminho absoluto do bloco de anotações ou diretório em um espaço de trabalho do Azure Databricks. A nomeação é consistente com a API DBFS.