Configurar uma conexão com o Databricks usando o Databricks JDBC Driver

Esta página mostra-lhe como configurar uma ligação ao Databricks usando o Driver JDBC do Databricks, versão 3 e superiores.

Configurar a conexão

Para se ligar ao seu espaço de trabalho Azure Databricks usando o driver JDBC, precisa de especificar as definições de ligação, incluindo o nome do servidor do seu espaço, as definições dos recursos de computação e as credenciais de autenticação.

Observação

O driver JDBC não suporta a ligação ao sistema de computação de jobs.

Defina estas propriedades na URL da ligação JDBC, transmita-as ao método DriverManager.getConnection ou use uma combinação de ambos. Consulte a documentação do provedor para saber a melhor forma de se conectar usando seu aplicativo, cliente, SDK, API ou ferramenta SQL específica.

A URL de conexão JDBC deve estar no seguinte formato. As propriedades são insensíveis a maiúsculas e minúsculas.

jdbc:databricks://<server-hostname>:<port>/<schema>;[property1]=[value];[property2]=[value];...

Como alternativa, especifique as configurações usando a java.util.Properties classe ou uma combinação:

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");

Os elementos de URL de conexão são descritos na tabela a seguir.

Para obter informações sobre propriedades adicionais, incluindo propriedades de autenticação, propriedades de configuração SQL e propriedades de log, consulte Propriedades de conexão com suporte.

Observação

Os elementos e propriedades de uma URL não fazem distinção entre letras maiúsculas e minúsculas.

Elemento ou propriedade de URL Descrição
<server-hostname> O valor do nome de anfitrião do servidor do recurso de computação do Azure Databricks.
<port> O valor da porta do recurso de computação do Azure Databricks. O valor predefinido é 443.
<schema> O nome do esquema. Alternativamente, defina a ConnSchema propriedade. Consulte Propriedades de conexão suportadas.
httpPath O valor do caminho HTTP do recurso de computação do Azure Databricks. O conector forma o endereço HTTP para conectar anexando o valor httpPath ao host e à porta especificados na URL de conexão. Por exemplo, para se conectar ao endereço http://localhost:10002/cliserviceHTTP, você usaria a seguinte URL de conexão: jdbc:databricks://localhost:10002;httpPath=cliservice

Para obter a URL de conexão JDBC para um cluster do Azure Databricks :

  1. Faça logon no seu espaço de trabalho do Azure Databricks.
  2. Na barra lateral, clique em Computação e, em seguida, clique no nome do cluster de destino.
  3. Na guia Configuração, expanda Opções avançadas.
  4. Clique na guia JDBC/ODBC.
  5. Copie o URL JDBC para usar como URL de conexão JDBC, ou construa o URL a partir dos valores nos campos nome de host do servidor , porta , e caminho HTTP .

Para obter a URL de conexão JDBC para um armazém Databricks SQL :

  1. Faça logon no seu espaço de trabalho do Azure Databricks.
  2. Na barra lateral, clique em SQL Warehouses e, em seguida, clique no nome do armazém de destino.
  3. Clique no separador Detalhes da conexão.
  4. Copie o URL JDBC para usar como URL de conexão JDBC, ou construa o URL a partir dos valores nos campos nome de host do servidor , porta , e caminho HTTP .

Configurar tags de consulta

Importante

Esta funcionalidade está em Pré-visualização Privada. Para solicitar acesso, entre em contato com a equipe da sua conta.

Anexe etiquetas-chave-valor às consultas SQL para fins de rastreamento e análise. As etiquetas aparecem na system.query.history tabela para identificação e análise de consultas.

Para adicionar tags de consulta à conexão, inclua a propriedade query_tags no URL JDBC.

jdbc:databricks://<server-hostname>:<port>/<schema>;query_tags=key1:value1,key2:value2

As tags de consulta usam um formato de par chave:valor separado por vírgula:

  • query_tags=key:value (tag única)
  • query_tags=key1:value1,key2:value2,key3:value3 (várias tags)

