Migração da CLI do Databricks
Este artigo descreve como migrar da CLI do Databricks versão 0.18 ou inferior para a CLI do Databricks versão 0.205 ou superior. As versões 0.205 da CLI do Databricks e superiores estão em Versão Prévia Pública.
Para resumir, este artigo refere-se às versões da CLI do Databricks 0.18 e abaixo como a “CLI herdada” e as versões da CLI do Databricks 0.205 e superiores como a “nova” CLI.
Para obter mais informações sobre as CLIs herdada e nova, consulte:
- CLI do Databricks (herdada) para a CLI herdada.
- O que é a CLI do Databricks? para a nova CLI.
Desinstalar a CLI herdada
Se você tiver a CLI herdada instalada e quiser desinstalá-la, use pip
(ou pip3
, dependendo da sua versão do Python) para executar o comando uninstall
da seguinte maneira:
pip uninstall databricks-cli
Instalar a nova CLI
Para saber como instalar a nova CLI, consulte Instalar ou atualizar a CLI do Databricks.
Verificar sua instalação da CLI
Se você não tiver certeza se está usando a nova CLI, siga as instruções nesta seção para verificar e ajustar conforme necessário. Antes de seguir estas instruções, certifique-se de sair de ambientes virtuais do Python, ambientes conda
ou ambientes semelhantes.
Para verificar a versão da instalação padrão da CLI, execute o seguinte comando:
databricks -v
Se o número de versão não for o esperado, siga um destes procedimentos:
- Se você quiser usar apenas uma versão da CLI: desinstale todas as versões anteriores da CLI que não deseja mais usar. Talvez seja necessário atualizar o
PATH
do sistema operacional para que o caminho para a versão restante da CLI que você deseja usar esteja listado. - Se você quiser continuar usando várias versões da CLI: Prefixe o caminho completo à versão da CLI que você deseja usar para cada chamada à CLI.
- Se você quiser continuar usando várias versões da CLI, mas não quiser continuar prefixando o caminho completo à versão da CLI que você usa com mais frequência: verifique se o caminho completo para essa versão está listado primeiro no
PATH
do seu sistema operacional. Observe que você ainda deve preparar o caminho completo para versões da CLI que não estão listadas primeiro noPATH
do sistema operacional.
Para atualizar o PATH
do sistema operacional, faça o seguinte:
MacOS ou Linux
Liste os caminhos em que o
databricks
está instalado executando um dos seguintes comandos:which -a databricks # Or: where databricks
Obtenha o caminho para a instalação que você deseja usar sem acrescentar o caminho completo a cada chamada à CLI. Se você não tiver certeza de qual caminho é esse, execute o caminho completo para cada local, seguido por
-v
, por exemplo:/usr/local/bin/databricks -v
Para colocar o caminho para a instalação que você deseja usar primeiro no seu
PATH
, execute o comando a seguir, substituindo/usr/local/bin
pelo caminho que você deseja usar. Não adicionedatabricks
ao final deste caminho. Por exemplo:export PATH="/usr/local/bin:$PATH"
Para verificar se o
PATH
foi definido corretamente para a sessão do terminal atual, executedatabricks
seguido por-v
e verifique o número de versão:databricks -v
Para definir o
PATH
dessa forma sempre que você reiniciar o terminal, adicione o comando da etapa 3 ao arquivo de inicialização do shell. Por exemplo, para o Zshell, esse arquivo normalmente está localizado em~/.zshrc
. Para o Bash, esse arquivo normalmente está localizado em~/.bashrc
. Para outros shells, consulte a documentação do provedor de shell.Depois de atualizar o arquivo de inicialização do shell, você deve reiniciar o terminal para aplicar o valor
PATH
atualizado.
Windows
Clique com o botão direito do mouse na instalação do
databricks
que você deseja usar sem acrescentar o caminho completo a cada chamada à CLI.Clique em Abrir local do arquivo.
Anote o caminho para
databricks
, por exemploC:\Windows
.No menu Iniciar, pesquise Variáveis de ambiente.
Clique em Editar variáveis de ambiente para sua conta.
Selecione a variável Caminho na seção Variáveis de usuário para
<username>
.Clique em Editar.
Clique em Novo.
Insira o caminho que você deseja adicionar, sem
databricks.exe
(comoC:\Windows
).Use o botão Mover para Cima para mover o caminho que você acabou de adicionar ao início da lista.
Clique em OK.
Para verificar se o
PATH
foi definido corretamente, abra um novo Prompt de Comando, executedatabricks
seguido por-v
e verifique o número de versão:databricks -v
Usar tipos de autenticação adicionais
A CLI herdada e a nova CLI dão suporte à autenticação de token de acesso pessoal do Azure Databricks. No entanto, o Databricks recomenda que você use outros tipos de autenticação do Azure Databricks, se possível, aos quais só a nova CLI dá suporte.
Se você precisar usar a autenticação de token de acesso pessoal do Azure Databricks, o Databricks recomenda que você use uma associada a uma entidade de serviço em vez de associada a uma conta do Azure Databricks ou a um usuário do workspace. Confira Gerenciar entidades de serviço.
Além dos tokens de acesso pessoal do Azure Databricks, a nova CLI dá suporte aos tokens do Microsoft Entra ID. Esses tokens adicionais são mais seguros, pois normalmente expiram em uma hora, enquanto os tokens de acesso pessoal do Azure Databricks podem ser válidos de um dia até indefinidamente. Isso é especialmente importante se um token for verificado acidentalmente em sistemas de controle de versão que podem ser acessados por outras pessoas. Além disso, a nova CLI pode atualizar automaticamente esses tokens adicionais quando eles expiram, enquanto atualizar tokens de acesso pessoal do Azure Databricks é um processo manual ou pode ser difícil de automatizar.
Para obter mais informações, consulte Autenticação para a CLI do Databricks.
Grupo de comandos e comparações entre os comandos
A tabela a seguir lista os grupos de comandos da CLI herdada e seus de grupo de comandos equivalentes na nova CLI. Quando existem diferenças significativas entre as CLIs, tabelas adicionais listam comandos ou opções da CLI herdada e seus comandos ou opção equivalentes da nova CLI.
Grupos de comandos
Grupo de comandos herdado | Novo grupo de comandos |
---|---|
cluster-policies |
cluster-policies . Todos os nomes de comando são os mesmos. |
clusters |
clusters . Todos os nomes de comando são os mesmos. |
configure |
configure . Consulte configurar opções. |
fs |
fs . Consulte comandos fs. |
groups |
groups . Consulte comandos de grupos. |
instance-pools |
instance-pools . Todos os nomes de comando são os mesmos. |
jobs |
jobs . Todos os nomes de comando são os mesmos. |
libraries |
libraries . Todos os nomes de comando são os mesmos, com exceção de list . O comando list não está mais disponível; use os comandos all-cluster-statuses ou cluster-status . |
pipelines |
pipelines . Consulte comandos de pipelines. |
repos |
repos . Todos os nomes de comando são os mesmos. |
runs |
jobs . Consulte comandos de execuções. |
secrets |
secrets . Consulte comandos de segredos. |
stack |
Não disponível na nova CLI. Em seu lugar, o Databricks recomenda que você use o provedor Terraform do Databricks. |
tokens |
tokens . Consulte comandos de tokens. |
unity-catalog |
Vários. Consulte grupos de comandos unity-catalog. |
workspace |
workspace . Consulte comandos de workspace. |
configure
options
Opção herdada | Nova opção |
---|---|
-o |
A CLI herdada usa -o para a autenticação OAuth. A nova CLI reaproveitou -o para especificar se a saída da CLI está no formato de texto ou JSON. Não aplicável ao Azure Databricks. |
--oauth |
Não aplicável ao Azure Databricks. |
-s ou --scope |
Não aplicável ao Azure Databricks. |
-t ou --token |
-t ou --token (igual) |
-f ou --token-file |
Não disponível na nova CLI. |
--host |
--host (igual) |
--aad-token |
Use --host e especifique um token do Microsoft Entra ID, em vez de um token de acesso pessoal do Azure Databricks, em caso de solicitação. |
--insecure |
Não disponível na nova CLI. |
--jobs-api-version |
Não disponível na nova CLI. A nova CLI usa apenas a API de Trabalhos 2.1. Para chamar a API de Trabalhos herdada 2.0, use a CLI herdada e consulte CLI de trabalhos (herdada). |
--debug |
Para depuração e registro em log na nova CLI, confira Modo de depuração. |
--profile |
--profile (igual) ou -p |
-h ou --help |
-h ou --help (igual) |
Comandos de fs
Todos os comandos fs
na CLI herdada são os mesmos na nova CLI, com exceção de fs mv
, que não está disponível na nova CLI.
Comando herdado | Novo comando |
---|---|
fs cat |
fs cat (igual) |
fs cp |
fs cp (igual) |
fs ls |
fs ls (igual) |
fs mkdirs |
fs mkdir |
fs mv |
Não disponível na nova CLI. |
fs rm |
fs rm (igual) |
Comandos de groups
Comando herdado | Novo comando |
---|---|
groups add-member |
groups patch |
groups create |
groups create (igual) |
groups delete |
groups delete (igual) |
groups list |
groups list (igual) |
groups list-members |
groups list |
groups list-parents |
groups list |
groups remove-member |
groups patch |
Comandos de pipelines
Comando herdado | Novo comando |
---|---|
pipelines create |
pipelines create (igual) |
pipelines delete |
pipelines delete (igual) |
pipelines deploy |
pipelines create |
pipelines edit |
pipelines update |
pipelines get |
pipelines get (igual) |
pipelines list |
pipelines list-pipeline-events ou pipelines list-pipelines ou pipelines list-updates |
pipelines reset |
pipelines reset (igual) |
pipelines start |
pipelines start update |
pipelines stop |
pipelines stop (igual) |
pipelines update |
pipelines update (igual) |
Comandos de runs
Comando herdado | Novo comando |
---|---|
runs cancel |
jobs cancel-run |
runs get |
jobs get-run |
runs get-output |
jobs get-run-output |
runs list |
jobs list-runs |
runs submit |
jobs submit |
Comandos de secrets
Comando herdado | Novo comando |
---|---|
secrets create-scope |
secrets create-scope (igual) |
secrets delete |
secrets delete-secret |
secrets delete-acl |
secrets delete-acl (igual) |
secrets delete-scope |
secrets delete-scope (igual) |
secrets get-acl |
secrets get-acl (igual) |
secrets list |
secrets list-secrets |
secrets list-acls |
secrets list-acls (igual) |
secrets list-scopes |
secrets list-scopes (igual) |
secrets put |
secrets put-secret |
secrets put-acl |
secrets put-acl (igual) |
secrets write |
secrets put-secret |
secrets write-acl |
secrets put-acl |
Comandos de tokens
Comando herdado | Novo comando |
---|---|
tokens create |
tokens create (igual) |
tokens list |
tokens list (igual) |
tokens revoke |
tokens delete |
Grupos de comandos unity-catalog
unity-catalog <command>
na CLI herdada torna-se apenas <command>
na nova CLI.
Grupo de comandos herdado | Novo grupo de comandos |
---|---|
unity-catalog catalogs |
catalogs (igual, mas removaunity-catalog ) |
unity-catalog external-locations |
external-locations (igual, mas remova unity-catalog ) |
unity-catalog lineage |
Não disponível na nova CLI. Veja Recuperar a linhagem usando a API REST Data Lineage. |
unity-catalog metastores |
metastores (igual, mas remova unity-catalog ) |
unity-catalog permissions |
grants |
unity-catalog providers |
providers (igual, mas remova unity-catalog ) |
unity-catalog recipients |
recipients (igual, mas remova unity-catalog ) |
unity-catalog schemas |
schemas (igual, mas remova unity-catalog ) |
unity-catalog shares |
shares (igual, mas remova unity-catalog ) |
unity-catalog storage-credentials |
storage-credentials (igual, mas remova unity-catalog ) |
unity-catalog tables |
tables (igual, mas remova unity-catalog ) |
Comandos de workspace
Comando herdado | Novo comando |
---|---|
workspace delete |
workspace delete (igual) |
workspace export |
workspace export (igual) |
workspace export-dir |
workspace export |
workspace import |
workspace import (igual) |
workspace import-dir |
workspace import |
workspace list |
workspace list (igual) |
workspace ls |
workspace list |
workspace mkdirs |
workspace mkdirs (igual) |
workspace rm |
workspace delete |
Argumentos padrão e posicionais
A maioria dos comandos da nova CLI tem pelo menos um argumento padrão que não tem uma opção de acompanhamento. Alguns comandos da nova CLI têm dois ou mais argumentos posicionais que devem ser especificados em uma ordem específica e que não têm opções de acompanhamento. Isso é diferente da CLI herdada, na qual a maioria dos comandos exige que as opções sejam especificadas para todos os argumentos. Por exemplo, o comando clusters get
da nova CLI usa uma ID de cluster como um argumento padrão. No entanto, o comando clusers get
da CLI herdada exige que você especifique uma opção --cluster-id
junto com a ID do cluster. Por exemplo:
Para a CLI herdada:
# This works with the legacy CLI.
databricks clusters get --cluster-id 1234-567890-a1b23c4d
# This does **not** work with the legacy CLI - "Error:
# Missing None. One of ['cluster-id', 'cluster-name'] must be provided."
databricks clusters get 1234-567890-a1b23c4d
Para a nova CLI:
# This works with the new CLI.
databricks clusters get 1234-567890-a1b23c4d
# This does **not** work with the new CLI - "Error: unknown flag: --cluster-id"
databricks clusters get --cluster-id 1234-567890-a1b23c4d
Como outro exemplo, o comando grants get
da nova CLI usa dois argumentos padrão: o tipo protegível seguido pelo nome completo do protegível. No entanto, o comando unity-catalog permissions get
da CLI herdada exige que você especifique uma opção --<securable-type>
junto com a ID do cluster. Por exemplo:
Para a CLI herdada:
databricks unity-catalog permissions get --schema main.default
Para a nova CLI:
# This works with the new CLI.
databricks grants get schema main.default
# This does **not** work with the new CLI - "Error: unknown flag: --schema"
databricks grants get --schema main.default
Modo de depuração
A CLI herdada fornece uma opção --debug
para mostrar o rastreamento de pilha completo em caso de erro. Para a nova CLI, a opção --debug
não é reconhecida. Em vez disso, realize as etapas a seguir:
- Use
--log-file <path>
para gravar informações de log no arquivo especificado em<path>
. Se essa opção não for fornecida, as informações de log serão apresentadas para stderr. Especificar--log-file
sem especificar--log-level
também resulta em nenhuma informação de log sendo gravada no arquivo. - Use
--log-format <type>
para especificar o formato das informações registradas.<type>
pode sertext
(o padrão, se não especificado) oujson
. - Use
--log-level <format>
para especificar o nível de informações registradas. Os valores permitidos sãodisabled
(o padrão, se não especificado),trace
,debug
,info
,warn
eerror
.
Para a CLI herdada, o exemplo a seguir mostra o rastreamento de pilha completo em caso de erro:
databricks fs ls / --debug
# Output:
#
# HTTP debugging enabled
# NoneType: None
# Error: The path / must start with "dbfs:/"
Para a nova CLI, o exemplo a seguir registra o rastreamento de pilha completo em um arquivo chamado new-cli-errors.log
no diretório de trabalho atual. O rastreamento de pilha é gravado no arquivo no formato JSON:
databricks fs ls / --log-file new-cli-errors.log --log-format json --log-level trace
# Output:
#
# Error: expected dbfs path (with the dbfs:/ prefix): /
#
# (The full stack trace is also written to the new-cli-errors.log file.)
Perguntas comuns
Esta seção lista as perguntas comuns sobre como migrar da CLI herdada para a nova.
O que está acontecendo com a CLI herdada?
A CLI herdada ainda está disponível, mas não está recebendo atualizações não críticas. A documentação da CLI herdada reflete isso. O Databricks recomenda que os usuários migrem para a nova CLI o mais rápido possível.
A CLI herdada sempre esteve em um estado experimental com um aviso de isenção de responsabilidade de que o Databricks não planeja nenhum novo trabalho de recurso para a CLI herdada, e a CLI herdada não tem suporte por meio de canais de suporte do Databricks.
Quando a CLI herdada será preterida?
A CLI herdada sempre esteve em um estado experimental com um aviso de isenção de responsabilidade de que o Databricks não planeja nenhum novo trabalho de recurso para a CLI herdada, e a CLI herdada não tem suporte por meio de canais de suporte do Databricks.
O Databricks não estabeleceu uma data ou linha do tempo para preterir a CLI herdada. No entanto, o Databricks recomenda que os usuários migrem para a nova CLI assim que possível.
Quando a nova CLI será lançada em GA (disponibilidade geral)?
Uma data de lançamento ou linha do tempo para lançar a nova CLI em GA não foi estabelecida. Isso dependerá dos comentários que o Databricks recebe dos usuários durante a Visualização Pública.
Quais são as principais diferenças entre a CLI herdada e a nova?
- A CLI herdada foi lançada como um pacote Python. A nova CLI é lançada como um executável autônomo e não precisa de dependências de runtime instaladas.
- A nova CLI tem cobertura completa das APIs REST do Databricks. A CLI herdada não tem.
- A nova CLI está disponível em Visualização Pública. A CLI herdada permanece em estado experimental.
A nova CLI tem paridade completa de recursos com a CLI herdada?
A nova CLI tem cobertura para quase todos os comandos da CLI herdada. No entanto, notavelmente ausente da nova CLI é o grupo de comandos stacks
da CLI herdada. Além disso, alguns grupos de comandos da CLI herdada, como unity-catalog
e runs
, por exemplo, foram refatorados em novos grupos de comandos na nova CLI. Para obter diretrizes de migração, consulte as informações fornecidas anteriormente neste artigo.
Como fazer para migrar da CLI herdada para a nova?
Para obter diretrizes de migração, consulte as informações fornecidas anteriormente neste artigo. Observe que a nova CLI não é uma substituição suspensa para a CLI herdada e requer alguma configuração para passar do herdado para a nova CLI.
As instalações da CLI herdada e a da nova podem existir no mesmo computador?
Sim. As instalações da CLI herdada e a da nova podem existir no mesmo computador, mas devem estar localizadas em diretórios diferentes. Como os executáveis são ambos chamados databricks
, você deve controlar qual executável é executado por padrão, configurando o PATH
do computador. Se você quiser executar a nova CLI, mas de alguma forma executar acidentalmente a CLI herdada, por padrão, a CLI herdada executará a nova CLI com os mesmos argumentos e mostrará a seguinte mensagem de aviso:
Databricks CLI <new-version-number> found at <new-path>
Your current PATH prefers running CLI <old-version-number> at <old-path>
Because both are installed and available in PATH,
I assume you are trying to run the newer version.
If you want to disable this behavior you can set DATABRICKS_CLI_DO_NOT_EXECUTE_NEWER_VERSION=1.
Executing CLI <new-version-number>...
-------------------------------------
Databricks CLI <new-version-number>
Conforme mostrado na mensagem de aviso anterior, você pode definir a variável de ambiente DATABRICKS_CLI_DO_NOT_EXECUTE_NEWER_VERSION
como 1
para desabilitar esse comportamento e executar a CLI herdada.
Obter ajuda
Para obter ajuda com a migração da CLI herdada para a nova CLI, consulte os seguintes recursos: