Compartilhar via


CLI da pilha (herdada)

Importante

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

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

Para migrar da CLI do Databricks versão 0.18 ou inferior para a 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 dão suporte à CLI de pilha. Em seu lugar, o Databricks recomenda que você use o provedor Terraform do Databricks.

Observação

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

A CLI de pilha oferece uma forma de gerenciar uma pilha de recursos do Azure Databricks, como trabalhos, notebooks e arquivos DBFS. Você pode armazenar notebooks e arquivos DBFS localmente e criar um modelo JSON de configuração de pilha que define os mapeamentos dos arquivos locais para caminhos no seu workspace do Azure Databricks, com as configurações de trabalhos que executam os notebooks.

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

Execute subcomandos da CLI de pilha do Databricks acrescentando-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 workspace

Esse subcomando implanta uma pilha. Confira 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 do notebook de pilha

Esse subcomando baixa os notebooks de uma pilha.

databricks stack download ./config.json

Exemplos

Configuração de pilha

Estrutura de arquivos de um exemplo de pilha

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

Este exemplo de pilha contém um notebook principal em notebooks/common/notebook.scala com os notebooks de configuração na pasta notebooks/config. Há uma dependência de biblioteca JAR da pilha em lib/library.jar. config.json é o modelo JSON de configuração da pilha. É isso que é transmitido para a CLI de 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 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, notebook do workspace, diretório do workspace, arquivo DBFS ou diretório do DBFS é definido como uma ResourceConfig. Cada ResourceConfig que representa um workspace ou um ativo do DBFS contém um mapeamento do arquivo ou do diretório em que ele existe localmente (source_path) para o local em que ele existirá no workspace ou no DBFS (path).

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

Implantar uma pilha

Implante uma pilha usando o comando databricks stack deploy <configuration-file>.

databricks stack deploy ./config.json

Durante a implantação da pilha, os ativos do DBFS e do workspace são carregados no seu workspace 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 do modelo de configuração de pilha com o nome, adicionando deployed imediatamente antes da extensão .json: (por exemplo, ./config.deployed.json). Esse arquivo é usado pela CLI de pilha para acompanhar os recursos já implantados no seu workspace.

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

Importante

Não tente editar nem mover o arquivo de status da pilha. Se você receber erros referentes ao arquivo de status da pilha, exclua o arquivo e tente realizar 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 seção:

Esquema do 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
name STRING O nome da pilha.
recursos Lista de ResourceConfig Um ativo do Azure Databricks. Os recursos estão relacionados a três serviços (namespaces da API REST): workspace, trabalhos e DBFS.

ResourceConfig

Os campos de 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 de ResourceConfig é imposta.
serviço ResourceService O serviço de API REST no qual o recurso opera. Uma opção entre jobs,
workspace ou dbfs.
properties ResourceProperties Os campos dele são diferentes, dependendo do serviço ResourceConfig.

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 na CLI de pilha Campos usados somente na CLI de pilha
workspace path: STRING – Caminhos de workspace remotos de notebooks ou diretórios. (Ex. /Users/example@example.com/notebook)

object_type: API do Workspace – Tipo de objeto notebook. Só pode ser NOTEBOOK ou DIRECTORY.
source_path: STRING – Caminho de origem local de notebooks ou diretórios do workspace. Um caminho relativo ao arquivo de modelo de configuração de pilha ou um caminho absoluto no sistema de arquivos.
jobs Qualquer campo na estrutura settings ou new_settings. O único campo não obrigatório na estrutura settings ou new_settings, mas obrigatório na CLI de pilha, é:

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

is_dir: BOOL – Indica se um caminho do DBFS é um diretório ou um arquivo.
source_path: STRING – Caminho de origem local de arquivos ou diretórios do DBFS. Um caminho relativo ao arquivo de modelo de configuração de pilha ou um caminho absoluto no sistema de arquivos.

ResourceService

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

Serviço Descrição
workspace Um notebook ou um diretório de workspace.
jobs Um trabalho do Azure Databricks.
dbfs Um arquivo ou um diretório do DBFS.

Esquema de status da pilha

StackStatus

Um arquivo de status da pilha é criado depois que uma pilha é implantada por meio da 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 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 Uma ID exclusiva da pilha para o recurso.
serviço ResourceService O serviço de API REST no qual o recurso opera. Uma opção entre 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 Type Descrição
workspace caminho STRING O caminho absoluto do notebook ou do diretório em um workspace do Azure Databricks. A nomenclatura é consistente com a API de Workspace.
jobs job_id STRING A ID do trabalho, conforme mostrado em um workspace do Azure Databricks. Isso pode ser usado para atualizar os trabalhos já implantados.
dbfs caminho STRING O caminho absoluto do notebook ou do diretório em um workspace do Azure Databricks. A nomenclatura é consistente com a API do DBFS.