Konfigurowanie połączenia z usługą Databricks przy użyciu sterownika JDBC usługi Databricks

Na tej stronie pokazano, jak skonfigurować połączenie z usługą Databricks przy użyciu sterownika JDBC usługi Databricks w wersji 3 lub nowszej.

Konfigurowanie połączenia

Aby nawiązać połączenie z obszarem roboczym Azure Databricks przy użyciu sterownika JDBC, należy określić ustawienia połączenia, w tym nazwę hosta serwera obszaru roboczego, ustawienia zasobów obliczeniowych i poświadczenia uwierzytelniania.

Uwaga / Notatka

Sterownik JDBC nie obsługuje łączenia się ze środowiskiem obliczeniowym zadań.

Ustaw te właściwości w adresie URL połączenia JDBC, przekaż je do metody DriverManager.getConnection lub użyj kombinacji obu tych elementów. Zapoznaj się z dokumentacją dostawcy, aby dowiedzieć się, jak najlepiej nawiązać połączenie przy użyciu określonej aplikacji, klienta, zestawu SDK, interfejsu API lub narzędzia SQL.

Adres URL połączenia JDBC musi mieć następujący format. Atrybuty są niewrażliwe na wielkość liter.

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

Alternatywnie określ ustawienia przy użyciu java.util.Properties klasy lub kombinacji:

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

Elementy adresu URL połączenia zostały opisane w poniższej tabeli.

Aby uzyskać informacje o dodatkowych właściwościach, w tym właściwościach uwierzytelniania, właściwościach konfiguracji SQL i właściwościach rejestrowania, zobacz Obsługiwane właściwości połączenia.

Uwaga / Notatka

Elementy i właściwości adresu URL są niewrażliwe na wielkość liter.

Element lub właściwość adresu URL Opis
<server-hostname> Wartość nazwy hosta serwera zasobu obliczeniowego usługi Azure Databricks.
<port> Wartość portu zasobu obliczeniowego usługi Azure Databricks. Wartość domyślna to 443.
<schema> Nazwa schematu. Opcjonalnie, ustaw właściwość ConnSchema. Zobacz Obsługiwane właściwości połączenia.
httpPath Wartość ścieżki HTTP zasobu obliczeniowego usługi Azure Databricks. Łącznik tworzy adres HTTP, z którym ma nawiązać połączenie, przez dołączenie wartości httpPath do hosta i portu podanego w adresie URL połączenia. Aby na przykład nawiązać połączenie z adresem http://localhost:10002/cliserviceHTTP, użyj następującego adresu URL połączenia: jdbc:databricks://localhost:10002;httpPath=cliservice

Aby uzyskać adres URL połączenia JDBC dla klastra usługi Azure Databricks :

  1. Zaloguj się do obszaru roboczego usługi Azure Databricks.
  2. Na pasku bocznym kliknij Compute, a następnie kliknij nazwę klastra docelowego.
  3. Na karcie Konfiguracja rozwiń pozycję Opcje zaawansowane.
  4. Kliknij kartę JDBC/ODBC .
  5. Skopiuj adres URL JDBC do użycia jako adres URL połączenia JDBC lub skonstruuj adres URL z wartości w polach Nazwa hosta serwera, Porti ścieżka HTTP.

Aby uzyskać adres URL połączenia JDBC dla usługi Databricks SQL Warehouse:

  1. Zaloguj się do obszaru roboczego usługi Azure Databricks.
  2. Na pasku bocznym kliknij pozycję SQL Warehouses, a następnie kliknij nazwę magazynu docelowego.
  3. Kliknij kartę Szczegóły połączenia.
  4. Skopiuj adres URL JDBC do użycia jako adres URL połączenia JDBC lub skonstruuj adres URL z wartości w polach Nazwa hosta serwera, Porti ścieżka HTTP.

Konfigurowanie tagów zapytań

Ważne

Ta funkcja jest dostępna w prywatnej wersji zapoznawczej. Aby zażądać dostępu, skontaktuj się z zespołem ds. kont.

Dołączanie tagów klucz-wartość do zapytań SQL na potrzeby śledzenia i analizy. Tagi są wyświetlane w system.query.history tabeli na potrzeby identyfikacji i analizy zapytań.

Aby dodać tagi zapytania do połączenia, dodaj właściwość query_tags do swojego adresu URL JDBC.

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

Tagi zapytań używają formatu pary klucz:wartość rozdzielane przecinkami:

  • query_tags=key:value (pojedynczy tag)
  • query_tags=key1:value1,key2:value2,key3:value3 (wiele tagów)

Konfigurowanie połączeń serwera proxy

Skonfiguruj łącznik, aby nawiązać połączenie za pośrednictwem serwera proxy zamiast łączyć się bezpośrednio z usługą Databricks. Łącznik obsługuje uwierzytelnianie podstawowe i SPNEGO podczas nawiązywania połączenia za pośrednictwem serwera proxy. Zobacz Obsługiwane właściwości połączenia.

Aby użyć ustawień serwera proxy na poziomie systemu, ustaw UseProxy=1 i UseSystemProxy=1.

Aby ręcznie skonfigurować ustawienia serwera proxy:

  1. Ustaw wartość UseProxy=1.
  2. Ustaw wartości ProxyHost, ProxyPorti ProxyIgnoreList.
  3. Aby uwierzytelnić się za pomocą serwera proxy, wybierz jedną z metod:
    • Podstawowa: Ustaw ProxyAuth=1, ProxyUIDi ProxyPWD.
    • SPNEGO (środowiska Kerberos): Uwierzytelnij swojego głównego użytkownika Kerberos na poziomie systemu, a następnie ustaw ProxyAuth=2.

Konfigurowanie serwera proxy na potrzeby pobierania w chmurze

Pobieranie w chmurze wymaga oddzielnej konfiguracji serwera proxy od głównego połączenia sterownika. Użyj właściwości połączenia UseCFProxy, CFProxyHost, CFProxyPort, CFProxyAuth, CFProxyUID i CFProxyPwd, aby kierować ruch Cloud Fetch przez serwer proxy. Zobacz Obsługiwane właściwości połączenia.

Jeśli sieć jest prywatna, zezwól *.blob.core.windows.net oraz *.store.core.windows.net, a następnie dodaj wymagane pobranie i unieważnienie certyfikatów do listy dozwolonych.

Troubleshooting

Jeśli nie możesz rozwiązać problemów z serwerem proxy, ustaw EnableQueryResultDownload=0 aby wyłączyć Cloud Fetch i wrócić do bezpośredniego pobierania.

Aby zdiagnozować problemy z wydajnością, ustaw opcję LogLevel=4 włączania rejestrowania na poziomie INFO. Sterownik rejestruje szybkość pobierania na fragment, więc duże zestawy wyników generują wiele wierszy dziennika:

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

Sterownik rejestruje ostrzeżenie, gdy szybkość pobierania spadnie poniżej około 1 MB/s. Składnik dziennika to com.databricks.client.spark.jdbc.ResultFileDownloadHandler. Jeśli pobieranie jest powolne lub zatrzymane, zwiększ, CloudFetchThreadPoolSize aby pobrać więcej fragmentów plików równolegle.

Konfigurowanie protokołu SSL

Jeśli łączysz się z obszarem roboczym usługi Databricks z włączonym protokołem SSL, skonfiguruj łącznik, aby nawiązać połączenie z gniazdem obsługującym protokół SSL. Łącznik używa uwierzytelniania jednokierunkowego w celu zweryfikowania tożsamości serwera.

Uwierzytelnianie jednokierunkowe wymaga podpisanego, zaufanego certyfikatu SSL. Skonfiguruj łącznik, aby uzyskać dostęp do określonego TrustStore. Jeśli nie określisz TrustStore, łącznik używa domyślnego Java TrustStore (jssecacerts) lub TrustStore cacerts, jeśli jssecacerts nie jest dostępny.

Aby skonfigurować protokół SSL:

  1. Ustaw wartość SSL=1.
  2. Jeśli nie używasz domyślnego Java TrustStore, skonfiguruj niestandardowy magazyn:
    • Utwórz magazyn zaufania zawierający podpisany, zaufany certyfikat serwera.
    • Ustaw SSLTrustStore na pełną ścieżkę do TrustStore.
    • Ustaw hasło TrustStore na SSLTrustStorePwd.
    • Jeśli TrustStore nie jest magazynem JKS TrustStore, ustaw SSLTrustStoreType na BCFKS (BouncyCastle FIPS Keystore) lub PKCS12.

Aby zmienić strategię odwołania certyfikatów, ustaw następujące właściwości:

  • CheckCertRevocation: Ustaw wartość na 0, aby zaakceptować odwołane certyfikaty. Wartość domyślna to 1.
  • AcceptUndeterminedRevocation: Ustaw na 1, aby akceptować certyfikaty o nieokreślonym stanie odwołania (na przykład, gdy protokół CRLDP jest niedostępny lub przekroczy limit czasu). Wartość domyślna to 0.

Uwierzytelnianie sterownika

Aby uzyskać informacje na temat konfigurowania uwierzytelniania dla sterownika JDBC, zobacz Ustawienia uwierzytelniania sterownika JDBC usługi Databricks.