Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie eine Verbindung mit Databricks mithilfe des Databricks JDBC-Treibers (OSS)konfigurieren.
Konfigurieren der Verbindung
Um eine Verbindung mit Ihrem Azure Databricks-Arbeitsbereich mithilfe des JDBC-Treibers herzustellen, müssen Sie verschiedene Verbindungseinstellungen angeben, wie den Server-Hostname Ihres Azure Databricks-Arbeitsbereichs, die Recheneinstellungen und Authentifizierungsdaten.
Sie können den Wert dieser Eigenschaften in der JDBC-Verbindungs-URL festlegen und an die DriverManager.getConnection-Methode übergeben oder eine Kombination aus beidem. In der Dokumentation des Anbieters erfahren Sie, wie Sie eine Verbindung mit Ihrer spezifischen App, Ihrem Client, dem SDK, der API oder dem SQL-Tool herstellen können.
Die JDBC-Verbindungs-URL muss im folgenden Format vorliegen. Bei Eigenschaften wird die Groß-/Kleinschreibung nicht berücksichtigt.
jdbc:databricks://<server-hostname>:<port>/<schema>;[property1]=[value];[property2]=[value];...
Alternativ können Sie die Einstellungen mithilfe der java.util.Properties
Klasse oder einer Kombination angeben:
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");
Verbindungs-URL-Elemente werden in der folgenden Tabelle beschrieben.
Informationen zu zusätzlichen Eigenschaften, einschließlich Authentifizierungseigenschaften, SQL-Konfigurationseigenschaften und Protokollierungseigenschaften, finden Sie unter Unterstützten Verbindungseigenschaften.
Hinweis
Bei URL-Elementen und -Eigenschaften wird die Groß-/Kleinschreibung nicht beachtet.
URL-Element oder -Eigenschaft | BESCHREIBUNG |
---|---|
<server-hostname> |
Der Server-Hostname-Wert der Azure-Databricks-Ressource. |
<port> |
Der Portwert der Azure Databricks-Ressource wird berechnet. Der Standardwert ist 443 . |
<schema> |
Der Name des Schemas. Alternativ können Sie die eigenschaft ConnSchema festlegen. Weitere Informationen finden Sie unter Unterstützte Verbindungseigenschaften. |
httpPath |
Der HTTP-Pfadwert der Azure Databricks-Computing-Ressource. Der Connector bildet die HTTP-Adresse, mit der eine Verbindung hergestellt werden soll, indem der Wert httpPath an den Host und den in der Verbindungs-URL angegebenen Port angefügt wird. Um beispielsweise eine Verbindung mit der HTTP-Adresse http://localhost:10002/cliservice herzustellen, verwenden Sie die folgende Verbindungs-URL: jdbc:databricks://localhost:10002;httpPath=cliservice |
So rufen Sie die JDBC-Verbindungs-URL für einen Azure Databricks-Cluster ab:
- Melden Sie sich bei Ihrem Azure Databricks-Arbeitsbereich an.
- Klicken Sie in der Randleiste auf "Berechnen", und klicken Sie dann auf den Namen des Zielclusters.
- Erweitern Sie auf der Registerkarte Konfiguration die Option Erweiterte Optionen.
- Klicken Sie auf die Registerkarte JDBC/ODBC.
- Kopieren Sie die JDBC-URL, um sie als JDBC-Verbindungs-URL zu verwenden, oder erstellen Sie die URL aus Werten im Server-Hostname, Portund HTTP-Pfad Felder.
So rufen Sie die JDBC-Verbindungs-URL für ein Databricks SQL Warehouseab:
- Melden Sie sich bei Ihrem Azure Databricks-Arbeitsbereich an.
- Klicken Sie in der Randleiste auf SQL Warehouses, und klicken Sie dann auf den Namen des Ziellagers.
- Klicken Sie auf die Registerkarte Verbindungsdetails.
- Kopieren Sie die JDBC-URL, um sie als JDBC-Verbindungs-URL zu verwenden, oder erstellen Sie die URL aus Werten im Server-Hostname, Portund HTTP-Pfad Felder.
Konfigurieren von Proxyverbindungen
Sie können den Connector so konfigurieren, dass er über einen Proxyserver verbunden wird, anstatt eine direkte Verbindung mit Databricks herzustellen. Beim Herstellen einer Verbindung über einen Proxyserver unterstützt der Connector die grundlegende und SPNEGO-Authentifizierung.
So konfigurieren Sie eine Proxyverbindung:
- Legen Sie die eigenschaft
UseProxy
auf 1 fest. - Um Proxyeinstellungen auf Systemebene zu konfigurieren, legen Sie
UseSystemProxy
Eigenschaft auf 1 fest, andernfalls legen Sie sie für den Treiber wie folgt fest:- Legen Sie die eigenschaft
ProxyHost
auf die IP-Adresse oder den Hostnamen Ihres Proxyservers fest. - Legen Sie die eigenschaft
ProxyPort
auf den Port fest, den der Proxyserver zum Überwachen von Clientverbindungen verwendet. - Legen Sie die eigenschaft
ProxyIgnoreList
auf einen durch Trennzeichen getrennten Hostnamen fest. - Authentifizieren mit dem Proxyserver:
- So verwenden Sie die Standardauthentifizierung
- Legen Sie die eigenschaft
ProxyAuth
auf 1 fest. - Legen Sie die eigenschaft
ProxyUID
auf Ihren Benutzernamen für den Zugriff auf den Server fest. - Legen Sie die eigenschaft
ProxyPWD
auf Ihr Kennwort für den Zugriff auf den Server fest.
- Legen Sie die eigenschaft
- So verwenden Sie die SPNEGO-Authentifizierung:
- Authentifizieren Sie Ihren Kerberos-Prinzipal auf Systemebene.
- Legen Sie die eigenschaft
ProxyAuth
auf 2 fest.
- So verwenden Sie die Standardauthentifizierung
- Legen Sie die eigenschaft
Um einen anderen Proxy speziell für CloudFetch zu verwenden, führen Sie die oben aufgeführten Schritte mit den folgenden Eigenschaften aus: UseCFProxy
, CFProxyHost
, CFProxyPort
, CFProxyAuth
, CFProxyUID
, CFProxyPwd
Konfigurieren von SSL
Wenn Sie eine Verbindung mit Databricks herstellen, für die Secure Sockets Layer (SSL) aktiviert ist, können Sie den Connector so konfigurieren, dass er eine Verbindung mit einem SSL-fähigen Socket herstellt. Beim Herstellen einer Verbindung mit einem Server über SSL verwendet der Connector eine unidirektionale Authentifizierung, um die Identität des Servers zu überprüfen.
Für die unidirektionale Authentifizierung ist ein signiertes, vertrauenswürdiges SSL-Zertifikat erforderlich, um die Identität des Servers zu überprüfen. Sie können den Connector für den Zugriff auf einen bestimmten TrustStore konfigurieren, der das entsprechende Zertifikat enthält. Wenn Sie keinen TrustStore angeben, verwendet der Connector den standardmäßigen Java TrustStore mit dem Namen jssecacerts. Wenn jssecacerts nicht verfügbar ist, verwendet der Connector stattdessen cacerts.
So konfigurieren Sie SSL:
- Legen Sie die SSL-Eigenschaft auf 1 fest.
- Wenn Sie keinen der standardmäßigen Java Trust Stores verwenden, erstellen Sie einen Trust Store, und konfigurieren Sie den Connector für die Verwendung:
- Erstellen Sie einen Vertrauensspeicher mit Ihrem signierten, vertrauenswürdigen Serverzertifikat.
- Legen Sie die SSLTrustStore-Eigenschaft auf den vollständigen Pfad des TrustStore fest.
- Legen Sie die SSLTrustStorePwd-Eigenschaft auf das Kennwort für den Zugriff auf den TrustStore fest.
- Wenn der TrustStore kein JKS TrustStore ist, legen Sie die SSLTrustStoreType-Eigenschaft auf den richtigen Typ fest. Die unterstützten Typen sind:
- SSLTrustStoreType=BCFKS (BouncyCastle FIPS Keystore)
- SSLTrustStoreType=PKCS12 (Public Key Cryptography Standards #12)
In bestimmten Fällen, in denen Sie die Zertifikatsperrstrategie ändern möchten, stellt der Connector die folgenden Parameter bereit:
- CheckCertRevocation-Eigenschaft, wenn auf 0 festgelegt ist, akzeptiert Zertifikate, die widerrufen werden (Standardwert der Eigenschaft ist 1)
- AcceptUndeterminedRevocation-Eigenschaft, wenn sie auf 1 festgelegt ist, akzeptiert Zertifikate, bei denen wir den Sperrstatus der Zertifikate nicht identifizieren können (CRLDP ist nicht erreichbar/timesout usw.), der Standardwert dieser Eigenschaft ist 0.
Fahrer authentifizieren
Sie können die JDBC-Treiberverbindung mithilfe eines der folgenden Authentifizierungsmechanismen herstellen:
- OAuth Benutzer-zu-Maschine (U2M) Authentifizierung (Empfohlen)
- M2M mit verwalteten Azure-Identitäten
- Persönliches Zugriffstoken für Azure Databricks
OAuth-Benutzer-zu-Computer-Authentifizierung (U2M)
Der JDBC-Treiber unterstützt die OAuth-User-to-Machine-Authentifizierung (U2M) für die Echtzeit-Anmeldung von Nutzern und die Einwilligung zur Authentifizierung des Databricks-Zielbenutzerkontos. Dies wird auch als browserbasierte OAuth-Authentifizierung bezeichnet.
Azure Databricks hat die OAuth-Client-ID databricks-sql-jdbc
für Kunden erstellt. Dies ist auch die Standard-OAuth-Client-ID, die im JDBC-Treiber verwendet wird. Um die OAuth U2M-Authentifizierung zu konfigurieren, fügen Sie einfach die folgenden Eigenschaften zu Ihrer vorhandenen JDBC-Verbindungs-URL oder dem java.util.Properties
-Objekt hinzu:
Eigentum | Wert |
---|---|
AuthMech |
11 |
Auth_Flow |
2 |
TokenCachePassPhrase |
Die Passphrase, die zum Verschlüsseln Ihrer zwischengespeicherten OAuth U2M-Anmeldeinformationen verwendet wird. Dadurch werden wiederholte browserbasierte Authentifizierungen verhindert. Um das Zwischenspeichern von Token zu deaktivieren, legen Sie diesen EnableTokenCache Wert auf 0 . |
OAuth-Computer-zu-Computer-Authentifizierung (M2M)
Der JDBC-Treiber unterstützt die OAuth-Computer-zu-Computer-Authentifizierung (M2M), die auch als OAuth 2.0-Authentifizierung mit Clientanmeldeinformationen bezeichnet wird, unter Verwendung der folgenden Prinzipale oder Identitäten. Weitere Informationen finden Sie unter Autorisieren des unbeaufsichtigten Zugriffs auf Azure Databricks-Ressourcen mit einem Dienstprinzipal mithilfe von OAuth.
- Databricks-Dienstprinzipal
- Ein verwalteter Azure-Dienstprinzipal
- Eine von Azure verwaltete Identität (vom System zugewiesen oder vom Benutzer zugewiesen)
M2M mithilfe von verwaltetem Databricks-Dienstprinzipal
So konfigurieren Sie die Authentifizierung mit einem von Databricks verwalteten Dienstprinzipal:
- Erstellen Sie einen verwalteten Databricks-Dienstprinzipal, und weisen Sie diesen Databricks-Konten und Arbeitsbereichen zu.
- Erstellen Sie einen OAuth-Schlüssel für Databricks für den Dienstprinzipal. Siehe OAuth M2M-Setuphandbuch.
- Gewähren sie Zugriffsberechtigungen für Cluster und SQL-Lagerhäuser.
- Fügen Sie die folgenden Eigenschaften zu Ihrer vorhandenen JDBC-Verbindungs-URL oder Ihrem
java.util.Properties
-Objekt hinzu.
Eigentum | Wert |
---|---|
AuthMech |
11 |
Auth_Flow |
1 |
OAuth2ClientID |
Der Anwendungs- (Client-) ID-Wert des Dienstprinzipals. |
OAuth2Secret |
Der Azure Databricks-OAuth-Schlüssel des Dienstprinzipals. |
M2M mit azure managed service principal
So konfigurieren Sie die Authentifizierung mit einem Azure Managed Service Principal:
- Erstellen Sie einen OAuth-Schlüssel für Databricks für den Dienstprinzipal. Siehe OAuth M2M-Setuphandbuch.
- Gewähren sie Zugriffsberechtigungen für Cluster und SQL-Lagerhäuser.
- Fügen Sie die folgenden Eigenschaften zu Ihrer vorhandenen JDBC-Verbindungs-URL oder Ihrem
java.util.Properties
-Objekt hinzu.
Eigentum | Wert |
---|---|
AuthMech |
11 |
Auth_Flow |
1 |
OAuth2ClientID |
Der Anwendungs- (Client-) ID-Wert des Dienstprinzipals. |
AzureTenantID |
Die Azure-Mandanten-ID in Azure Active Directory. |
OAuth2Secret |
Der Azure Databricks-OAuth-Schlüssel des Dienstprinzipals. |
M2M mit verwalteten Azure-Identitäten
So konfigurieren Sie die Authentifizierung mithilfe von azure verwalteten Identitäten:
- Konfigurieren Sie verwaltete Identitäten für Ihre Azure-Ressourcen.
- Gewähren sie Zugriffsberechtigungen für Cluster und SQL-Lagerhäuser.
- Fügen Sie die folgenden Eigenschaften zu Ihrer vorhandenen JDBC-Verbindungs-URL oder Ihrem
java.util.Properties
-Objekt hinzu.
Eigentum | Wert |
---|---|
AuthMech |
11 |
Auth_Flow |
3 |
OAuth2ClientID |
Die Client-ID der verwalteten Identität. Dies ist nur erforderlich, wenn Sie eine vom Benutzer zugewiesene verwaltete Identität verwenden. |
Azure_workspace_resource_id |
Die Azure-Ressourcen-ID des Databricks-Arbeitsbereichs |
Persönliches Zugriffstoken für Azure Databricks
Fügen Sie zur Authentifizierung Ihrer JDBC-Treiberverbindung mithilfe eines persönlichen Zugriffstokens für Azure Databricks die folgenden Eigenschaften zu Ihrer JDBC-Verbindungs-URL oder zum java.util.Properties
-Objekt hinzu:
Eigentum | Wert |
---|---|
AuthMech |
3 |
user |
Der Wert token als Zeichenfolge. |
PWD oder password |
Der Wert Ihres persönlichen Azure Databricks-Zugriffstokens als Zeichenfolge. |