Zarządzanie plikami w woluminach Unity Catalog korzystając ze sterownika JDBC Databricks (Simba)

Uwaga / Notatka

Ta strona dotyczy sterownika Simba JDBC (wersja Legacy), wersji wcześniejszych niż 3. Usługa Databricks zdecydowanie zaleca migrację do sterownika JDBC usługi Databricks na potrzeby łączności JDBC . Obejmuje on ulepszenia, takie jak obsługa widoków metryk Unity Catalog, transakcje obejmujące wiele instrukcji SQL, procedury składowane, szybsze pobieranie dużych wyników i wbudowana telemetria klienta.

Na tej stronie opisano sposób wysyłania, pobierania i usuwania plików w woluminach Unity Catalogu przy użyciu sterownika JDBC Databricks.

Wymagania

  • Sterownik JDBC usługi Databricks w wersji 2.6.38 lub nowszej
  • Włączony tryb zapytania natywnego (ustawienie domyślne). Jeśli to ustawienie jest wyłączone, dodaj UseNativeQuery=1 lub UseNativeQuery=2 do parametrów połączenia.

Pełny przykład języka Java z konfiguracją uwierzytelniania można znaleźć w temacie Authentication settings for the Databricks JDBC Driver (Simba) (Ustawienia uwierzytelniania sterownika JDBC usługi Databricks (Simba).

Przekazywanie pliku

Aby przekazać plik, dodaj właściwość StagingAllowedLocalPaths do łańcucha połączenia ze ścieżką pliku do przekazania. W przypadku wielu lokalizacji źródłowych użyj listy rozdzielanej przecinkami (na przykład /tmp/,/usr/tmp/).

Ważne

W środowiskach wielodostępnych, w których użytkownicy kontrolują adres URL JDBC (np. narzędzia analizy biznesowej lub usługi deweloperskie), ustaw StagingAllowedLocalPaths na lokalizację piaskownicy lub nieistniejącą ścieżkę. Uniemożliwia to użytkownikom zapisywanie dowolnych plików i zakłócanie wdrażania wewnętrznego usługi.

Aby zastąpić istniejący plik, dodaj OVERWRITE do instrukcji .

// ...
p.put("StagingAllowedLocalPaths", "/tmp/");

Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();

stmt.executeQuery("PUT '" +
                  "/tmp/my-data.csv" +
                  "' INTO '" +
                  "/Volumes/main/default/my-volume/my-data.csv" +
                  "' OVERWRITE")
// ...

Pobieranie pliku

Użyj GET, aby pobrać plik z woluminu do ścieżki lokalnej:

// ...
Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();

stmt.executeQuery("GET '" +
                  "/Volumes/main/default/my-volume/my-data.csv" +
                  "' TO '" +
                  "/tmp/my-downloaded-data.csv" +
                  "'")
// ...

Usuwanie pliku

Użyj REMOVE polecenia , aby usunąć plik z woluminu:

// ...
Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();

stmt.executeQuery("REMOVE '" +
                  "/Volumes/main/default/my-volume/my-data.csv" +
                  "'")
// ...