Configurare una connessione a Databricks usando il driver JDBC di Databricks

Questa pagina illustra come configurare una connessione a Databricks usando il driver JDBC di Databricks, versione 3 e successive.

Configurare la connessione

Per connettersi all'area di lavoro Azure Databricks usando il driver JDBC, è necessario specificare le impostazioni di connessione, tra cui il nome host del server dell'area di lavoro, le impostazioni delle risorse di calcolo e le credenziali di autenticazione.

Annotazioni

Il driver JDBC non supporta la connessione all'elaborazione dei job.

Impostare queste proprietà nell'URL di connessione JDBC, passarle al metodo DriverManager.getConnection o usare una combinazione di entrambe. Vedere la documentazione del provider per informazioni su come connettersi usando l'app, il client, l'SDK, l'API o lo strumento SQL specifico.

L'URL di connessione JDBC deve essere nel formato seguente. Le proprietà non fanno distinzione tra maiuscole e minuscole.

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

In alternativa, specificare le impostazioni usando la classe java.util.Properties o una combinazione:

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

Gli elementi DELL'URL di connessione sono descritti nella tabella seguente.

Per informazioni sulle proprietà aggiuntive, incluse le proprietà di autenticazione, le proprietà di configurazione SQL e le proprietà di registrazione, vedere Proprietà di connessione supportate.

Annotazioni

Gli elementi e le proprietà url non fanno distinzione tra maiuscole e minuscole.

Elemento o proprietà URL Descrizione
<server-hostname> Il valore dell'hostname del server della risorsa di calcolo di Azure Databricks.
<port> Valore della porta della risorsa di calcolo di Azure Databricks. Il valore predefinito è 443.
<schema> Nome dello schema. In alternativa, impostare la proprietà ConnSchema. Vedere Proprietà di connessione supportate.
httpPath Valore del percorso HTTP della risorsa di calcolo di Azure Databricks. Il connettore costituisce l'indirizzo HTTP a cui connettersi aggiungendo il valore httpPath all'host e alla porta specificata nell'URL di connessione. Ad esempio, per connettersi all'indirizzo HTTP http://localhost:10002/cliservice, usare l'URL di connessione seguente: jdbc:databricks://localhost:10002;httpPath=cliservice

Per ottenere l'URL di connessione JDBC per un cluster di Azure Databricks:

  1. Accedere all'area di lavoro di Azure Databricks.
  2. Nella barra laterale fare clic su Calcolo, quindi sul nome del cluster di destinazione.
  3. Nella scheda Configurazione espandere Opzioni avanzate.
  4. Fare clic sulla scheda JDBC/ODBC.
  5. Copiare il url JDBC da usare come URL di connessione JDBC oppure costruire l'URL dai valori nei campi Nome host del server, Portae percorso HTTP.

Per ottenere l'URL di connessione JDBC per un databricks SQL warehouse:

  1. Accedere all'area di lavoro di Azure Databricks.
  2. Nella barra laterale fare clic su SQL Warehouse, quindi sul nome del warehouse di destinazione.
  3. Clicca sulla scheda dettagli della connessione.
  4. Copiare il url JDBC da usare come URL di connessione JDBC oppure costruire l'URL dai valori nei campi Nome host del server, Portae percorso HTTP.

Configurare i tag di query

Importante

Questa funzionalità si trova in anteprima privata. Per richiedere l'accesso, contattare la squadra del vostro account.

Allegare tag chiave-valore alle query SQL per scopi di rilevamento e analisi. I tag vengono visualizzati nella tabella per l'identificazione e l'analisi delle system.query.history query.

Per aggiungere tag di query alla connessione, includere la proprietà query_tags nell'URL JDBC:

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

I tag di query usano un formato di coppia chiave:valore delimitato da virgole:

  • query_tags=key:value (singolo tag)
  • query_tags=key1:value1,key2:value2,key3:value3 (più tag)

Configurare le connessioni proxy

Configurare il connettore per connettersi tramite un server proxy anziché connettersi direttamente a Databricks. Il connettore supporta l'autenticazione di base e SPNEGO durante la connessione tramite un server proxy. Vedere Proprietà di connessione supportate.

Per usare le impostazioni proxy a livello di sistema, impostare UseProxy=1 e UseSystemProxy=1.

Per configurare manualmente le impostazioni proxy:

  1. Imposta UseProxy=1.
  2. Impostare ProxyHost, ProxyPorte ProxyIgnoreList.
  3. Per eseguire l'autenticazione con il server proxy, scegliere un metodo:
    • Basic: Impostare ProxyAuth=1, ProxyUID, e ProxyPWD.
    • SPNEGO (ambienti Kerberos): autentica il princìpale di Kerberos a livello di sistema, quindi imposta ProxyAuth=2.

Configurare un proxy per Cloud Fetch

Cloud Fetch richiede una configurazione proxy separata dalla connessione del driver principale. Usa le proprietà di connessione UseCFProxy, CFProxyHost, CFProxyPort, CFProxyAuth, CFProxyUID e CFProxyPwd per instradare il traffico di Cloud Fetch tramite un proxy. Vedere Proprietà di connessione supportate.

Se la rete è privata, consentire *.blob.core.windows.net e *.store.core.windows.net e aggiungere i download e le revoche di certificati necessari alla lista degli elementi consentiti.

Risoluzione dei problemi

Se non riesci a risolvere i problemi del proxy, imposta EnableQueryResultDownload=0 per disabilitare Cloud Fetch e ricorri al download diretto.

Per diagnosticare i problemi di prestazioni, impostare LogLevel=4 per abilitare la registrazione a livello INFO. Il driver registra la velocità di download per blocco, quindi set di risultati di grandi dimensioni generano più righe di log:

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

Il driver registra un avviso quando la velocità di download scende al di sotto di circa 1 MB/s. Il componente di log è com.databricks.client.spark.jdbc.ResultFileDownloadHandler. Se i download sono lenti o bloccati, aumentare CloudFetchThreadPoolSize per scaricare più blocchi di file in parallelo.

Configurazione di SSL

Se ci si connette a un'area di lavoro di Databricks con SSL abilitato, configurare il connettore per connettersi a un socket abilitato per SSL. Il connettore usa l'autenticazione unidirezionale per verificare l'identità del server.

L'autenticazione unidirezionale richiede un certificato SSL firmato e attendibile. Configurare il connettore per accedere a un truststore specifico. Se non si specifica un TrustStore, il connettore usa il valore predefinito Java TrustStore (jssecacerts) o cacerts se jssecacerts non è disponibile.

Per configurare SSL:

  1. Imposta SSL=1.
  2. Se non si usa un Java TrustStore predefinito, configurarne uno personalizzato:
    • Creare un truststore contenente il certificato del server firmato e attendibile.
    • Impostare SSLTrustStore sul percorso completo del TrustStore.
    • Impostare SSLTrustStorePwd alla password del TrustStore.
    • Se il TrustStore non è un TrustStore JKS, impostare SSLTrustStoreType su BCFKS (archivio chiavi FIPS BouncyCastle) o su PKCS12.

Per modificare la strategia di revoca dei certificati, impostare le proprietà seguenti:

  • CheckCertRevocation: Imposta 0 per accettare i certificati revocati. Il valore predefinito è 1.
  • AcceptUndeterminedRevocation: Impostare su 1 per accettare certificati con stato di revoca non determinato, ad esempio quando CRLDP non è raggiungibile o va in timeout. Il valore predefinito è 0.

Autentica il driver

Per informazioni sulla configurazione dell'autenticazione per il driver JDBC, vedere Impostazioni di autenticazione per il driver JDBC di Databricks.