Pular para o conteúdo principal

Stack CLI (legado)

important

Essa documentação foi descontinuada e pode não estar atualizada.

Esta informação se aplica ao legado Databricks CLI versões 0.18 e abaixo. Databricks recomenda que o senhor use a versão mais recente do Databricks CLI 0.205 ou o acima. Consulte O que é a CLI do Databricks? Para encontrar sua versão do site Databricks CLI, execute databricks -v.

Para migrar de Databricks CLI versão 0.18 ou abaixo para Databricks CLI versão 0.205 ou acima, consulte Databricks CLI migration.

Databricks CLI As versões 0.205 e acima não são compatíveis com a pilha CLI. A Databricks recomenda que, em vez disso, o senhor use o provedor Databricks Terraform.

nota

A pilha CLI requer Databricks CLI 0.8.3 ou acima.

A pilha CLI oferece uma maneira de gerenciar uma pilha de Databricks recursos, como arquivos Job, Notebook e DBFS. O senhor pode armazenar arquivos do Notebook e do DBFS localmente e criar uma configuração de pilha JSON padrão que define mapeamentos dos arquivos locais para caminhos no seu Databricks workspace, juntamente com as configurações do trabalho que executa o Notebook.

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

O senhor executa Databricks empilha os subcomandos CLI anexando-os a databricks stack.

Bash
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]

implantado uma pilha em um workspace

Esse subcomando implanta uma pilha. Consulte Configuração da pilha para saber como configurar uma pilha.

Bash
databricks stack deploy ./config.json

Configuração da pilha JSON padrão dá um exemplo de config.json.

download de alterações no stack Notebook

Esse subcomando downloads o Notebook de uma pilha.

Bash
databricks stack download ./config.json

Exemplos

Configuração da pilha

Estrutura de arquivos de uma pilha de exemplo

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

Essa pilha de exemplo contém um Notebook principal em notebooks/common/notebook.scala e um Notebook de configuração na pasta notebooks/config. Há uma dependência da biblioteca JAR da pilha em lib/library.jar. config.json é a configuração da pilha JSON padrão da pilha. Isso é o que é passado para a CLI da pilha para a implementação da pilha.

Configuração da pilha JSON padrão

O padrão de configuração da pilha descreve a configuração da pilha.

Bash
cat config.json
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": "i3.xlarge",
"aws_attributes": {
"availability": "SPOT"
},
"num_workers": 3
},
"timeout_seconds": 7200,
"max_retries": 1,
"notebook_task": {
"notebook_path": "/Users/example@example.com/dev/notebook"
}
}
}
]
}

Cada Job, workspace Notebook, diretório workspace, arquivo DBFS ou diretório DBFS é definido como um ResourceConfig. Cada ResourceConfig que representa um workspace ou DBFS ativo contém um mapeamento do arquivo ou diretório onde ele existe localmente (source_path) para onde ele existiria no workspace ou DBFS (path).

O esquema do padrão de configuração da pilha descreve o esquema do padrão de configuração da pilha.

implantado a stack

O senhor implantou uma pilha usando o comando databricks stack deploy <configuration-file>.

Bash
databricks stack deploy ./config.json

Durante a implementação da pilha, os ativos DBFS e workspace são carregados no seu Databricks workspace e o trabalho é criado.

No momento da implantação da pilha, um arquivo StackStatus JSON para a implantação é salvo no mesmo diretório que o padrão de configuração da pilha com o nome, acrescentando deployed imediatamente antes da extensão .json: (por exemplo, ./config.deployed.json). Esse arquivo é usado pelo Stack CLI para rastrear os recursos implantados anteriormente em seu site workspace.

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

important

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

Bash
cat ./config.deployed.json
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:

Configuração da pilha padrão schema

Configuração de pilha

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

Nome do campo

Tipo

Descrição

name

STRING

O nome da pilha.

recursos

Lista de ResourceConfig

Um ativo na Databricks. recurso estão relacionados a três serviços (REST API namespaces): workspace, Job 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

Uma ID exclusiva para o recurso. A exclusividade do ResourceConfig é imposta.

Serviço

Serviço de recursos

O serviço da API REST em que o recurso opera. Um dos: jobs, workspace, ou dbfs.

propriedades

Propriedades do recurso

Os campos são diferentes dependendo do serviço ResourceConfig.

Propriedades do recurso

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

Serviço

Campos da API REST usados na CLI do Stack

Campos usados somente na CLI do Stack

workspace

path: STRING- Remote workspace caminhos do Notebook ou diretórios. (Ex. /Users/example@example.com/notebook) object_type: workspace API- Notebook tipo de objeto. Só pode ser NOTEBOOK ou DIRECTORY.

source_path: STRING- Caminho de origem local do workspace Notebook ou diretórios. Um caminho relativo para o arquivo padrão de configuração da pilha ou um caminho absoluto em seu sistema de arquivos.

empregos

Qualquer campo na estrutura settings ou new_settings. O único campo que não é necessário na estrutura settings ou new_settings, mas que é necessário para a CLI da pilha, é o seguinte: name: STRING- Nome do trabalho a ser implantado. Para evitar a criação de muitos trabalhos duplicados, a pilha CLI impõe nomes exclusivos em trabalhos implantados na pilha.

Nenhuma.

dbfs

path: 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 padrão de configuração da pilha ou um caminho absoluto em seu sistema de arquivos.

Serviço de recursos

Cada recurso pertence a um serviço específico que se alinha à API REST da Databricks. Esses são os serviços suportados pelo Stack CLI.

Serviço

Descrição

workspace

Um workspace Notebook ou diretório.

empregos

A Databricks Job.

dbfs

Um arquivo ou diretório DBFS.

Esquema de status da pilha

Status da pilha

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

Nome do campo

Tipo

Descrição

name

STRING

O nome da pilha. Esse campo é o mesmo campo do StackConfig.

CLI

STRING

A versão do site Databricks CLI usada para implantar a pilha.

implantado

Lista de status de recursos

O status de cada recurso implantado. Para cada recurso definido em StackConfig, um ResourceStatus correspondente é gerado aqui.

Status do recurso

Nome do campo

Tipo

Descrição

ID

STRING

Uma ID exclusiva da pilha para o recurso.

Serviço

Serviço de recursos

O serviço da API REST em que o recurso opera. Um dos: jobs, workspace, ou dbfs.

databricks_id

ID do DatabrickSID

A ID física do recurso implantado. O esquema real depende do tipo (serviço) do recurso.

ID do DatabrickSID

Um objeto JSON cujo campo depende do serviço.

Serviço

Campo em JSON

Tipo

Descrição

workspace

Caminho

String

O caminho absoluto do Notebook ou do diretório em um Databricks workspace. A nomenclatura é consistente com o espaço de trabalho API.

empregos

Trabalho

String

O ID do trabalho, conforme mostrado em Databricks workspace. Isso pode ser usado para atualizar o trabalho já implantado.

dbfs

Caminho

String

O caminho absoluto do Notebook ou do diretório em um Databricks workspace. A nomenclatura é consistente com a API do DBFS.