Compartir a través de


Configuración de una conexión a Databricks mediante el controlador JDBC de Databricks

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 :

  1. Inicie sesión en su área de trabajo de Azure Databricks.
  2. En la barra lateral, haga clic en Proceso y, a continuación, haga clic en el nombre del clúster de destino.
  3. En la pestaña Configuración, expanda Opciones avanzadas.
  4. Haga clic en la pestaña JDBC/ODBC.
  5. 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:

  1. Inicie sesión en su área de trabajo de Azure Databricks.
  2. En la barra lateral, haga clic en SQL Warehouses y, a continuación, haga clic en el nombre del almacén de destino.
  3. Haga clic en la pestaña Detalles de conexión.
  4. 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:

  1. Establezca la propiedad UseProxy en 1.
  2. Para configurar las opciones de proxy en el nivel del sistema, establezca UseSystemProxy propiedad en 1; de lo contrario, establézcala para el controlador de la siguiente manera:
    1. Establezca la propiedad ProxyHost en la dirección IP o el nombre de host del servidor proxy.
    2. Establezca la propiedad ProxyPort en el puerto que usa el servidor proxy para escuchar las conexiones de cliente.
    3. Establezca la propiedad ProxyIgnoreList en un nombre de host separado por comas.
    4. Autentíquese con el servidor proxy:
      • Para usar la autenticación básica
        1. Establezca la propiedad ProxyAuth en 1.
        2. Establezca la propiedad ProxyUID en el nombre de usuario para acceder al servidor.
        3. Establezca la propiedad ProxyPWD en la contraseña para acceder al servidor.
      • Para usar la autenticación SPNEGO:
        1. Autentique la entidad de seguridad kerberos en el nivel del sistema.
        2. Establezca la propiedad ProxyAuth en 2.

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:

  1. Establezca la propiedad SSL en 1.
  2. Si no usa uno de los almacenes de confianza de Java predeterminados, cree un almacén de confianza y configure el conector para usarlo:
    1. Cree un almacén de confianza que contenga el certificado de servidor de confianza firmado.
    2. Establezca la propiedad SSLTrustStore en la ruta de acceso completa de TrustStore.
    3. Establezca la propiedad SSLTrustStorePwd en la contraseña para acceder a TrustStore.
    4. 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

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.

M2M mediante la entidad de servicio administrado de Databricks

Para configurar la autenticación mediante una entidad de servicio administrada por Databricks:

  1. Cree una entidad de servicio administrada de Databricks y asígnela a las cuentas y áreas de trabajo de Databricks.
  2. Cree un secreto de OAuth de Databricks para la entidad de servicio. Consulte la guía de configuración de OAuth M2M.
  3. Conceda permisos de acceso a clústeres y almacenes de SQL.
  4. 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:

  1. Cree un secreto de OAuth de Databricks para la entidad de servicio. Consulte la guía de configuración de OAuth M2M.
  2. Conceda permisos de acceso a clústeres y almacenes de SQL.
  3. 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:

  1. Configura identidades administradas para los recursos de Azure.
  2. Conceda permisos de acceso a clústeres y almacenes de SQL.
  3. 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.