Configurar ligações proxy

Configure o conector para se ligar através de um servidor proxy em vez de se ligar diretamente ao Databricks. O conector suporta autenticação básica e SPNEGO ao ligar através de um servidor proxy. Consulte Propriedades de conexão suportadas.

Para usar definições de proxy ao nível do sistema, defina UseProxy=1 e UseSystemProxy=1.

Para configurar manualmente as definições do proxy:

  1. Defina UseProxy=1.
  2. Defina ProxyHost, ProxyPort, e ProxyIgnoreList.
  3. Para autenticar com o servidor proxy, escolha um método:
    • Básico: Definir ProxyAuth=1, ProxyUID, e ProxyPWD.
    • SPNEGO (ambientes Kerberos): Autentique o principal Kerberos a nível de sistema e, em seguida, configure ProxyAuth=2.

Configurar um proxy para o Cloud Fetch

O Cloud Fetch requer uma configuração de proxy separada da ligação principal do driver. Use as propriedades de ligação UseCFProxy, CFProxyHost, CFProxyPort, CFProxyAuth, CFProxyUID e CFProxyPwd para encaminhar o tráfego Cloud Fetch através de um proxy. Consulte Propriedades de conexão suportadas.

Se a sua rede for privada, permita *.blob.core.windows.net e *.store.core.windows.net, e adicione os downloads e revogações de certificados necessários à sua lista de permissões.

Troubleshooting

Se não conseguires resolver problemas de proxy, define EnableQueryResultDownload=0 para desativar o Cloud Fetch e volta ao download direto.

Para diagnosticar problemas de desempenho, defina LogLevel=4 para ativar o registo ao nível INFO. O driver regista a velocidade de download por bloco, por isso, grandes conjuntos de resultados geram múltiplas linhas de registo.

CloudFetch download speed: 21.24 MB/s
CloudFetch download speed: 20.60 MB/s

O driver regista um aviso quando a velocidade de download cai abaixo de aproximadamente 1 MB/s. O componente logarítmico é com.databricks.client.spark.jdbc.ResultFileDownloadHandler. Se os downloads estiverem lentos ou parados, aumente CloudFetchThreadPoolSize para descarregar mais blocos de ficheiros em paralelo.

Configuração do SSL

Se estiver a ligar-se a um espaço de trabalho Databricks com SSL ativado, configure o conector para se ligar a um socket com SSL. O conector utiliza autenticação unidirecional para verificar a identidade do servidor.

A autenticação unidirecional requer um certificado SSL assinado e de confiança. Configure o conector para aceder a uma TrustStore específica. Se não especificares um TrustStore, o conector usa o TrustStore padrão do Java (jssecacerts), ou cacerts se o jssecacerts não estiver disponível.

Para configurar o SSL:

  1. Defina SSL=1.
  2. Se não estiver a usar uma TrustStore Java predefinida, configure uma personalizada:
    • Crie uma TrustStore contendo o seu certificado de servidor assinado e de confiança.
    • Defina SSLTrustStore como o percurso completo da TrustStore.
    • Definir SSLTrustStorePwd para a palavra-passe da TrustStore.
    • Se a TrustStore não for uma JKS TrustStore, defina SSLTrustStoreType como BCFKS (BouncyCastle FIPS Keystore) ou PKCS12.

Para alterar a estratégia de revogação de certificados, defina as seguintes propriedades:

  • CheckCertRevocation: Defina para 0 aceitar certificados revogados. A predefinição é 1.
  • AcceptUndeterminedRevocation: Defina para 1 aceitar certificados com estado de revogação indeterminado (por exemplo, quando o CRLDP está inacessível ou com prazo de expiração). A predefinição é 0.

Autenticar o controlador

Para informações sobre como configurar a autenticação do driver JDBC, consulte Definições de autenticação para o driver JDBC Databricks.