Databricks SQL CLI
Este artigo cobre o site Databricks SQL CLI, que é fornecido no estado em que se encontra e não é suportado pelo Databricks por meio do canal do cliente do suporte técnico. Perguntas e solicitações de recurso podem ser comunicadas por meio da página Issues do repositório databricks/databricks-sql-CLI em GitHub.
A Databricks SQL interface de linha do comando () permiteDatabricks SQL CLI que o SQL senhor execute consultas em seus Databricks SQL armazéns existentes a partir do terminal ou Windows do Prompt de comando em vez de locais como o Databricks SQL editor ou um Databricks Notebook. Na linha de comando, o senhor obtém recursos de produtividade, como sugestões e realce de sintaxe.
Requisitos
- Pelo menos um Databricks SQL armazém. Crie um depósito, se você ainda não tiver um.
- Python 3.7 ou superior. Para verificar se o senhor tem o site Python instalado, execute o comando
python --version
no terminal ou no prompt de comando. (Em alguns sistemas, talvez seja necessário inserirpython3
em vez disso.) Instale o Python, se o senhor ainda não o tiver instalado. - pip, o instalador do pacote para Python. As versões mais recentes de Python instalam
pip
por default. Para verificar se o senhor tem o sitepip
instalado, execute o comandopip --version
no terminal ou no prompt de comando. (Em alguns sistemas, talvez seja necessário inserirpip3
em vez disso.) Instale o pip, se você ainda não o tiver instalado. - (Opcional) Um utilitário para criar e gerenciar Python ambientes virtuais, como o venv. Os ambientes virtuais ajudam a garantir que o senhor esteja usando as versões corretas do Python e do Databricks SQL CLI juntos. A configuração e o uso de ambientes virtuais estão fora do escopo deste artigo. Para obter mais informações, consulte Criação de ambientes virtuais.
Instalar o Databricks SQL CLI
Depois de atender aos requisitos, instale o pacote Databricks SQL CLI a partir do Python Packaging Index (PyPI). O senhor pode usar pip
para instalar o pacote Databricks SQL CLI a partir de PyPI executando pip
com um dos seguintes comandos.
pip install databricks-sql-cli
# Or...
python -m pip install databricks-sql-cli
Para atualizar uma versão previamente instalada do Databricks SQL CLI, execute pip
com um dos seguintes comandos.
pip install databricks-sql-cli --upgrade
# Or...
python -m pip install databricks-sql-cli --upgrade
Para verificar a versão instalada do site Databricks SQL CLI execute pip
com um dos seguintes comandos.
pip show databricks-sql-cli
# Or...
python -m pip show databricks-sql-cli
Autenticação
Para autenticar, o senhor deve fornecer à CLI do Databricks SQL os detalhes de conexão do seu depósito. Especificamente, você precisa dos valores do nome do host do servidor e do caminho HTTP . O senhor também deve fornecer o Databricks SQL CLI com as credenciais de autenticação adequadas.
O Databricks SQL CLI oferece suporte a dois tipos de autenticação Databricks: Databricks autenticação de tokens de acesso pessoal e, para Databricks SQL CLI versões 0.2.0 e acima, OAuth autenticação de usuário para máquina (U2M). A Databricks recomenda que o senhor use o OAuth para obter maior segurança e facilidade de uso.
Para usar a autenticação de tokens de acesso pessoal Databricks, o senhor deve criar um token de acesso pessoal. Para obter detalhes sobre esse processo, consulte Databricks autenticação de tokens de acesso pessoal.
Não há requisitos de configuração para usar a autenticação OAuth U2M.
O senhor pode fornecer essas informações de autenticação para o Databricks SQL CLI de várias maneiras:
- No arquivo de configurações
dbsqlclirc
em seu local default (ou especificando um arquivo de configurações alternativo por meio da opção--clirc
toda vez que o senhor executar um comando com o Databricks SQL CLI). Consulte Arquivo de configurações. - Para Databricks autenticação de tokens de acesso pessoal, definindo as variáveis de ambiente
DBSQLCLI_HOST_NAME
,DBSQLCLI_HTTP_PATH
eDBSQLCLI_ACCESS_TOKEN
. Ver variável de ambiente. - Para Databricks OAuth autenticação U2M, definindo as variáveis de ambiente
DBSQLCLI_HOST_NAME
eDBSQLCLI_HTTP_PATH
e especificando a opção--oauth
comando-line ou definindoauth_type = "databricks-oauth"
no arquivo de configuraçõesdbsqlclirc
. Ver variável de ambiente. - Para a autenticação de tokens de acesso pessoal Databricks, especifique as opções
--hostname
,--http-path
e--access-token
sempre que executar um comando com o Databricks SQL CLI. Consulte Opções de comando. - Para a autenticação Databricks OAuth U2M, especificando as opções
--hostname
e--http-path
comando-line e especificando a opção--oauth
comando-line ou definindoauth_type = "databricks-oauth"
no arquivo de configuraçõesdbsqlclirc
, toda vez que o senhor executar um comando com o Databricks SQL CLI. Consulte Opções de comando.
O arquivo de configurações dbsqlclirc
deve estar presente, mesmo que o senhor defina a variável de ambiente anterior ou especifique as opções de comando anteriores ou ambas.
Sempre que o senhor executa o Databricks SQL CLI, ele procura os detalhes de autenticação na seguinte ordem e para quando encontra o primeiro conjunto de detalhes:
- As opções
--hostname
,--http-path
e--access-token
ou--oauth
. - As variáveis de ambiente
DBSQLCLI_HOST_NAME
eDBSQLCLI_HTTP_PATH
(e, para autenticação de tokens de acesso pessoal Databricks, a variável de ambienteDBSQLCLI_ACCESS_TOKEN
). - O arquivo de configurações
dbsqlclirc
em seu local default (ou um arquivo de configurações alternativo especificado pela opção--clirc
).
Arquivo de configurações
Para usar o arquivo de configurações dbsqlclirc
para fornecer ao Databricks SQL CLI os detalhes de autenticação do seu depósito Databricks SQL, execute o Databricks SQL CLI pela primeira vez, como segue:
dbsqlcli
A CLI do Databricks SQL cria um arquivo de configurações para o senhor, em ~/.dbsqlcli/dbsqlclirc
no Unix, Linux e macOS, e em %HOMEDRIVE%%HOMEPATH%\.dbsqlcli\dbsqlclirc
ou %USERPROFILE%\.dbsqlcli\dbsqlclirc
no Windows. Para personalizar esse arquivo:
-
Use um editor de texto para abrir e editar o arquivo
dbsqlclirc
. -
Role até a seção a seguir:
# [credentials]
# host_name = ""
# http_path = ""
# access_token = "" -
Remova os quatro caracteres
#
e:-
Ao lado de
host_name
, insira o valor do nome de host do servidor do seu depósito a partir dos requisitos entre os caracteres""
. -
Ao lado de
http_path
, insira o valor do caminho HTTP do seu depósito a partir dos requisitos entre os caracteres""
. -
Ao lado de
access_token
, digite o valor de seus tokens de acesso pessoal a partir dos requisitos entre os caracteres""
.
-
Para a autenticação Databricks OAuth U2M, o senhor deve substituir access_token
por auth_type = "databricks-oauth"
ou especificar a opção de linha de comando --oauth
em cada chamada para a CLI do Databricks SQL.
Por exemplo:
[credentials]
host_name = "dbc-a1b2345c-d6e78.cloud.databricks.com"
http_path = "/sql/1.0/warehouses/1abc2d3456e7f890a"
access_token = "dapi12345678901234567890123456789012"
- Salve o arquivo
dbsqlclirc
.
Como alternativa, em vez de usar o arquivo dbsqlclirc
em seu local default, o senhor pode especificar um arquivo em um local diferente adicionando a opção de comando --clirc
e o caminho para o arquivo alternativo. O conteúdo desse arquivo alternativo deve estar em conformidade com a sintaxe anterior.
variável de ambiente
Para usar as variáveis de ambiente DBSQLCLI_HOST_NAME
e DBSQLCLI_HTTP_PATH
(e, para autenticação de tokens de acesso pessoal Databricks, a variável de ambiente DBSQLCLI_ACCESS_TOKEN
) para fornecer ao Databricks SQL CLI os detalhes de autenticação do seu depósito Databricks SQL, faça o seguinte.
Para a autenticação Databricks OAuth U2M, o senhor deve definir auth_type = "databricks-oauth"
no arquivo de configurações dbsqlclirc
ou especificar a opção de comando --oauth
em cada chamada para a CLI do Databricks SQL.
- Unix, Linux, and macOS
- Windows
To set the environment variables for only the current terminal session, run the following commands. To set the environment variables for all terminal sessions, enter the following commands into your shell’s startup file and then restart your terminal. In the following commands, replace the value of:
DBSQLCLI_HOST_NAME
with your warehouse’s Server hostname value from the requirements.DBSQLCLI_HTTP_PATH
with your warehouse’s HTTP path value from the requirements.DBSQLCLI_ACCESS_TOKEN
with your personal access token value from the requirements.
export DBSQLCLI_HOST_NAME="dbc-a1b2345c-d6e78.cloud.databricks.com"
export DBSQLCLI_HTTP_PATH="/sql/1.0/warehouses/1abc2d3456e7f890a"
export DBSQLCLI_ACCESS_TOKEN="dapi12345678901234567890123456789012"
To set the environment variables for only the current Command Prompt session, run the following commands, replacing the value of:
DBSQLCLI_HOST_NAME
with your warehouse’s Server hostname value from the requirements.DBSQLCLI_HTTP_PATH
with your warehouse’s HTTP path value from the requirements.DBSQLCLI_ACCESS_TOKEN
with your personal access token value from the requirements.:
set DBSQLCLI_HOST_NAME="dbc-a1b2345c-d6e78.cloud.databricks.com"
set DBSQLCLI_HTTP_PATH="/sql/1.0/warehouses/1abc2d3456e7f890a"
set DBSQLCLI_ACCESS_TOKEN="dapi12345678901234567890123456789012"
To set the environment variables for all Command Prompt sessions, run the following commands and then restart your Command Prompt, replacing the value of:
DBSQLCLI_HOST_NAME
with your warehouse’s Server hostname value from the requirements.DBSQLCLI_HTTP_PATH
with your warehouse’s HTTP path value from the requirements.DBSQLCLI_ACCESS_TOKEN
with your personal access token value from the requirements.
setx DBSQLCLI_HOST_NAME "dbc-a1b2345c-d6e78.cloud.databricks.com"
setx DBSQLCLI_HTTP_PATH "/sql/1.0/warehouses/1abc2d3456e7f890a"
setx DBSQLCLI_ACCESS_TOKEN "dapi12345678901234567890123456789012"
Opções de comando
Para usar as opções --hostname
, --http-path
e --access-token
ou --oauth
para fornecer à CLI do Databricks SQL os detalhes de autenticação do seu depósito do Databricks SQL, faça o seguinte:
Faça o seguinte sempre que o senhor executar um comando com o Databricks SQL CLI:
-
Especifique a opção
--hostname
e o valor do nome de host do servidor do seu depósito a partir dos requisitos. -
Especifique a opção
--http-path
e o valor do caminho HTTP do seu depósito a partir dos requisitos. -
Para autenticação de tokens de acesso pessoal Databricks, especifique a opção
--access-token
e o valor dos tokens de acesso pessoal dos requisitos. -
Para a autenticação OAuth U2M da Databricks, especifique
--oauth
.
Para a autenticação Databricks OAuth U2M, o senhor deve especificar o endereço auth_type = "databricks-oauth"
no arquivo de configurações dbsqlclirc
ou especificar a opção de comando --oauth
em cada chamada para a CLI do Databricks SQL.
Por exemplo:
Para Databricks autenticação de tokens de acesso pessoal:
dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2" \
--hostname "dbc-a1b2345c-d6e78.cloud.databricks.com" \
--http-path "/sql/1.0/warehouses/1abc2d3456e7f890a" \
--access-token "dapi12345678901234567890123456789012"
Para a autenticação OAuth U2M da Databricks:
dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2" \
--hostname "dbc-a1b2345c-d6e78.cloud.databricks.com" \
--http-path "/sql/1.0/warehouses/1abc2d3456e7f890a" \
--oauth
Fontes de consulta
O site Databricks SQL CLI permite que o senhor execute consultas das seguintes maneiras:
- De uma string de consulta.
- De um arquivo.
- Em uma abordagem de loop de leitura, avaliação e impressão (REPL). Essa abordagem fornece sugestões à medida que você digita.
Strings de consulta
Para executar uma consulta como uma cadeia de caracteres, use a opção -e
seguida da consulta, representada como uma cadeia de caracteres. Por exemplo:
dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2"
Saída:
_c0,carat,cut,color,clarity,depth,table,price,x,y,z
1,0.23,Ideal,E,SI2,61.5,55,326,3.95,3.98,2.43
2,0.21,Premium,E,SI1,59.8,61,326,3.89,3.84,2.31
Para alternar os formatos de saída, use a opção --table-format
junto com um valor como ascii
para formato de tabela ASCII, por exemplo:
dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2" --table-format ascii
Saída:
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| _c0 | carat | cut | color | clarity | depth | table | price | x | y | z |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| 1 | 0.23 | Ideal | E | SI2 | 61.5 | 55 | 326 | 3.95 | 3.98 | 2.43 |
| 2 | 0.21 | Premium | E | SI1 | 59.8 | 61 | 326 | 3.89 | 3.84 | 2.31 |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
Para obter uma lista dos valores de formato de saída disponíveis, consulte os comentários sobre a configuração table_format
no arquivo dbsqlclirc
.
Arquivo
Para executar um arquivo que contenha SQL, use a opção -e
seguida do caminho para um arquivo .sql
. Por exemplo:
dbsqlcli -e my-query.sql
Conteúdo do arquivo de exemplo my-query.sql
:
SELECT * FROM default.diamonds LIMIT 2;
Saída:
_c0,carat,cut,color,clarity,depth,table,price,x,y,z
1,0.23,Ideal,E,SI2,61.5,55,326,3.95,3.98,2.43
2,0.21,Premium,E,SI1,59.8,61,326,3.89,3.84,2.31
Para alternar os formatos de saída, use a opção --table-format
junto com um valor como ascii
para formato de tabela ASCII, por exemplo:
dbsqlcli -e my-query.sql --table-format ascii
Saída:
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| _c0 | carat | cut | color | clarity | depth | table | price | x | y | z |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| 1 | 0.23 | Ideal | E | SI2 | 61.5 | 55 | 326 | 3.95 | 3.98 | 2.43 |
| 2 | 0.21 | Premium | E | SI1 | 59.8 | 61 | 326 | 3.89 | 3.84 | 2.31 |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
Para obter uma lista dos valores de formato de saída disponíveis, consulte os comentários sobre a configuração table_format
no arquivo dbsqlclirc
.
RESPONDER
Para entrar no modo REPL (read-evaluate-print loop) com escopo para o banco de dados default, execute o seguinte comando:
dbsqlcli
O senhor também pode entrar no modo REPL com escopo de um banco de dados específico, executando o seguinte comando:
dbsqlcli <database-name>
Por exemplo:
dbsqlcli default
Para sair do modo REPL, execute o seguinte comando:
exit
No modo REPL, o senhor pode usar os seguintes caracteres e teclas:
- Use o ponto e vírgula (
;
) para finalizar uma linha. - Use F3 para alternar o modo multilinha.
- Use a barra de espaço para mostrar sugestões no ponto de inserção, se as sugestões ainda não estiverem exibidas.
- Use as setas para cima e para baixo para navegar pelas sugestões.
- Use a seta para a direita para concluir a sugestão destacada.
Por exemplo:
dbsqlcli default
hostname:default> SELECT * FROM diamonds LIMIT 2;
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| _c0 | carat | cut | color | clarity | depth | table | price | x | y | z |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| 1 | 0.23 | Ideal | E | SI2 | 61.5 | 55 | 326 | 3.95 | 3.98 | 2.43 |
| 2 | 0.21 | Premium | E | SI1 | 59.8 | 61 | 326 | 3.89 | 3.84 | 2.31 |
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
2 rows in set
Time: 0.703s
hostname:default> exit
Registro
O Databricks SQL CLI logs suas mensagens para o arquivo ~/.dbsqlcli/app.log
pelo default. Para alterar o nome ou o local desse arquivo, altere o valor da configuração log_file
no arquivo de configurações dbsqlclirc
.
Em default, as mensagens são registradas no nível INFO
log e abaixo. Para alterar o nível do log, altere o valor da configuração log_level
no arquivo de configurações dbsqlclirc
. Os valores de nível disponíveis em log incluem CRITICAL
, ERROR
, WARNING
, INFO
e DEBUG
e são avaliados nessa ordem. NONE
desativa o registro.