Configurações de autenticação para o driver JDBC do Databricks

Este artigo descreve como definir as configurações de autenticação do Databricks para o driver JDBC do Databricks.

Este artigo pressupõe que você já reuniu as seguintes configurações adicionais para adicionar às configurações de autenticação conforme descrito neste artigo:

Para configurar uma conexão do Databricks para o driver JDBC do Databricks, você deve combinar as configurações de recursos compute , quaisquer configurações de capacidade do driver e as configurações de autenticação a seguir em uma URL de conexão JDBC ou uma coleção programática de propriedades de conexão JDBC.

URLs de conexão JDBC usam o seguinte formato:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>[;<setting1>=<value1>;<setting2>=<value2>;<settingN>=<valueN>]

Coleções programáticas de propriedades de conexão JDBC podem ser usadas em código Java, como no exemplo a seguir:

package org.example;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Properties;

public class Main {
  public static void main(String[] args) throws Exception {
    Class.forName("com.databricks.client.jdbc.Driver");
    String url = "jdbc:databricks://" + System.getenv("DATABRICKS_SERVER_HOSTNAME") + ":443";
    Properties p = new java.util.Properties();
    p.put("httpPath", System.getenv("DATABRICKS_HTTP_PATH"));
    p.put("<setting1>", "<value1");
    p.put("<setting2>", "<value2");
    p.put("<settingN>", "<valueN");
    try (Connection conn = DriverManager.getConnection(url, p)) {
      Statement stmt = conn.createStatement();
      try (ResultSet rs = stmt.executeQuery("<query>")) {
        ResultSetMetaData md = rs.getMetaData();
        String[] columns = new String[md.getColumnCount()];
        for (int i = 0; i < columns.length; i++) {
          columns[i] = md.getColumnName(i + 1);
        }
        while (rs.next()) {
          System.out.print("Row " + rs.getRow() + "=[");
          for (int i = 0; i < columns.length; i++) {
            if (i != 0) {
              System.out.print(", ");
            }
            System.out.print(columns[i] + "='" + rs.getObject(i + 1) + "'");
          }
          System.out.println(")]");
        }
      }
    }
    System.exit(0);
  }
}
  • Defina DATABRICKS_SERVER_HOSTNAME DATABRICKS_HTTP_PATH os valores de ambiente compute e para os valores do servidor hostname e caminho HTTP do recurso do Databricks de destino, respectivamente. Para obter esses valores, consulte Configurações de computação para o driver JDBC do Databricks. Para definir variável de ambiente, consulte a documentação do seu sistema operacional.

  • Substitua <setting> e <value> conforme necessário para cada uma das propriedades de conexão listadas nas seções a seguir.

  • Você também pode adicionar configurações de capacidade de driver especiais ou avançadas, normalmente como pares <setting> e <value> adicionais.

  • Neste exemplo, substitua <query> por uma strings de consulta SQL SELECT .

O uso de um URL de conexão ou de uma coleção de propriedades de conexão dependerá dos requisitos do aplicativo, ferramenta, cliente, SDK ou API de destino. Exemplos de URLs de conexão JDBC e coleções programáticas de propriedades de conexão JDBC são fornecidos nestes artigos para cada tipo de autenticação do Databricks com suporte.

O driver JDBC do Databricks dá suporte à autenticação usando um access token pessoal do Databricks. Para criar um access token pessoal, faça o seguinte:

  1. No workspace do Databricks, clique no nome de usuário do Databricks na barra superior e selecione Configurações do usuário na lista suspensa.

  2. Clique em Desenvolvedor.

  3. Ao lado do access token, clique em gerenciar.

  4. Clique em Gerar novos tokens.

  5. (Opcional) Insira um comentário que o ajude a identificar esse token no futuro e altere o tempo de vida padrão do token de 90 dias. Para criar um token sem vida útil (não recomendado), deixe a caixa Duração (dias) vazia (em branco).

  6. Clique em Gerar.

  7. Copie o token exibido em um local seguro e clique em Concluído.

Observação

Certifique-se de salvar os tokens copiados em um local seguro. Não compartilhe seus tokens copiados com outras pessoas. Se você perder os tokens copiados, não poderá regenerar exatamente os mesmos tokens. Em vez disso, você deve repetir este procedimento para criar novos tokens. Se você perder os tokens copiados ou acreditar que os tokens foram comprometidos, o Databricks recomenda fortemente que você exclua imediatamente esses tokens do seu workspace clicando no ícone da lixeira (Revogar) ao lado dos tokens na página access tokens .

Se não for possível criar ou usar tokens no seu workspace, isso pode ocorrer porque o administrador do workspace desativou os tokens ou não lhe deu permissão para criar ou usar tokens. Consulte o administrador do workspace ou o seguinte:

Para autenticar usando um access token pessoal do Databricks, defina a configuração a seguir.

Para uma URL de conexão JDBC com propriedades de configuração geral integradas e propriedades de credenciais confidenciais:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>

Para código Java com propriedades de configuração gerais e propriedades de credenciais confidenciais definidas fora da URL de conexão JDBC:

// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "3");
p.put("UID", "token");
p.put("PWD", "<personal-access-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
  • Para obter um exemplo de código Java completo onde você pode adaptar o trecho de código anterior às suas próprias necessidades, consulte o exemplo de código no início deste artigo.

  • No URL ou código Java anterior, substitua <personal-access-token> pelo access token pessoal do Databricks para o usuário do seu workspace.

  • Para obter os valores de <server-hostname> e <http-path>, consulte Configurações de computação para o driver JDBC do Databricks.