Partilhar via


Stack CLI (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. A Databricks recomenda que utilizes a versão 0.205 ou superior da Databricks CLI mais recente. 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 stack CLI. O Databricks recomenda utilizar o Databricks Terraform provider.

Nota

A interface de linha de comando de pilha requer a interface de linha de comando do Databricks 0.8.3 ou superior.

A CLI de stack fornece uma maneira de gerir uma stack de recursos do Azure Databricks, como jobs, notebooks e ficheiros DBFS. Você pode armazenar cadernos e arquivos DBFS localmente e criar um modelo JSON de configuração de pilha que defina mapeamentos dos seus arquivos locais para caminhos no seu espaço de trabalho no Azure Databricks, juntamente com as configurações de trabalhos que executam esses cadernos.

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 um stack 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 da pilha fornece um exemplo de config.json.

Descarregar alterações do notebook stack

Este subcomando descarrega os cadernos de notas de uma stack.

databricks stack download ./config.json

Exemplos

Configuração da pilha

Estrutura de ficheiros 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 em notebooks/common/notebook.scala, bem como blocos de anotações de configuração na pasta notebooks/config. Há uma dependência da biblioteca JAR da pilha no lib/library.jar. config.json é o modelo JSON de configuração da pilha. Isto é o que é passado para a CLI da pilha para a sua implantação.

Modelo JSON de configuração de pilha

O modelo de configuração da pilha descreve a configuração da 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 que representa um espaço de trabalho ou recurso 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 stack

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 inseridos no seu espaço de trabalho do Azure Databricks e as tarefas são criadas.

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 ficheiro é usado pelo Stack CLI para controlar recursos implantados anteriormente no seu espaço de trabalho.

O esquema de estado da pilha descreve o esquema de configuração da pilha.

Importante

Não tente editar ou mover o ficheiro de estado 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 Descrição
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.

Configuração de Recursos

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.
serviço 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.

serviço Campos da API REST usados no Stack CLI Campos usados apenas no Stack CLI
área de trabalho path: STRING- Percursos de espaço de trabalho remoto de cadernos 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 cadernos ou diretórios de espaço de trabalho. Um caminho relativo para o ficheiro modelo da configuração da pilha ou um caminho absoluto no seu sistema de ficheiros.
empregos Qualquer campo na estrutura de configurações ou new_settings. 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 da tarefa a ser implantada. 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 suportados pelo Stack CLI.

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

Esquema de estado da pilha

Status da pilha

Um ficheiro de estado de pilha é criado depois que uma pilha é implementada utilizando a CLI. Os campos de nível superior são:

Nome do Campo Tipo Descrição
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.
recursos implementados 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 único da pilha para o recurso.
serviço 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 Descrição
área de trabalho caminho STRING O caminho absoluto do notebook ou diretório num espaço de trabalho do Azure Databricks. A nomenclatura é consistente com a API de Espaço de Trabalho.
empregos job_id STRING O ID do trabalho conforme exibido num espaço de trabalho do Azure Databricks. Isso pode ser usado para atualizar tarefas já implantadas.
DBFS caminho STRING O caminho absoluto do notebook ou diretório em um espaço de trabalho do Azure Databricks. A nomeação é consistente com a API DBFS.