CLI de Databricks SQL
Nota:
Este artículo trata sobre CLI de Databricks SQL que proporciona tal cual y no tiene soporte técnico de Databricks mediante los canales de soporte técnico al cliente. Las preguntas y las solicitudes de características se pueden comunicar mediante la página Problemas del repositorio databricks/databricks-sql-cli de GitHub.
La interfaz de la línea de comandos de Databricks SQL (CLI de Databricks SQL) permite ejecutar consultas SQL en los almacenes de Databricks SQL existentes desde el terminal o el símbolo del sistema de Windows en lugar de desde ubicaciones como el editor de Databricks SQL o un cuaderno de Azure Databricks. Desde la línea de comandos, dispondrá de características de productividad como sugerencias y resaltado de sintaxis.
Requisitos
- Al menos un almacén de Databricks SQL. Cree un almacén si aún no tiene uno.
- Python 3.7 o versiones posteriores. Para comprobar si tiene Python instalado, ejecute el comando
python --version
desde el terminal o el símbolo del sistema. (En algunos sistemas, es posible que tenga que escribirpython3
en su lugar). Instale Python si aún no lo tiene instalado. - pip, el instalador de paquetes pip de Python. Las versiones más recientes de Python instalan
pip
de manera predeterminada. Para comprobar si tienepip
instalado, ejecute el comandopip --version
desde el terminal o el símbolo del sistema. (En algunos sistemas, es posible que tenga que escribirpip3
en su lugar). Instale pip si aún no lo tiene instalado. - (Opcional) Una utilidad para crear y administrar entornos virtuales de Python, como venv. Los entornos virtuales ayudan a garantizar que usa las versiones correctas de Python y la CLI de Databricks SQL juntos. La configuración y el uso de entornos virtuales están fuera del ámbito de este artículo. Para más información, consulte Creación de entornos virtuales.
Instalación de la CLI de Databricks SQL
Cuando cumpla los requisitos, instale el paquete de la CLI de Databricks SQL desde el índice de empaquetado de Python (PyPI). Puede usar pip
para instalar el paquete de la CLI de Databricks SQL desde PyPI mediante la ejecución de pip
con uno de los comandos siguientes.
pip install databricks-sql-cli
# Or...
python -m pip install databricks-sql-cli
Para actualizar una versión instalada anteriormente de la CLI de Databricks SQL, ejecute pip
con uno de los comandos siguientes.
pip install databricks-sql-cli --upgrade
# Or...
python -m pip install databricks-sql-cli --upgrade
Para comprobar la versión instalada de la CLI de Databricks SQL, ejecute pip
con uno de los siguientes comandos.
pip show databricks-sql-cli
# Or...
python -m pip show databricks-sql-cli
Autenticación
Para autenticarse, debe proporcionar la CLI de Databricks SQL con los detalles de conexión del almacenamiento. Específicamente, necesitará los valores del nombre de host del servidor y la ruta de acceso HTTP. También debe generar la CLI de Databricks SQL con las credenciales de autenticación adecuadas.
La CLI de SQL de Databricks admite tokens de acceso personal (PAT) de Databricks. Para usar la autenticación pat de Azure Databricks, debe crear un token de acceso personal. Para más información sobre este proceso, consulte Autenticación de tokens de acceso personal de Azure Databricks.
No se admiten tokens de Microsoft Entra ID.
Puede proporcionar esta información de autenticación a la CLI de Databricks SQL de varias maneras:
- En el archivo de configuración
dbsqlclirc
en su ubicación predeterminada (o especificando un archivo de configuración alternativo mediante la opción--clirc
cada vez que ejecute un comando con la CLI de Databricks SQL). Consulte Archivo de configuración. - Mediante el establecimiento de las variables de entorno
DBSQLCLI_HOST_NAME
,DBSQLCLI_HTTP_PATH
yDBSQLCLI_ACCESS_TOKEN
. Consulte Variables de entorno. - Mediante la especificación de las opciones
--hostname
,--http-path
y--access-token
cada vez que ejecute un comando con la CLI de Databricks SQL. Consulte Opciones de comandos.
Nota:
El archivo de configuración dbsqlclirc
debe estar presente, incluso si establece las variables de entorno anteriores o especifica las opciones de comando anteriores o ambas.
Cada vez que ejecute la CLI de Databricks SQL, esta busca los detalles de autenticación en el orden siguiente y se detiene cuando encuentra el primer conjunto de detalles:
- Las opciones
--hostname
,--http-path
y--access-token
. - Las variables de entorno
DBSQLCLI_HOST_NAME
,DBSQLCLI_HTTP_PATH
yDBSQLCLI_ACCESS_TOKEN
. - El archivo de configuración
dbsqlclirc
en su ubicación predeterminada (o un archivo de configuración alternativo especificado mediante la opción--clirc
).
Archivo de configuración
Para usar el archivo de configuración dbsqlclirc
para proporcionar a la CLI de Databricks SQL los detalles de autenticación del almacén de Databricks SQL, ejecute la CLI de Databricks SQL por primera vez, como se indica a continuación:
dbsqlcli
La CLI de Databricks SQL crea un archivo de configuración automáticamente, en ~/.dbsqlcli/dbsqlclirc
para Unix, Linux y macOS, y en %HOMEDRIVE%%HOMEPATH%\.dbsqlcli\dbsqlclirc
o %USERPROFILE%\.dbsqlcli\dbsqlclirc
para Windows. Para personalizar este archivo:
Use un editor de texto para abrir y editar el archivo
dbsqlclirc
.Desplácese hasta la sección siguiente:
# [credentials] # host_name = "" # http_path = "" # access_token = ""
Quite los cuatro caracteres
#
y:- Junto a
host_name
, escriba el valor del nombre de host del servidor del almacén según los requisitos entre los caracteres""
. - Junto a
http_path
, escriba el valor de la ruta de acceso HTTP del almacén según los requisitos entre los caracteres""
. - Junto a
access_token
, escriba el valor del token de acceso personal según los requisitos entre los caracteres""
.
Por ejemplo:
[credentials] host_name = "adb-12345678901234567.8.azuredatabricks.net" http_path = "/sql/1.0/warehouses/1abc2d3456e7f890a" access_token = "dapi12345678901234567890123456789012"
- Junto a
Guarde el archivo
dbsqlclirc
.
Como alternativa, en lugar de usar el archivo dbsqlclirc
en su ubicación predeterminada, puede especificar un archivo en otra ubicación agregando la opción de comando --clirc
y la ruta de acceso al archivo alternativo. El contenido de ese archivo alternativo debe ajustarse a la sintaxis anterior.
Variables de entorno
Para usar las variables de entorno DBSQLCLI_HOST_NAME
, DBSQLCLI_HTTP_PATH
y DBSQLCLI_ACCESS_TOKEN
para proporcionar a la CLI de Databricks SQL los detalles de autenticación del almacén de Databricks SQL, haga lo siguiente:
Unix, Linux y macOS
Para establecer las variables de entorno solo para la sesión de terminal actual, ejecute los siguientes comandos. Para establecer las variables de entorno para todas las sesiones de terminal, escriba los siguientes comandos en el archivo de inicio del shell y reinicie el terminal. En los siguientes comandos, reemplace el valor de:
DBSQLCLI_HOST_NAME
por el valor del nombre de host del servidor del almacén según los requisitos.DBSQLCLI_HTTP_PATH
por el valor de la ruta de acceso HTTP del almacén según los requisitos.DBSQLCLI_ACCESS_TOKEN
por el valor del token de acceso personal según los requisitos.
export DBSQLCLI_HOST_NAME="adb-12345678901234567.8.azuredatabricks.net"
export DBSQLCLI_HTTP_PATH="/sql/1.0/warehouses/1abc2d3456e7f890a"
export DBSQLCLI_ACCESS_TOKEN="dapi12345678901234567890123456789012"
Windows
Para establecer las variables de entorno solo para la sesión actual del símbolo del sistema, ejecute los siguientes comandos, reemplazando el valor de:
DBSQLCLI_HOST_NAME
por el valor del nombre de host del servidor del almacén según los requisitos.DBSQLCLI_HTTP_PATH
por el valor de la ruta de acceso HTTP del almacén según los requisitos.DBSQLCLI_ACCESS_TOKEN
por el valor del token de acceso personal según los requisitos.
set DBSQLCLI_HOST_NAME="adb-12345678901234567.8.azuredatabricks.net"
set DBSQLCLI_HTTP_PATH="/sql/1.0/warehouses/1abc2d3456e7f890a"
set DBSQLCLI_ACCESS_TOKEN="dapi12345678901234567890123456789012"
Para establecer las variables de entorno para todas las sesiones del símbolo del sistema, ejecute los siguientes comandos, reinicie el símbolo del sistema y reemplace el valor de:
DBSQLCLI_HOST_NAME
por el valor del nombre de host del servidor del almacén según los requisitos.DBSQLCLI_HTTP_PATH
por el valor de la ruta de acceso HTTP del almacén según los requisitos.DBSQLCLI_ACCESS_TOKEN
por el valor del token de acceso personal según los requisitos.
setx DBSQLCLI_HOST_NAME "adb-12345678901234567.8.azuredatabricks.net"
setx DBSQLCLI_HTTP_PATH "/sql/1.0/warehouses/1abc2d3456e7f890a"
setx DBSQLCLI_ACCESS_TOKEN "dapi12345678901234567890123456789012"
Opciones de comando
Para usar las opciones --hostname
, --http-path
y --access-token
para proporcionar a la CLI de Databricks SQL los detalles de autenticación del almacén de Databricks SQL, haga lo siguiente:
Realice lo siguiente cada vez que ejecute un comando con la CLI de Databricks SQL:
- Especifique la opción
--hostname
y el valor del nombre de host del servidor del almacén según los requisitos. - Especifique la opción
--http-path
y el valor de la ruta de acceso HTTP del almacén según los requisitos. - Especifique la opción
--access-token
y el valor del token de acceso personal según los requisitos.
Por ejemplo:
dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2" \
--hostname "adb-12345678901234567.8.azuredatabricks.net" \
--http-path "/sql/1.0/warehouses/1abc2d3456e7f890a" \
--access-token "dapi12345678901234567890123456789012"
Orígenes de consulta
La CLI de Databricks SQL le permite ejecutar consultas de las siguientes maneras:
- Desde una cadena de consulta.
- Desde un archivo.
- En un enfoque de bucle read-evaluate-print (REPL). Este enfoque proporciona sugerencias a medida que escribe.
Cadena de consulta
Para ejecutar una consulta como una cadena, use la opción -e
seguida de la consulta, representada como una cadena. Por ejemplo:
dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2"
Salida:
_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 cambiar los formatos de salida, use la opción --table-format
junto con un valor como ascii
para el formato de tabla ASCII, por ejemplo:
dbsqlcli -e "SELECT * FROM default.diamonds LIMIT 2" --table-format ascii
Salida:
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| _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 obtener una lista de los valores de formato de salida disponibles, consulte los comentarios de la configuración table_format
en el archivo dbsqlclirc
.
Archivo
Para ejecutar un archivo que contiene SQL, use la opción -e
seguida de la ruta de acceso a un archivo .sql
. Por ejemplo:
dbsqlcli -e my-query.sql
Contenido del archivo my-query.sql
de ejemplo:
SELECT * FROM default.diamonds LIMIT 2;
Salida:
_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 cambiar los formatos de salida, use la opción --table-format
junto con un valor como ascii
para el formato de tabla ASCII, por ejemplo:
dbsqlcli -e my-query.sql --table-format ascii
Salida:
+-----+-------+---------+-------+---------+-------+-------+-------+------+------+------+
| _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 obtener una lista de los valores de formato de salida disponibles, consulte los comentarios de la configuración table_format
en el archivo dbsqlclirc
.
REPL
Para especificar el modo de bucle read-evaluate-print (REPL) con ámbito en la base de datos predeterminada, ejecute el siguiente comando:
dbsqlcli
También puede especificar el modo REPL con ámbito en una base de datos específica mediante la ejecución del siguiente comando:
dbsqlcli <database-name>
Por ejemplo:
dbsqlcli default
Para salir del modo REPL, ejecute el siguiente comando:
exit
En el modo REPL, puede usar los siguientes caracteres y claves:
- Use el punto y coma (
;
) para finalizar una línea. - Use F3 para alternar el modo de varias líneas.
- Use la barra espaciadora para mostrar sugerencias en el punto de inserción, si aún no se muestran sugerencias.
- Use las flechas hacia arriba y abajo para desplazarse por las sugerencias.
- Use la flecha a la derecha para completar la sugerencia resaltada.
Por ejemplo:
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
La CLI de SQL de Databricks registra sus mensajes en el archivo ~/.dbsqlcli/app.log
de manera predeterminada. Para cambiar este nombre de archivo o ubicación, cambie el valor de la log_file
configuración en el dbsqlclirc
archivo de configuración.
De manera predeterminada, los mensajes se registran en el nivel de registro INFO
y a continuación. Para cambiar este nivel de registro, cambie el valor de la configuración de log_level
en el archivo de configuracióndbsqlclirc
. Los valores de nivel de registro disponibles incluyen CRITICAL
, ERROR
, WARNING
, INFO
, y DEBUG
se evalúan en ese orden. NONE
deshabilita el registro.