Udostępnij przez


Praca z plikami w wolumenach Unity Catalog

Ta strona zawiera przykłady zarządzania plikami w woluminach Unity Catalog dla różnych interfejsów użytkownika, narzędzi, bibliotek i języków.

Usługa Databricks zaleca używanie woluminów do zarządzania dostępem do wszystkich danych nietabelarycznych w magazynie obiektów w chmurze oraz przechowywania plików wspierających obciążenia. Przykłady obejmują następujące elementy:

  • Pliki danych do ładowania, takie jak CSV, JSON i Parquet
  • Pliki tekstowe, obrazowe i audio na potrzeby obciążeń nauki o danych, uczenia maszynowego i sztucznej inteligencji
  • Artefakty CSV lub JSON napisane przez usługę Azure Databricks na potrzeby integracji z systemami zewnętrznymi
  • Biblioteki, skrypty inicjalizacyjne i artefakty kompilacji

Woluminy zapewniają ścieżki w stylu zgodnym z normą POSIX, które współpracują z narzędziami i strukturami zależnymi od systemu plików w przestrzeni użytkownika (FUSE). To sprawia, że są idealne dla platform uczenia maszynowego i modułów języka Python typu open source, które wymagają dostępu w stylu POSIX. Aby uzyskać szczegółowe informacje o schematach identyfikatorów URI, ścieżkach POSIX i sposobie ich powiązania z woluminami, zobacz Czy muszę podać schemat identyfikatora URI, aby uzyskać dostęp do danych?.

Metody zarządzania plikami w woluminach

Aby uzyskać krótkie przykłady każdej metody, zobacz Praca z plikami w woluminach Unity Catalog.

Interfejs Description
Interfejs użytkownika Eksploratora wykazu Interaktywne zarządzanie plikami za pośrednictwem obszaru roboczego usługi Azure Databricks
Dostęp programowy Odczytywanie i zapisywanie plików przy użyciu platformy Apache Spark, biblioteki Pandas lub sql
Narzędzia Databricks Operacje na plikach przy użyciu dbutils.fs lub poleceń magicznych (%fs, %sh) w notebookach
Polecenia SQL Operacje na plikach przy użyciu słów kluczowych SQL (LIST, PUT INTO, GET, REMOVE) i łączników
Databricks CLI Operacje wiersza poleceń przy użyciu databricks fs
Zestawy SDK Operacje na plikach przy użyciu zestawów SDK python, Java lub Go
API REST Bezpośredni dostęp do interfejsu API na potrzeby integracji niestandardowych

Korzystanie z Eksploratora wykazu

Eksplorator katalogu oferuje opcje typowych zadań zarządzania plikami dla plików przechowywanych w woluminach Unity Catalog.

Aby wchodzić w interakcje z plikami w woluminie, wykonaj następujące czynności:

  1. W obszarze roboczym usługi Azure Databricks kliknij ikonę Dane.Wykaz.
  2. Wyszukaj lub przeglądaj wolumin, z którym chcesz pracować, i wybierz go.

Aby uzyskać szczegółowe informacje na temat tworzenia woluminów i zarządzania nimi, zobacz Tworzenie woluminów wykazu aparatu Unity i zarządzanie nimi.

Przekazywanie plików do woluminu

Pliki o dowolnym formacie — ustrukturyzowanym, częściowo ustrukturyzowanym lub bez struktury — można przekazać do woluminu. Podczas przekazywania za pośrednictwem interfejsu użytkownika istnieje limit rozmiaru pliku o rozmiarze 5 GB. Jednak same woluminy obsługują pliki o maksymalnym rozmiarze obsługiwanym przez bazowy magazyn w chmurze. Możesz zapisywać bardzo duże pliki przy użyciu platformy Spark i przekazywać duże pliki przy użyciu interfejsu API lub zestawów SDK usługi Azure Databricks.

Requirements

Przed przekazaniem do woluminu upewnij się, że masz następujące elementy:

  • Obszar roboczy z włączonym Unity Catalog
  • WRITE VOLUME na woluminie docelowym
  • USE SCHEMA w schemacie nadrzędnym
  • USE CATALOG w katalogu nadrzędnym

Aby uzyskać szczegółowe informacje, zobacz Uprawnienia wykazu aparatu Unity i zabezpieczane obiekty.

Kroki przesyłania

  1. W Eksploratorze katalogów kliknij pozycję Dodaj dane>Załaduj na wolumin.
  2. Kliknij przycisk Przeglądaj lub upuść pliki do strefy upuszczania.
  3. Wybierz wolumin lub katalog lub wklej ścieżkę woluminu.
    • Jeśli wolumin nie istnieje w schemacie docelowym, utwórz go.
    • Możesz również utworzyć nowy katalog w woluminie docelowym.

Okno dialogowe przekazywania pliku do woluminu

Możesz również uzyskać dostęp do interfejsu użytkownika ładowania na następujące sposoby:

  • Na pasku bocznym: Nowe>Dodaj dane>Przekaż pliki do woluminu
  • Z notatnika: Plik>Przekazywanie plików do woluminu

Dalsze kroki

