JDBC- und ODBC-Treiber und -KonfigurationsparameterJDBC and ODBC drivers and configuration parameters

Sie können Business Intelligence (BI)-Tools mit Azure Databricks Arbeitsbereichs Clustern und SQL-Analyse-SQL-Endpunkten verbinden, um Daten in Tabellen abzufragen.You can connect business intelligence (BI) tools to Azure Databricks Workspace clusters and SQL Analytics SQL endpoints to query data in tables. In diesem Artikel wird beschrieben, wie Sie JDBC-und ODBC-Treiber und Konfigurationsparameter zum Herstellen einer Verbindung mit Clustern und SQL-Endpunkten erhalten.This article describes how to get JDBC and ODBC drivers and configuration parameters to connect to clusters and SQL endpoints. Tool spezifische Verbindungs Anweisungen finden Sie unter Business Intelligence-Tools.For tool-specific connection instructions, see Business intelligence tools.

BerechtigungsanforderungenPermission requirements

Die für den Zugriff auf computeressourcen mithilfe von JDBC oder ODBC erforderlichen Berechtigungen sind davon abhängig, ob Sie eine Verbindung mit einem Cluster oder einem SQL-Endpunkt herstellen.The permissions required to access compute resources using JDBC or ODBC depend on whether you are connecting to a cluster or a SQL endpoint.

Cluster Anforderungen für Azure Databricks ArbeitsbereichAzure Databricks Workspace cluster requirements

Um auf einen Cluster zuzugreifen, müssen Sie über die Berechtigung zum Anfügen an die Berechtigungverfügen.To access a cluster, you must have Can Attach To permission.

Wenn Sie eine Verbindung mit einem beendeten Cluster herstellen und die Berechtigung kann neu starten , wird der Cluster gestartet.If you connect to a terminated cluster and have Can Restart permission, the cluster is started.

SQL-Analyse Endpunkt Anforderungen Azure DatabricksAzure Databricks SQL Analytics SQL endpoint requirements

Für den Zugriff auf einen SQL-Endpunkt müssen Sie über die Berechtigungzum verwenden von verfügen.To access a SQL endpoint, you must have Can Use permission.

Wenn Sie eine Verbindung mit einem beendeten Endpunkt herstellen und die-Berechtigung verwenden kann , wird der SQL-Endpunkt gestartet.If you connect to a stopped endpoint and have Can Use permission, the SQL endpoint is started.

Schritt 1: herunterladen und Installieren eines JDBC-oder ODBC- Treibers Step 1: Download and install a JDBC or ODBC driver

Für alle BI-Tools benötigen Sie einen JDBC-oder ODBC-Treiber, um eine Verbindung mit Azure Databricks Clustern herzustellen.For all BI tools, you need a JDBC or ODBC driver to make a connection to Azure Databricks clusters.

  1. Wechseln Sie zur Download Seite für den databricks-JDBC-/ODBC-Treiber.Go to the Databricks JDBC / ODBC Driver Download page.
  2. Füllen Sie das Formular aus, und senden Sie es.Fill out the form and submit it. Die Seite wird mit Links zu mehreren Download Optionen aktualisiert.The page will update with links to multiple download options.
  3. Wählen Sie einen Treiber aus, und laden Sie ihn herunter.Select a driver and download it.
  4. Installieren Sie den Treiber.Install the driver. Für JDBC wird eine JAR-Datei bereitgestellt, für die keine Installation erforderlich ist.For JDBC, a JAR is provided which does not require installation. Für ODBC wird ein Installationspaket für die ausgewählte Plattform bereitgestellt, die auf Ihrem System installiert werden muss.For ODBC, an installation package is provided for your chosen platform that must be installed on your system.

Schritt 2: Erfassen von JDBC-oder ODBC-VerbindungsinformationenStep 2: Collect JDBC or ODBC connection information

Zum Konfigurieren eines JDBC-oder ODBC-Treibers müssen Sie die Verbindungsinformationen von Azure Databricks erfassen.To configure a JDBC or ODBC driver, you must collect connection information from Azure Databricks. Im folgenden finden Sie einige der Parameter, die ein JDBC-oder ODBC-Treiber erfordern könnte:Here are some of the parameters a JDBC or ODBC driver might require:

ParameterParameter WertValue
AuthentifizierungAuthentication Weitere Informationen finden Sie unter Get Authentication.See Get authentication credentials.
Host, Port, HTTP-Pfad, JDBC-URLHost, port, HTTP path, JDBC URL Weitere Informationen finden Sie unter Get Server Hostname, Port, http Path und JDBC URL.See Get server hostname, port, HTTP path, and JDBC URL.

