Udostępnij przez


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

Uwaga / Notatka

Ta strona dotyczy wersji sterownika JDBC usługi Databricks poniżej wersji 3. Aby uzyskać informacje o wersji 3 lub nowszej, zobacz Sterownik JDBC usługi Databricks.

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" +
                  "'")
// ...