Po przekazaniu do woluminu można wykonać następujące czynności:

  • Przekazywanie dokumentów do użycia z usługą AgentBricks (na przykład scenariusze asystenta wiedzy)

Pobieranie plików z woluminu

Aby pobrać pliki z woluminu, wykonaj następujące czynności:

  1. Wybierz co najmniej jeden plik.
  2. Kliknij przycisk Pobierz , aby pobrać te pliki.

Usuwanie plików z woluminu

Aby usunąć pliki z woluminu, wykonaj następujące czynności:

  1. Wybierz co najmniej jeden plik.
  2. Kliknij przycisk Usuń.
  3. Kliknij przycisk Usuń , aby potwierdzić w wyświetlonym oknie dialogowym.

Tworzenie pustego katalogu

Aby utworzyć nowy katalog w woluminie, wykonaj następujące czynności:

  1. Na karcie Przegląd woluminu kliknij pozycję Utwórz katalog.
  2. Wprowadź nazwę katalogu.
  3. Kliknij pozycję Utwórz.

Pobieranie katalogu

Aby pobrać katalog w woluminie, wykonaj następujące czynności:

  1. Kliknij ikonę menu Kebab. menu kebab po prawej stronie katalogu.
  2. Kliknij pozycję Pobierz katalog.

Katalog jest pobierany jako plik ZIP.

Usuwanie katalogów z woluminu

Aby usunąć katalogi z woluminu, wykonaj następujące czynności:

  1. Wybierz co najmniej jeden katalog.
  2. Kliknij przycisk Usuń.
  3. Kliknij przycisk Usuń , aby potwierdzić w wyświetlonym oknie dialogowym.

Zadania zarządzania plikami interfejsu użytkownika dla woluminów

Kliknij ikonę menu kebab Kebab. obok nazwy pliku, aby wykonać następujące akcje:

  • Kopiuj ścieżkę
  • Pobieranie pliku
  • Usuń plik
  • Tworzenie tabeli

Tworzenie tabeli na podstawie danych w woluminie

Usługa Azure Databricks udostępnia interfejs użytkownika umożliwiający utworzenie tabeli zarządzanej przez Unity Catalog na podstawie pliku, plików lub katalogu plików przechowywanych w woluminie Unity Catalog.

Musisz mieć uprawnienia CREATE TABLE w schemacie docelowym i mieć dostęp do działającego magazynu SQL Warehouse.

  1. Wybierz co najmniej jeden plik lub katalog. Pliki powinny mieć ten sam układ danych.

  2. Kliknij pozycję Utwórz tabelę. Zostanie wyświetlone okno dialogowe Tworzenie tabeli z woluminów.

  3. Użyj podanego okna dialogowego, aby przejrzeć podgląd danych i ukończyć następujące konfiguracje:

    • Wybierz opcję Utwórz nową tabelę lub zastąp istniejącą tabelę
    • Wybierz docelowy katalog i schemat.
    • Określ nazwę tabeli.
    • (Opcjonalnie) Zastąpij domyślne nazwy kolumn i typy lub wybierz opcję wykluczania kolumn.

    Uwaga / Notatka

    Kliknij pozycję Atrybuty zaawansowane , aby wyświetlić dodatkowe opcje.

  4. Kliknij pozycję Utwórz tabelę , aby utworzyć tabelę z określonymi atrybutami. Po zakończeniu Eksplorator wykazu wyświetla szczegóły tabeli.

Programistyczna obsługa plików na woluminach

Odczytywaj i zapisuj pliki w woluminach we wszystkich obsługiwanych językach programowania i edytorach przestrzeni roboczej, korzystając z poniższego formatu:

/Volumes/catalog_name/schema_name/volume_name/path/to/files

Interakcja z plikami w woluminach jest taka sama, jak w przypadku interakcji z plikami w dowolnej lokalizacji magazynu obiektów w chmurze. Oznacza to, że jeśli obecnie zarządzasz kodem korzystającym z identyfikatorów URI chmury, ścieżek instalacji systemu plików DBFS lub ścieżek głównych systemu plików DBFS w celu interakcji z danymi lub plikami, możesz zaktualizować kod, aby zamiast tego używał woluminów.

Uwaga / Notatka

Woluminy są używane tylko w przypadku danych innych niż tabelaryczne. Databricks zaleca rejestrowanie danych tabelarycznych przy użyciu tabel w Unity Catalog, a następnie odczytywanie i zapisywanie danych przy użyciu nazw tabel.

Odczytywanie i zapisywanie danych w woluminach

Użyj platformy Apache Spark, bibliotek pandas, Spark SQL i innych bibliotek open-source do odczytywania i zapisywania plików danych w dużych ilościach.

W poniższych przykładach pokazano odczytywanie pliku CSV przechowywanego w woluminie:

Python

df = spark.read.format("csv").load("/Volumes/catalog_name/schema_name/volume_name/data.csv")

display(df)

Pandas

import pandas as pd

df = pd.read_csv('/Volumes/catalog_name/schema_name/volume_name/data.csv')

display(df)

SQL

SELECT * FROM csv.`/Volumes/catalog_name/schema_name/volume_name/data.csv`