Folgendes wird in der Regel in httpPath für JDBC und in der DSN-conf für ODBC angegeben:The following are usually specified in the httpPath for JDBC and the DSN conf for ODBC:

ParameterParameter WertValue
Spark-ServertypSpark server type Spark Thrift-ServerSpark Thrift Server
Schema/DatenbankSchema/Database defaultdefault
Authentifizierungsmechanismus AuthMechAuthentication mechanism AuthMech Weitere Informationen finden Sie unter Get Authentication.See Get authentication credentials.
Thrift-TransportThrift transport httphttp
SSLSSL 11

Authentifizierungs Anmelde Informationen erhalten Get authentication credentials

In diesem Abschnitt wird beschrieben, wie die für die Authentifizierung von BI-Tools unterstützten Anmelde Informationen zum Azure Databricks von computeressourcen erfasst werdenThis section describes how to collect the credentials supported for authenticating BI tools to Azure Databricks compute resources.

Authentifizierung mit Benutzername und KennwortUsername and password authentication

Die Vorgehensweise zum Abrufen von Zugriffs Anmelde Informationen hängt davon ab, ob Sie einen Cluster oder einen SQL-Endpunkt verwenden.The procedure for retrieving an access credential depends on whether you are using a cluster or a SQL endpoint.

Databricks-JDBC-und ODBC-Treiber unterstützen keine Azure Active Directory Benutzernamen-und Kenn Wort Authentifizierung.Databricks JDBC and ODBC drivers do not support Azure Active Directory username and password authentication.

Azure Active Directory TokenauthentifizierungAzure Active Directory token authentication

Databricks JDBC-und ODBC-Treiber 2.6.15 und höher unterstützen Azure Active Directory Tokenauthentifizierung.Databricks JDBC and ODBC drivers 2.6.15 and above support Azure Active Directory token authentication. Abrufen eines Tokens mithilfe des unter Abrufen eines ZugriffsTokens beschriebenen Verfahrens.Get a token using the procedure described in Get an access token.

Server Hostname, Port, HTTP-Pfad und JDBC-URL erhaltenGet server hostname, port, HTTP path, and JDBC URL

Die Vorgehensweise zum Abrufen von JDBC-und ODBC-Parametern hängt davon ab, ob Sie einen Azure Databricks Arbeitsbereichs Cluster oder einen SQL-Analyse-SQL-Endpunkt verwenden.The procedure for retrieving JDBC and ODBC parameters depends on whether you are using an Azure Databricks Workspace cluster or a SQL Analytics SQL endpoint.

Inhalt dieses Abschnitts:In this section:

Arbeitsbereichs ClusterWorkspace cluster

  1. Klicken Sie auf das SymbolClick the Cluster (Symbol) in der Seitenleiste.icon in the sidebar.

  2. Klicken Sie auf einen Cluster.Click a cluster.

  3. Klicken Sie auf die UMSCHALT Fläche Erweiterte Optionen .Click the Advanced Options toggle.

  4. Klicken Sie auf die Registerkarte JDBC/ODBC .Click the JDBC/ODBC tab.

    JDBC-Registerkarte "ODBC"JDBC-ODBC tab

  5. Kopieren Sie die für das BI-Tool erforderlichen Parameter.Copy the parameters required by your BI tool.

Schritt 3: Konfigurieren von VerbindungsparameternStep 3: Configure connection parameters

JDBC- URL konfigurieren Configure JDBC URL

Authentifizierung mit Benutzername und KennwortUsername and password authentication

  1. Ersetzen <personal-access-token> Sie durch das Token, das Sie in Get Authentication AnmeldeInformationen erstellt haben.Replace <personal-access-token> with the token you created in Get authentication credentials. Beispiel:For example:

    jdbc:spark://<server-hostname>:443/default;transportMode=http;ssl=1;httpPath=sql/protocolv1/o/0/xxxx-xxxxxx-xxxxxxxx;AuthMech=3;UID=token;PWD=dapideadbeefdeadbeefdeadbeefdeadbeef
    

Azure Active Directory TokenauthentifizierungAzure Active Directory token authentication

  1. Entfernen Sie die vorhandenen Authentifizierungs Parameter ( AuthMech, UID, PWD ):Remove the existing authentication parameters (AuthMech, UID, PWD):

    AuthMech=3;UID=token;PWD=<personal-access-token>
    
  2. Fügen Sie die folgenden Parameter hinzu, indem Sie das Azure AD Token verwenden, das Sie in Get AuthenticationAdd the following parameters, using the Azure AD token obtained in Get authentication credentials.

    AuthMech=11;Auth_Flow=0;Auth_AccessToken=<Azure AD token>
    

Siehe auch Aktualisieren eines Azure Active DirectoryTokens.Also see Refresh an Azure Active Directory token.

