Configurar uma conexão com o Databricks usando o driver JDBC do Databricks (OSS)
Este artigo mostra como configurar uma conexão com Databricks usando o driverDatabricks JDBC (OSS).
Configurar a conexão
Para se conectar ao Databricks workspace usando o driver JDBC, o senhor precisa especificar várias configurações de conexão, como o nome de host do servidor Databricks workspace , as configurações de recurso compute e as credenciais de autenticação para se conectar ao workspace.
O senhor pode definir o valor dessas propriedades no URL de conexão JDBC, definir e passá-las para o método DriverManager.getConnection ou 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íficos.
O URL da conexão JDBC deve estar no seguinte formato. As propriedades não diferenciam maiúsculas de minúsculas.
jdbc:databricks://<server-hostname>:<port>/<schema>;[property1]=[value];[property2]=[value];...
Como alternativa, especifique as configurações usando a classe java.util.Properties
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 do 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 do SQL e propriedades de registro, consulte Propriedades de conexão suportadas.
Os elementos e propriedades do URL não diferenciam maiúsculas de minúsculas.
Elemento ou propriedade do URL | Descrição |
---|---|
| O valor do nome do host do servidor do recurso Databricks compute . |
| O valor da porta do recurso Databricks compute . O valor default é |
| O nome do esquema. Como alternativa, você pode definir a propriedade |
| O valor do caminho HTTP do recurso Databricks compute . O conector forma o endereço HTTP ao qual se conectar anexando o valor |
Para obter o JDBC URL de Databricks conexão para um clustering:
- Faça login no seu espaço de trabalho do Databricks.
- Na barra lateral, clique em computar e, em seguida, clique no nome do clustering de destino.
- Em Configuration (Configuração ) tab, expanda Advanced options (Opções avançadas ).
- Clique no link JDBC/ODBC tab.
- Copie o URL do JDBC para usar como URL de conexão JDBC ou construa o URL a partir dos valores nos campos Nome do host do servidor , Porta e Caminho HTTP .
Para obter o JDBC URL de conexão para um Databricks SQL depósito:
- Faça login no seu espaço de trabalho do Databricks.
- Na barra lateral, clique em SQL warehouse e, em seguida, clique no nome do warehouse de destino.
- Clique em Connection details (Detalhes da conexão) tab.
- Copie o URL do JDBC para usar como URL de conexão JDBC ou construa o URL a partir dos valores nos campos Nome do host do servidor , Porta e Caminho HTTP .
Configurar conexões proxy
O senhor pode configurar o conector para se conectar por meio de um servidor proxy em vez de se conectar diretamente ao Databricks. Ao se conectar por meio de um servidor proxy, o conector oferece suporte à autenticação básica e SPNEGO.
Para configurar uma conexão proxy:
- Defina a propriedade
UseProxy
como 1. - Para definir as configurações de proxy no nível do sistema, defina a propriedade
UseSystemProxy
como 1, caso contrário, defina-a para o driver da seguinte maneira:- Defina a propriedade
ProxyHost
como o endereço IP ou nome de host do seu servidor proxy. - Defina a propriedade
ProxyPort
como a porta que o servidor proxy usa para escutar as conexões do cliente. - Defina a propriedade
ProxyIgnoreList
como um nome de host separado por vírgula. - Autentique-se com o servidor proxy:
-
Para usar a autenticação básica
- Defina a propriedade
ProxyAuth
como 1. - Defina a propriedade
ProxyUID
como seu nome de usuário para acessar o servidor. - Defina a propriedade
ProxyPWD
como sua senha para acessar o servidor.
- Defina a propriedade
-
Para usar a autenticação SPNEGO:
- Autentique seu kerberos principal no nível do sistema.
- Defina a propriedade
ProxyAuth
como 2.
-
- Defina a propriedade
Para usar um proxy diferente especificamente para o CloudFetch, siga as etapas acima com as seguintes propriedades: UseCFProxy
, CFProxyHost
, CFProxyPort
, CFProxyAuth
, CFProxyUID
, CFProxyPwd
Configuração de SSL
Se estiver se conectando ao Databricks que tem o Secure Sockets Layer (SSL) ativado, o senhor pode configurar o conector para se conectar a um soquete ativado para SSL. Ao se conectar a um servidor por SSL, o conector usa autenticação unidirecional para verificar a identidade do servidor.
A autenticação unidirecional requer um certificado SSL assinado e confiável para verificar a identidade do servidor. Você pode configurar o conector para acessar um TrustStore específico que contém o certificado apropriado. Se o senhor não especificar um TrustStore, o conector usará o TrustStore default Java chamado jssecacerts. Se jssecacerts não estiver disponível, o conector usará cacerts em vez disso.
Para configurar o SSL:
- Defina a propriedade SSL como 1.
- Se o senhor não estiver usando um dos default Java Trust Stores, crie um Trust Store e configure o conector para usá-lo:
- Crie um Trust Store contendo seu certificado de servidor confiável e assinado.
- Defina a propriedade SSLTrustStore para o caminho completo do TrustStore.
- Defina a propriedade SSLTrustStorePwd como a senha para acessar o TrustStore.
- Se o TrustStore não for um JKS TrustStore, defina a propriedade SSLTrustStoreType para o tipo correto. Os tipos suportados são:
- SSLTrustStoreType=BCFKS (repositório de chaves FIPS BouncyCastle)
- SSLTrustStoreType=PKCS12 (Padrões de criptografia de chave pública nº 12)
Em certos casos, quando você deseja alterar a estratégia de revogação do certificado, o conector fornece os seguintes parâmetros:
- A propriedade CheckCertRevocation, quando definida como 0, aceitará certificados que tenham sido revogados (default valor da propriedade é 1)
- A propriedade AcceptUndeterminedRevocation, quando definida como 1, aceitará certificados em que não for possível identificar o status de revogação dos certificados (o CRLDP não pode ser acessado/tempo limite etc.); o valor default dessa propriedade é 0
Autentique o driver
O senhor pode autenticar a conexão do driver JDBC usando um dos seguintes mecanismos de autenticação:
- Autenticação OAuth de usuário para máquina (U2M) (recomendado)
- Autenticação OAuth machine-to-machine (M2M)
- Databricks tokens de acesso pessoal
Autenticação OAuth de usuário para máquina (U2M)
O driver JDBC é compatível com a autenticação OAuth de usuário para máquina (U2M) para login humano real e consentimento para autenticar o usuário de destino Databricks account. Isso também é conhecido como autenticação OAuth baseada em navegador .
A Databricks criou o ID do cliente OAuth databricks-sql-jdbc
para os clientes. Esse também é o ID do cliente default OAuth usado no driver JDBC. Para configurar a autenticação OAuth U2M, basta adicionar as seguintes propriedades ao URL de conexão JDBC existente ou ao objeto java.util.Properties
:
Propriedade | Valor |
---|---|
|
|
|
|
Autenticação OAuth máquina a máquina (M2M)
O driver JDBC oferece suporte à autenticação OAuth máquina a máquina (M2M) usando uma entidade de serviço da Databricks. Isso também é conhecido como autenticação de credenciais de cliente OAuth 2.0. Consulte Autorizar o acesso autônomo a Databricks recurso com uma entidade de serviço usando OAuth.
Para configurar a autenticação de credenciais de cliente OAuth M2M ou OAuth 2.0:
- Crie uma Databricks entidade de serviço em seu Databricks workspace e crie um OAuth secret para essa entidade de serviço. Consulte Autorizar o acesso autônomo a Databricks recurso com uma entidade de serviço usando OAuth. Anote o valor do UUID da entidade de serviço ou do ID do aplicativo e o valor do segredo do OAuth da entidade de serviço.
- Conceda à entidade de serviço acesso ao seu clustering ou depósito. Consulte computar permissões ou gerenciar SQL warehouse a.
Adicione as seguintes propriedades ao URL de conexão JDBC existente ou ao objeto java.util.Properties
:
Propriedade | Valor |
---|---|
|
|
|
|
| O UUID da entidade de serviço ou o valor do ID do aplicativo . |
| O valor do segredo OAuth da entidade de serviço. |
Databricks tokens de acesso pessoal
Para autenticar a JDBC conexão do driver usando Databricks tokens de acesso pessoal, adicione as seguintes propriedades ao URL de conexão JDBC ou ao java.util.Properties
objeto:
Propriedade | Valor |
---|---|
|
|
| O valor |
| Seu valor de tokens de acesso pessoal Databricks, como uma cadeia de caracteres. |