Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo 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 di Azure Databricks usando il driver JDBC, è necessario specificare varie impostazioni di connessione, ad esempio il nome host server dell'area di lavoro di Azure Databricks, le impostazioni delle risorse di calcolo e le credenziali di autenticazione per connettersi all'area di lavoro.
Annotazioni
Il driver JDBC non supporta la connessione al calcolo delle attività.
È possibile impostare il valore di queste proprietà nell'URL di connessione JDBC, impostarli e passarli al metodo DriverManager.getConnectiono una combinazione di entrambi. 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, è possibile 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:
- Accedere all'area di lavoro di Azure Databricks.
- Nella barra laterale fare clic su Calcolo, quindi sul nome del cluster di destinazione.
- Nella scheda Configurazione espandere Opzioni avanzate.
- Fare clic sulla scheda JDBC/ODBC.
- 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:
- Accedere all'area di lavoro di Azure Databricks.
- Nella barra laterale fare clic su SQL Warehouse, quindi sul nome del warehouse di destinazione.
- Clicca sulla scheda dettagli della connessione.
- 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.
È possibile collegare tag chiave-valore alle query SQL per scopi di rilevamento e analisi. I tag di query vengono visualizzati nella system.query.history tabella per l'identificazione e l'analisi delle 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
È possibile configurare il connettore per la connessione tramite un server proxy anziché connettersi direttamente a Databricks. Quando ci si connette tramite un server proxy, il connettore supporta l'autenticazione di base e SPNEGO.
Per configurare una connessione proxy:
- Impostare la proprietà
UseProxysu 1. - Per configurare le impostazioni proxy a livello di sistema, impostare
UseSystemProxyproprietà su 1; in caso contrario, impostarla per il driver nel modo seguente:- Impostare la proprietà
ProxyHostsull'indirizzo IP o sul nome host del server proxy. - Impostare la proprietà
ProxyPortsulla porta usata dal server proxy per restare in ascolto delle connessioni client. - Impostare la proprietà
ProxyIgnoreListsu un nome host delimitato da virgole. - Eseguire l'autenticazione con il server proxy:
- Per usare l'autenticazione di base
- Impostare la proprietà
ProxyAuthsu 1. - Impostare la proprietà
ProxyUIDsul nome utente per l'accesso al server. - Impostare la proprietà
ProxyPWDsulla password per l'accesso al server.
- Impostare la proprietà
- Per usare l'autenticazione SPNEGO:
- Autentica il tuo principale Kerberos a livello di sistema.
- Imposta la proprietà
ProxyAuthsu 2.
- Per usare l'autenticazione di base
- Impostare la proprietà
Per usare un proxy diverso in modo specifico per CloudFetch, seguire i passaggi precedenti con le proprietà seguenti: UseCFProxy, CFProxyHost, CFProxyPort, CFProxyAuth, CFProxyUID, CFProxyPwd
Configurazione di SSL
Se ci si connette a Databricks con SSL (Secure Sockets Layer) abilitato, è possibile configurare il connettore per la connessione a un socket abilitato per SSL. Quando ci si connette a un server tramite SSL, il connettore usa l'autenticazione unidirezionale per verificare l'identità del server.
L'autenticazione unidirezionale richiede un certificato SSL firmato e attendibile per verificare l'identità del server. È possibile configurare il connettore per accedere a un truststore specifico che contiene il certificato appropriato. Se non si specifica un truststore, il connettore usa il truststore Java predefinito denominato jssecacerts. Se jssecacerts non è disponibile, il connettore usa invece cacerts.
Per configurare SSL:
- Impostare la proprietà SSL su 1.
- Se non si utilizza uno dei Truststore Java predefiniti, creare un proprio Truststore e configurare il connettore per utilizzarlo:
- Creare un negozio di fiducia contenente il certificato firmato e attendibile del server.
- Impostare la proprietà SSLTrustStore sul percorso completo del TrustStore.
- Impostare la proprietà SSLTrustStorePwd sulla password per l'accesso a TrustStore.
- Se TrustStore non è un truststore JKS, impostare la proprietà SSLTrustStoreType sul tipo corretto. I tipi supportati sono:
- SSLTrustStoreType=BCFKS (Keystore BouncyCastle FIPS)
- SSLTrustStoreType=PKCS12 (standard di crittografia a chiave pubblica n. 12)
In alcuni casi, in cui si vuole modificare la strategia di revoca dei certificati, il connettore fornisce i parametri seguenti:
- La proprietà CheckCertRevocation se impostata su 0 accetterà i certificati revocati (il valore predefinito della proprietà è 1)
- La proprietà AcceptUndeterminedRevocation se impostata su 1 accetterà i certificati in cui non è possibile identificare lo stato di revoca dei certificati (CRLDP non è raggiungibile/timeout e così via), il valore predefinito di questa proprietà è 0
Autentica il driver
È possibile autenticare la connessione al driver JDBC usando uno dei meccanismi di autenticazione seguenti:
- autenticazione OAuth da utente a macchina (U2M) (scelta consigliata)
- M2M utilizzando le identità gestite di Azure
- Token di accesso personale di Azure Databricks
Autenticazione OAuth da utente a macchina (U2M)
Il driver JDBC supporta l'autenticazione OAuth utente-macchina (U2M) per l'accesso da parte di esseri umani in tempo reale e il consenso per autenticare l'account utente di destinazione su Databricks. Questa operazione è nota anche come autenticazione OAuth basata su browser.
Azure Databricks ha creato l'ID client OAuth databricks-sql-jdbc per i clienti. Si tratta anche dell'ID client OAuth predefinito usato nel driver JDBC. Per configurare l'autenticazione U2M OAuth, è sufficiente aggiungere le proprietà seguenti all'URL di connessione JDBC esistente o all'oggetto java.util.Properties:
| Proprietà | Valore |
|---|---|
AuthMech |
11 |
Auth_Flow |
2 |
TokenCachePassPhrase |
Passphrase usata per crittografare le credenziali U2M OAuth memorizzate nella cache. In questo modo si evitano le autenticazioni ripetute basate su browser. Per non utilizzare la memorizzazione nella cache dei token, impostare EnableTokenCache su 0. |
Autenticazione OAuth da computer a computer (M2M)
Il driver JDBC supporta l'autenticazione OAuth da macchina a macchina (M2M), nota anche come autenticazione OAuth 2.0 client credentials, utilizzando uno dei seguenti principi o identità. Vedere Autorizzare l'accesso dell'entità servizio ad Azure Databricks con OAuth.
- Un principal di servizio Databricks
- Un principale del servizio gestito di Azure
- Un'identità gestita di Azure (assegnata dal sistema o assegnata dall'utente)
M2M utilizzando il principal di servizio gestito di Databricks
Per configurare l'autenticazione utilizzando un principal di servizio gestito da Databricks:
- Crea un service-principal gestito da Databricks e assegnalo agli account e agli spazi di lavoro Databricks.
- Crea un segreto OAuth di Databricks per il principale del servizio. Vedi guida di configurazione OAuth M2M.
- Concedi autorizzazioni di accesso a cluster e magazzini SQL.
- Aggiungere le proprietà seguenti all'URL di connessione JDBC esistente o all'oggetto
java.util.Properties:
| Proprietà | Valore |
|---|---|
AuthMech |
11 |
Auth_Flow |
1 |
OAuth2ClientID |
Valore ID applicazione (client) dell'entità servizio. |
OAuth2Secret |
Segreto OAuth di Azure Databricks del principale del servizio. |
M2M utilizzando il principal del servizio gestito di Azure
Per configurare l'autenticazione utilizzando un principale del servizio gestito da Azure:
- Crea un segreto OAuth di Databricks per il principale del servizio. Vedi guida di configurazione OAuth M2M.
- Concedi autorizzazioni di accesso a cluster e magazzini SQL.
- Aggiungere le proprietà seguenti all'URL di connessione JDBC esistente o all'oggetto
java.util.Properties:
| Proprietà | Valore |
|---|---|
AuthMech |
11 |
Auth_Flow |
1 |
OAuth2ClientID |
Valore ID applicazione (client) dell'entità servizio. |
AzureTenantID |
L'ID del tenant di Azure trovato in Azure Active Directory. |
OAuth2Secret |
Segreto OAuth di Azure Databricks del principale del servizio. |
M2M utilizzando le identità gestite di Azure
Per configurare l'autenticazione utilizzando le identità gestite di Azure:
- Configura identità gestite per le tue risorse Azure.
- Concedi autorizzazioni di accesso a cluster e magazzini SQL.
- Aggiungere le proprietà seguenti all'URL di connessione JDBC esistente o all'oggetto
java.util.Properties:
| Proprietà | Valore |
|---|---|
AuthMech |
11 |
Auth_Flow |
3 |
OAuth2ClientID |
ID client dell'identità gestita. Questo è un parametro richiesto solo se si utilizza un'identità gestita assegnata dall'utente. |
Azure_workspace_resource_id |
L'ID risorsa Azure del tuo workspace Databricks |
Token di accesso personale di Azure Databricks
Per autenticare la connessione al driver JDBC usando un token di accesso personale di Azure Databricks , aggiungere le proprietà seguenti all'URL di connessione JDBC o all'oggetto java.util.Properties:
| Proprietà | Valore |
|---|---|
AuthMech |
3 |
user |
Il valore token, come stringa. |
PWD o password |
Il valore del token di accesso personale di Azure Databricks, come stringa di testo. |