SQL-Analyse-Endpunkt von SQLSQL Analytics SQL endpoint

  1. Klicken Sie auf das SymbolClick the Symbol "Endpunkte" in der Seitenleiste.icon in the sidebar.

  2. Klicken Sie auf einen Endpunkt.Click an endpoint.

  3. Klicken Sie auf die Registerkarte Verbindungs Details .Click the Connection Details tab.

    VerbindungsdetailsConnection details

  4. Kopieren Sie die für das BI-Tool erforderlichen Parameter.Copy the parameters required by your BI tool.

  5. Wenn das Tool die JDBC-URL erfordert, ersetzen <personal-access-token> Sie durch das Token, das Sie in Get Authentication-AnmeldeInformationen erstellt haben.If your tool requires the JDBC URL, replace <personal-access-token> with the token you created in Get authentication credentials. Beispiel:For example:

    jdbc:spark://<server-hostname>:443/default;transportMode=http;ssl=1;httpPath=sql/protocolv1/o/0/xxxx-xxxxxx-xxxxxxxx;AuthMech=3;UID=token;PWD=dapideadbeefdeadbeefdeadbeefdeadbeef
    

Konfigurieren von für die systemeigene Abfrage SyntaxConfigure for native query syntax

JDBC-und ODBC-Treiber akzeptieren SQL-Abfragen im ANSI SQL-92-Dialekt und übersetzen die Abfragen in Spark SQL.JDBC and ODBC drivers accept SQL queries in ANSI SQL-92 dialect and translate the queries to Spark SQL. Wenn Ihre Anwendung Spark SQL direkt generiert oder Ihre Anwendung eine nicht-ANSI SQL-92 Standard-SQL-Syntax für Databricks Runtime verwendet, empfiehlt databricks, dass Sie ;UseNativeQuery=1 der Verbindungs Konfiguration hinzufügen.If your application generates Spark SQL directly or your application uses any non-ANSI SQL-92 standard SQL syntax specific to Databricks Runtime, Databricks recommends that you add ;UseNativeQuery=1 to the connection configuration. Mit dieser Einstellung übergeben Treiber die SQL-Abfragen wörtlich an Databricks Runtime.With that setting, drivers pass the SQL queries verbatim to Databricks Runtime.

Konfigurieren des ODBC-Datenquellen namens für den Simba ODBC -Treiber Configure ODBC Data Source Name for the Simba ODBC driver

Die Konfiguration des Datenquellen namens (Data Source Name, DSN) enthält die Parameter für die Kommunikation mit einer bestimmten Datenbank.The Data Source Name (DSN) configuration contains the parameters for communicating with a specific database. BI-Tools wie Tableau stellen in der Regel eine Benutzeroberfläche für die Eingabe dieser Parameter bereit.BI tools like Tableau usually provide a user interface for entering these parameters. Wenn Sie den Simba-ODBC-Treiber selbst installieren und verwalten müssen, müssen Sie möglicherweise die Konfigurationsdateien erstellen und dem Treiber-Manager (ODBC-Datenquellen-Administrator unter Windows und unixodbc / iODBC auf Unix) den Zugriff auf diese Dateien gestatten.If you have to install and manage the Simba ODBC driver yourself, you might need to create the configuration files and also allow your Driver Manager (ODBC Data Source Administrator on Windows and unixODBC/iODBC on Unix) to access them. Erstellen Sie zwei Dateien: /etc/odbc.ini und /etc/odbcinst.ini .Create two files: /etc/odbc.ini and /etc/odbcinst.ini.

/etc/odbc.ini

Authentifizierung mit Benutzername und KennwortUsername and password authentication
  1. Legen Sie den Inhalt von /etc/odbc.ini auf fest:Set the content of /etc/odbc.ini to:

    [Databricks-Spark]
    Driver=Simba
    Server=<server-hostname>
    HOST=<server-hostname>
    PORT=<port>
    SparkServerType=3
    Schema=default
    ThriftTransport=2
    SSL=1
    AuthMech=3
    UID=token
    PWD=<personal-access-token>
    HTTPPath=<http-path>
    
  2. Legen <personal-access-token> Sie auf das Token fest, das Sie in Get Authentication AnmeldeInformationen abgerufen habenSet <personal-access-token> to the token you retrieved in Get authentication credentials.

  3. Legen Sie die Parameter Server, Port und http auf die Werte fest, die Sie in Get Server Hostname, Port, http Path und JDBC URLabgerufen haben.Set the server, port, and HTTP parameters to the ones you retrieved in Get server hostname, port, HTTP path, and JDBC URL.