Polecenia użytkowe dla plików w woluminach

Usługa Databricks udostępnia następujące narzędzia do zarządzania plikami w woluminach:

  • Moduł dbutils.fs podrzędny w narzędziach usługi Databricks. Zobacz Narzędzie systemu plików (dbutils.fs).
  • Magia %fs , która jest aliasem dla elementu dbutils.fs.
  • Magia %sh, która umożliwia uruchamianie poleceń bash na woluminach.

Aby zapoznać się z przykładem użycia tych narzędzi do pobierania plików z Internetu, rozpakowywania plików i przenoszenia plików z efemerycznego magazynu blokowego do woluminów, zobacz Pobieranie danych z Internetu.

Możesz również użyć pakietów systemu operacyjnego dla poleceń narzędzi plików, takich jak moduł języka Python os , jak pokazano w poniższym przykładzie:

import os

os.mkdir('/Volumes/catalog_name/schema_name/volume_name/directory_name')

Zarządzanie plikami w woluminach za pomocą narzędzi zewnętrznych

Usługa Databricks udostępnia zestaw narzędzi do zarządzania plikami w woluminach w sposób programowy, zarówno w środowisku lokalnym, jak i w zintegrowanych systemach.

Polecenia SQL dla plików w woluminach

Usługa Azure Databricks obsługuje następujące słowa kluczowe SQL do interakcji z plikami w woluminach:

W notatnikach usługi Azure Databricks oraz w edytorze zapytań SQL jest obsługiwane tylko polecenie LIST. Inne polecenia SQL (PUT INTO, GETi REMOVE) są dostępne za pośrednictwem następujących łączników i sterowników SQL usługi Databricks, które obsługują zarządzanie plikami w woluminach:

Zarządzanie plikami w woluminach za pomocą interfejsu wiersza polecenia usługi Databricks

Użyj podpolecenia w pliku databricks fs. Zobacz fs grupę poleceń.

Uwaga / Notatka

Interfejs wiersza polecenia usługi Databricks wymaga, aby schemat dbfs:/ poprzedzał wszystkie ścieżki woluminów. Na przykład dbfs:/Volumes/catalog_name/schema_name/volume_name/path/to/data.

Zarządzanie plikami w woluminach przy użyciu zestawów SDK

Następujące zestawy SDK obsługują zarządzanie plikami w woluminach:

Zarządzaj plikami w woluminach przy użyciu interfejsu REST API

Użyj interfejsu API plików do zarządzania plikami w woluminach.

Przykłady REST API dla plików w woluminach

W poniższych przykładach użyto curl i interfejsu API REST usługi Databricks do wykonywania zadań zarządzania plikami w woluminach.

Poniższy przykład tworzy pusty folder o nazwie my-folder w określonym woluminie.

curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

Poniższy przykład tworzy plik o nazwie data.csv z określonymi danymi w określonej ścieżce w woluminie.

curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv?overwrite=true" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--header "Content-Type: application/octet-stream" \
--data-binary $'id,Text\n1,Hello World!'

Poniższy przykład zawiera listę zawartości woluminu w określonej ścieżce. W tym przykładzie użyto języka jq do sformatowania kodu JSON treści odpowiedzi w celu ułatwienia odczytywania.

curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .

Poniższy przykład zawiera listę zawartości folderu w woluminie w określonej ścieżce. W tym przykładzie użyto języka jq do sformatowania kodu JSON treści odpowiedzi w celu ułatwienia odczytywania.

curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .

Poniższy przykład wyświetla zawartość pliku w określonej ścieżce w woluminie.

curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

Poniższy przykład usuwa plik w określonej ścieżce z woluminu.

curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

Poniższy przykład usuwa folder z określonego woluminu.

curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

Ograniczenia pracy z plikami w woluminach

Przed rozpoczęciem pracy z plikami w woluminach należy wziąć pod uwagę następujące ograniczenia:

  • Zapisy bezpośrednie lub niesekwencyjne (losowe) nie są obsługiwane. Ma to wpływ na operacje, takie jak zapisywanie plików Zip i Excel. W przypadku tych obciążeń:

    1. Najpierw wykonaj operacje na dysku lokalnym
    2. Skopiuj wyniki do woluminu

    Przykład:

    # python
    import xlsxwriter
    from shutil import copyfile
    
    workbook = xlsxwriter.Workbook('/local_disk0/tmp/excel.xlsx')
    worksheet = workbook.add_worksheet()
    worksheet.write(0, 0, "Key")
    worksheet.write(0, 1, "Value")
    workbook.close()
    
    copyfile('/local_disk0/tmp/excel.xlsx', '/Volumes/my_catalog/my_schema/my_volume/excel.xlsx')
    
  • Pliki rzadkie nie są obsługiwane. Aby skopiować pliki rzadkie, użyj cp --sparse=never:

    $ cp sparse.file /Volumes/my_catalog/my_schema/my_volume/sparse.file
    error writing '/dbfs/sparse.file': Operation not supported
    $ cp --sparse=never sparse.file /Volumes/my_catalog/my_schema/my_volume/sparse.file