Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo configurar una conexión a Databricks mediante databricks JDBC Driver, versión 3 y posteriores.
Configuración de la conexión
Para conectarse al área de trabajo de Azure Databricks mediante el controlador JDBC, debe especificar varias opciones de conexión, como el nombre de host del servidor del área de trabajo de Azure Databricks, la configuración de recursos de proceso y las credenciales de autenticación para conectarse al área de trabajo.
Nota:
El controlador JDBC no admite la conexión a "jobs compute".
Puede establecer el valor de estas propiedades en la dirección URL de conexión de JDBC, establecerlas y pasarlas al método DriverManager.getConnectiono una combinación de ambos. Consulte la documentación del proveedor para obtener la mejor manera de conectarse mediante la aplicación específica, el cliente, el SDK, la API o la herramienta SQL.
La dirección URL de conexión JDBC debe tener el formato siguiente. Las propiedades no distinguen mayúsculas de minúsculas.
jdbc:databricks://<server-hostname>:<port>/<schema>;[property1]=[value];[property2]=[value];...
Como alternativa, especifique la configuración mediante la clase java.util.Properties o una combinación:
String url = "jdbc:databricks://<server-hostname>:<port>/<schema>";
Properties properties = new java.util.Properties();
properties.put("<property1>", "<value1");
properties.put("<property2>", "<value2");
// ...
Connection conn = DriverManager.getConnection(url, properties);
String url = "jdbc:databricks://<server-hostname>:<port>/<schema>;[property1]=[value];[property2]=[value];";
Connection conn = DriverManager.getConnection(url, "token", "12345678901234667890abcdabcd");
Los elementos de la dirección URL de conexión se describen en la tabla siguiente.
Para obtener información sobre las propiedades adicionales, incluidas las propiedades de autenticación, las propiedades de configuración de SQL y las propiedades de registro, consulte Propiedades de conexión admitidas.
Nota:
Los elementos y propiedades de la dirección URL no distinguen mayúsculas de minúsculas.
| Elemento o propiedad URL | Descripción |
|---|---|
<server-hostname> |
Valor del nombre de host del servidor del recurso de proceso de Azure Databricks. |
<port> |
Valor de puerto del recurso de proceso de Azure Databricks. El valor predeterminado es 443. |
<schema> |
Nombre del esquema. Como alternativa, puede establecer la propiedad ConnSchema. Consulte Propiedades de conexión admitidas. |
httpPath |
Valor de ruta de acceso HTTP del recurso de proceso de Azure Databricks. El conector forma la dirección HTTP a la que se va a conectar anexando el valor de httpPath al host y el puerto especificados en la dirección URL de conexión. Por ejemplo, para conectarse a la dirección HTTP http://localhost:10002/cliservice, usaría la siguiente dirección URL de conexión: jdbc:databricks://localhost:10002;httpPath=cliservice |
Para obtener la dirección URL de conexión de JDBC para un clúster de Azure Databricks :
- Inicie sesión en su área de trabajo de Azure Databricks.
- En la barra lateral, haga clic en Proceso y, a continuación, haga clic en el nombre del clúster de destino.
- En la pestaña Configuración, expanda Opciones avanzadas.
- Haga clic en la pestaña JDBC/ODBC.
- Copie la URL JDBC para usarla como URL de conexión JDBC, o construya la URL a partir de los valores en los campos Nombre de host Server, Puerto y Ruta de acceso HTTP .
Para obtener la dirección URL de conexión de JDBC para una almacenamiento de Databricks SQL:
- Inicie sesión en su área de trabajo de Azure Databricks.
- En la barra lateral, haga clic en SQL Warehouses y, a continuación, haga clic en el nombre del almacén de destino.
- Haga clic en la pestaña Detalles de conexión.
- Copie la URL JDBC para usarla como URL de conexión JDBC, o construya la URL a partir de los valores en los campos Nombre de host Server, Puerto y Ruta de acceso HTTP .
Configuración de etiquetas de consulta
Importante
** Esta característica está disponible en versión preliminar privada. Para solicitar acceso, póngase en contacto con el equipo de su cuenta.
Puede adjuntar etiquetas clave-valor a las consultas SQL con fines de seguimiento y análisis. Las etiquetas de consulta aparecen en la system.query.history tabla para la identificación y el análisis de consultas.
Para agregar etiquetas de consulta a tu conexión, incluye la propiedad query_tags en tu JDBC URL.
jdbc:databricks://<server-hostname>:<port>/<schema>;query_tags=key1:value1,key2:value2
Las etiquetas de consulta usan un formato de par clave:valor separado por comas:
-
query_tags=key:value(etiqueta única) -
query_tags=key1:value1,key2:value2,key3:value3(varias etiquetas)
Configuración de conexiones de proxy
Puede configurar el conector para conectarse a través de un servidor proxy en lugar de conectarse directamente a Databricks. Al conectarse a través de un servidor proxy, el conector admite la autenticación básica y SPNEGO.
Para configurar una conexión de proxy:
- Establezca la propiedad
UseProxyen 1. - Para configurar las opciones de proxy en el nivel del sistema, establezca
UseSystemProxypropiedad en 1; de lo contrario, establézcala para el controlador de la siguiente manera:- Establezca la propiedad
ProxyHosten la dirección IP o el nombre de host del servidor proxy. - Establezca la propiedad
ProxyPorten el puerto que usa el servidor proxy para escuchar las conexiones de cliente. - Establezca la propiedad
ProxyIgnoreListen un nombre de host separado por comas. - Autentíquese con el servidor proxy:
- Para usar la autenticación básica
- Establezca la propiedad
ProxyAuthen 1. - Establezca la propiedad
ProxyUIDen el nombre de usuario para acceder al servidor. - Establezca la propiedad
ProxyPWDen la contraseña para acceder al servidor.
- Establezca la propiedad
- Para usar la autenticación SPNEGO:
- Autentique la entidad de seguridad kerberos en el nivel del sistema.
- Establezca la propiedad
ProxyAuthen 2.
- Para usar la autenticación básica
- Establezca la propiedad
Para usar un proxy diferente específicamente para CloudFetch, siga los pasos anteriores con las siguientes propiedades: UseCFProxy, CFProxyHost, CFProxyPort, CFProxyAuth, CFProxyUID, CFProxyPwd
Configuración de SSL
Si se conecta a Databricks que tiene habilitada la capa de sockets seguros (SSL), puede configurar el conector para conectarse a un socket habilitado para SSL. Al conectarse a un servidor a través de SSL, el conector usa la autenticación unidireccional para comprobar la identidad del servidor.
La autenticación unidireccional requiere un certificado SSL firmado y de confianza para comprobar la identidad del servidor. Puede configurar el conector para acceder a un TrustStore específico que contenga el certificado adecuado. Si no especifica trustStore, el conector usa el java TrustStore predeterminado denominado jssecacerts. Si jssecacerts no está disponible, el conector usa cacerts en su lugar.
Para configurar SSL:
- Establezca la propiedad SSL en 1.
- Si no usa uno de los almacenes de confianza de Java predeterminados, cree un almacén de confianza y configure el conector para usarlo:
- Cree un almacén de confianza que contenga el certificado de servidor de confianza firmado.
- Establezca la propiedad SSLTrustStore en la ruta de acceso completa de TrustStore.
- Establezca la propiedad SSLTrustStorePwd en la contraseña para acceder a TrustStore.
- Si TrustStore no es un trustStore de JKS, establezca la propiedad SSLTrustStoreType en el tipo correcto. Los tipos admitidos son:
- SSLTrustStoreType=BCFKS (BouncyCastle FIPS Keystore)
- SSLTrustStoreType=PKCS12 (Estándares de criptografía de clave pública n.º 12)
En determinados casos, donde desea cambiar la estrategia de revocación de certificados, el conector proporciona los parámetros siguientes:
- La propiedad CheckCertRevocation cuando se establece en 0 aceptará certificados revocados (el valor predeterminado de la propiedad es 1)
- La propiedad AcceptUndeterminedRevocation cuando se establece en 1 aceptará certificados en los que no podemos identificar el estado de revocación de los certificados (CRLDP es inaccesible o agota el tiempo de espera, etc.), el valor predeterminado de esta propiedad es 0.
Autenticar el controlador
Puede autenticar la conexión del controlador JDBC mediante uno de los siguientes mecanismos de autenticación:
- Autenticación de usuario a máquina (U2M) de OAuth (Recomendado)
- M2M mediante identidades administradas de Azure
- Token de acceso personal de Azure Databricks
Autenticación de usuario a máquina (U2M) de OAuth
El controlador JDBC admite la autenticación de usuario a máquina (U2M) de OAuth para el inicio de sesión humano en tiempo real y el consentimiento para autenticar la cuenta de usuario de Databricks de destino. Esto también se conoce como Autenticación OAuth basada en explorador.
Azure Databricks ha creado el identificador de cliente de OAuth databricks-sql-jdbc para los clientes. También es el identificador de cliente de OAuth predeterminado que se usa en el controlador JDBC. Para configurar la autenticación U2M de OAuth, agregue las siguientes propiedades a la dirección URL de conexión JDBC existente o java.util.Properties objeto:
| Propiedad | Importancia |
|---|---|
AuthMech |
11 |
Auth_Flow |
2 |
TokenCachePassPhrase |
Frase de contraseña que se usa para cifrar las credenciales U2M de OAuth almacenadas en caché. Esto evita las autenticaciones repetidas basadas en explorador. Para excluirse del almacenamiento en caché de tokens, configure EnableTokenCache en 0. |
Autenticación de máquina a máquina (M2M) de OAuth
El controlador JDBC admite la autenticación de máquina a máquina (M2M) de OAuth, también conocida como autenticación de credenciales de cliente de OAuth 2.0, mediante una de las siguientes entidades de seguridad o identidad. Consulte Autorización del acceso de la entidad de servicio a Azure Databricks con OAuth.
- Una entidad de servicio de Databricks
- Una entidad de servicio administrado de Azure
- Una identidad administrada de Azure (asignada por el sistema o asignada por el usuario)
M2M mediante la entidad de servicio administrado de Databricks
Para configurar la autenticación mediante una entidad de servicio administrada por Databricks:
- Cree una entidad de servicio administrada de Databricks y asígnela a las cuentas y áreas de trabajo de Databricks.
- Cree un secreto de OAuth de Databricks para la entidad de servicio. Consulte la guía de configuración de OAuth M2M.
- Conceda permisos de acceso a clústeres y almacenes de SQL.
- Agregue las siguientes propiedades a la dirección URL de conexión JDBC existente o al objeto
java.util.Properties:
| Propiedad | Importancia |
|---|---|
AuthMech |
11 |
Auth_Flow |
1 |
OAuth2ClientID |
El valor del Identificador de aplicación (cliente) de la entidad de servicio. |
OAuth2Secret |
El secreto de OAuth de la entidad de servicio de Azure Databricks. |
M2M mediante una entidad de servicio administrado de Azure
Para configurar la autenticación mediante una entidad de servicio administrada por Azure:
- Cree un secreto de OAuth de Databricks para la entidad de servicio. Consulte la guía de configuración de OAuth M2M.
- Conceda permisos de acceso a clústeres y almacenes de SQL.
- Agregue las siguientes propiedades a la dirección URL de conexión JDBC existente o al objeto
java.util.Properties:
| Propiedad | Importancia |
|---|---|
AuthMech |
11 |
Auth_Flow |
1 |
OAuth2ClientID |
El valor del Identificador de aplicación (cliente) de la entidad de servicio. |
AzureTenantID |
Identificador de inquilino de Azure que se encuentra en Azure Active Directory. |
OAuth2Secret |
El secreto de OAuth de la entidad de servicio de Azure Databricks. |
M2M mediante identidades administradas de Azure
Para configurar la autenticación mediante identidades administradas de Azure:
- Configura identidades administradas para los recursos de Azure.
- Conceda permisos de acceso a clústeres y almacenes de SQL.
- Agregue las siguientes propiedades a la dirección URL de conexión JDBC existente o al objeto
java.util.Properties:
| Propiedad | Importancia |
|---|---|
AuthMech |
11 |
Auth_Flow |
3 |
OAuth2ClientID |
Id. del cliente de la identidad administrada. Este es un parámetro necesario solo si usa una identidad administrada asignada por el usuario. |
Azure_workspace_resource_id |
Identificador de recurso de Azure del área de trabajo de Databricks |
, token de acceso personal de Azure Databricks
Para autenticar su conexión de controlador JDBC mediante un Token de acceso personal, Azure Databricks, agregue las siguientes propiedades a su dirección URL u objeto de conexión JDBCjava.util.Properties:
| Propiedad | Importancia |
|---|---|
AuthMech |
3 |
user |
El valor token, como una cadena. |
PWD o password |
El valor del token de acceso personal de Azure Databricks, como una cadena. |