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. |