Azure Active Directory TokenauthentifizierungAzure Active Directory token authentication
  1. Legen Sie den Inhalt von /etc/odbc.ini auf fest:Set the content of /etc/odbc.ini to:

    [Databricks-Spark]
    Driver=Simba
    Server=<server-hostname>
    HOST=<server-hostname>
    PORT=443
    HTTPPath=<http-path>
    SparkServerType=3
    Schema=default
    ThriftTransport=2
    SSL=1
    AuthMech=11
    Auth_Flow=0
    Auth_AccessToken=<Azure AD token>
    
  2. Legen <Azure AD token> Sie auf das Azure Active Directory Token fest, das Sie in Get Authentication AnmeldeInformationen abgerufen haben.Set <Azure AD token> to the Azure Active Directory token you retrieved in Get authentication credentials.

  3. Legen Sie die Parameter Server, Port und http auf die Werte fest, die Sie in Get Server Hostname, Port, http Path und JDBC URLabgerufen haben.Set the server, port, and HTTP parameters to the ones you retrieved in Get server hostname, port, HTTP path, and JDBC URL.

Siehe auch Aktualisieren eines Azure Active DirectoryTokens.Also see Refresh an Azure Active Directory token.

/etc/odbcinst.ini

Legen Sie den Inhalt von /etc/odbcinst.ini auf fest:Set the content of /etc/odbcinst.ini to:

[ODBC Drivers]
Simba = Installed
[Simba Spark ODBC Driver 64-bit]
Driver = <driver-path>

Legen <driver-path> Sie entsprechend dem Betriebssystem fest, das Sie beim Herunterladen des Treibers in Schritt 1 ausgewählt haben:Set <driver-path> according to the operating system you chose when you downloaded the driver in Step 1:

  • MacOS /Library/simba/spark/lib/libsparkodbc_sbu.dylibMacOs /Library/simba/spark/lib/libsparkodbc_sbu.dylib
  • Linux (64 Bit) /opt/simba/spark/lib/64/libsparkodbc_sb64.soLinux (64-bit) /opt/simba/spark/lib/64/libsparkodbc_sb64.so
  • Linux (32 Bit) /opt/simba/spark/lib/32/libsparkodbc_sb32.soLinux (32-bit) /opt/simba/spark/lib/32/libsparkodbc_sb32.so

Pfade konfigurierenConfigure paths

Geben Sie die Pfade der beiden Dateien in Umgebungsvariablen an, damit Sie vom Treiber-Manager verwendet werden können:Specify the paths of the two files in environment variables so that they can be used by the Driver Manager:

export ODBCINI=/etc/odbc.ini
export ODBCSYSINI=/etc/odbcinst.ini
export SIMBASPARKINI=<simba-ini-path>/simba.sparkodbc.ini # (Contains the configuration for debugging the Simba driver)

Where <simba-ini-path> istwhere <simba-ini-path> is

  • MacOS /Library/simba/spark/libMacOS /Library/simba/spark/lib
  • Linux (64 Bit) /opt/simba/sparkodbc/lib/64Linux (64-bit) /opt/simba/sparkodbc/lib/64
  • Linux (32 Bit) /opt/simba/sparkodbc/lib/32Linux (32-bit) /opt/simba/sparkodbc/lib/32

Aktualisieren eines Azure Active Directory Tokens Refresh an Azure Active Directory token

Ein Azure Active Directory Token läuft nach einer Stunde ab.An Azure Active Directory token expires after 1 hour. Wenn das Zugriffs Token nicht mithilfe von aktualisiert wird refresh_token , müssen Sie das Token manuell durch ein neues ersetzen.If the access token is not refreshed using the refresh_token, you must manually replace the token with a new one. In diesem Abschnitt wird beschrieben, wie das Token einer vorhandenen Sitzung Programm gesteuert aktualisiert wird, ohne dass die Verbindung unterbrochen wird.This section describes how to programmatically refresh the token of an existing session without breaking the connection.

  1. Führen Sie die Schritte in Aktualisieren eines ZugriffsTokens aus.Follow the steps in Refresh an access token.
  2. Aktualisieren Sie das Token wie folgt:Update the token as follows:
    • JDBC: wird java.sql.Connection.setClientInfo mit dem neuen Wert für aufgerufen Auth_AccessToken .JDBC: Call java.sql.Connection.setClientInfo with the new value for Auth_AccessToken .
    • ODBC: wird SQLSetConnectAttr SQL_ATTR_CREDENTIALS mit dem neuen Wert für aufgerufen Auth_AccessToken .ODBC: Call SQLSetConnectAttr for SQL_ATTR_CREDENTIALS with the new value for Auth_AccessToken.

ProblembehandlungTroubleshooting

Siehe Problembehandlung bei JDBC-und ODBC-Verbindungen.See Troubleshooting JDBC and ODBC connections.