Udostępnij za pośrednictwem


Czym są woluminy katalogu Unity?

Woluminy to obiekty Unity Catalog, które umożliwiają zarządzanie zestawami danych innych niż tabelaryczne. Woluminy reprezentują logiczną woluminę magazynową w usłudze magazynowania obiektów w chmurze. Woluminy zapewniają możliwości uzyskiwania dostępu, przechowywania, zarządzania i organizowania plików.

Podczas gdy tabele zapewniają nadzór nad tabelarycznymi zestawami danych, woluminy dodają nadzór nad zestawami danych innych niż tabelaryczne. Za pomocą woluminów można przechowywać pliki i uzyskiwać do nich dostęp w dowolnym formacie, w tym ustrukturyzowane, częściowo ustrukturyzowane i nieustrukturyzowane dane.

Usługa Databricks zaleca używanie woluminów do zarządzania dostępem do wszystkich danych innych niż tabelaryczne. Podobnie jak w przypadku tabel, woluminy mogą być zarządzane lub zewnętrzne.

Ważne

Nie można używać woluminów jako lokalizacji dla tabel. Woluminy są przeznaczone wyłącznie do dostępu do danych opartych na ścieżkach. Użyj tabel, gdy chcesz pracować z danymi tabelarycznymi w Unity Catalog.

Następujące artykuły zawierają więcej informacji na temat pracy z wolumenami:

Uwaga

Podczas pracy z woluminami należy użyć usługi SQL Warehouse lub klastra z uruchomionym środowiskiem Databricks Runtime 13.3 LTS lub nowszym, chyba że używasz interfejsów użytkownika usługi Azure Databricks, takich jak Eksplorator wykazu.

Co to jest wolumin zarządzany?

Zarządzany wolumin to wolumin magazynu zarządzany przez Unity Catalog, utworzony w lokalizacji zarządzanego magazynu zawierającego schemat. Zobacz Określanie zarządzanej lokalizacji magazynowej w Unity Catalog.

Woluminy zarządzane umożliwiają tworzenie zarządzanego magazynu do pracy z plikami bez obciążeń związanych z lokalizacjami zewnętrznymi i poświadczeniami magazynu. Nie trzeba określać lokalizacji podczas tworzenia woluminu zarządzanego, a cały dostęp do plików dla danych w woluminach zarządzanych odbywa się za pośrednictwem ścieżek zarządzanych przez Unity Catalog.

Co to jest wolumin zewnętrzny?

Wolumin zewnętrzny to wolumin magazynu zarządzany przez Unity Catalog, zarejestrowany w katalogu w lokalizacji zewnętrznej przy użyciu poświadczeń magazynu Unity Catalog.

Katalog Unity nie zarządza cyklem życia i układem plików na zewnętrznych woluminach. Po odmontowaniu woluminu zewnętrznego Katalog Unity nie usuwa danych źródłowych.

Jaka ścieżka jest używana do uzyskiwania dostępu do plików w woluminie?

Woluminy znajdują się na trzecim poziomie trójpoziomowej przestrzeni nazw katalogu Unity (catalog.schema.volume):

Diagram modelu obiektów Unity Catalog, skoncentrowany na zbiorach

Ścieżka dostępu do woluminów jest taka sama, jak w przypadku używania platformy Apache Spark, sql, języka Python lub innych języków i bibliotek. Różni się to od starszych wzorców dostępu dla plików w magazynie obiektów powiązanym z obszarem roboczym usługi Azure Databricks.

Ścieżka dostępu do plików w wolumenach ma następujący format:

/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

Usługa Azure Databricks obsługuje również opcjonalny dbfs:/ schemat podczas pracy z platformą Apache Spark, więc następująca ścieżka również działa:

dbfs:/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

Sekwencja /<catalog>/<schema>/<volume> w ścieżce odpowiada trzem nazwom obiektów katalogu Unity skojarzonych z plikiem. Te elementy ścieżki są tylko do odczytu i nie są bezpośrednio zapisywane przez użytkowników, co oznacza, że nie można tworzyć ani usuwać tych katalogów przy użyciu operacji systemu plików. Są one automatycznie zarządzane i synchronizowane z odpowiednimi jednostkami katalogu Unity.

Uwaga

Można również uzyskać dostęp do danych na woluminach zewnętrznych, używając URI do przechowywania w chmurze.

Ścieżki zarezerwowane dla woluminów

Woluminy zawierają następujące ścieżki zarezerwowane używane do uzyskiwania dostępu do woluminów:

  • dbfs:/Volumes
  • /Volumes

Uwaga

Ścieżki są również zarezerwowane dla potencjalnych literówek w przypadku tych ścieżek z interfejsów API platformy Apache Spark i dbutils, w tym /volumes, /Volume, /volume, niezależnie od tego, czy są poprzedzone przez dbfs:/. Ścieżka /dbfs/Volumes jest również zarezerwowana, ale nie może być używana do uzyskiwania dostępu do woluminów.

Woluminy są obsługiwane tylko w środowisku Databricks Runtime 13.3 LTS i nowszym. W Databricks Runtime 12.2 LTS i wcześniejszych wersjach operacje na ścieżkach /Volumes mogą zakończyć się powodzeniem, ale mogą zapisywać dane tylko na dyskach tymczasowego przechowywania dołączonych do klastrów obliczeniowych, zamiast zachowywać dane w woluminach Unity Catalog zgodnie z oczekiwaniami.

Ważne

Jeśli masz wstępnie istniejące dane przechowywane w ścieżce zarezerwowanej w katalogu głównym systemu plików DBFS, możesz utworzyć bilet pomocy technicznej, aby uzyskać tymczasowy dostęp do tych danych, aby przenieść je do innej lokalizacji.

Ograniczenia

Aby korzystać z woluminów Unity Catalog, należy użyć zasobów obliczeniowych z obsługą Unity Catalog. Woluminy nie obsługują wszystkich obciążeń.

W poniższej tabeli przedstawiono ograniczenia danych katalogu Unity w zależności od wersji Databricks Runtime.

Wersja środowiska uruchomieniowego usługi Databricks Ograniczenia
14.3 LTS i nowsze
  • W przypadku obliczeń z dedykowanym trybem dostępu (dawniej trybem dostępu pojedynczego użytkownika) nie można uzyskać dostępu do woluminów z wątków i podprocesów w języku Scala.
14.2 i poniżej
  • W przypadku systemów obliczeniowych skonfigurowanych w standardowym trybie dostępu (dawniej w trybie współdzielonym) nie można korzystać z funkcji UDF do uzyskiwania dostępu do woluminów.
    • Zarówno Python, jak i Scala mają dostęp do FUSE ze sterownika, ale nie z egzekutorów.
    • Kod Scala, który wykonuje operacje we/wy, może być uruchamiany na sterowniku, ale nie na funkcjach wykonawczych.
  • W przypadku obliczeń skonfigurowanych w trybie dedykowanego dostępu nie ma obsługi FUSE w Scala, kodu wejścia/wyjścia w Scala uzyskującego dostęp do danych za pomocą ścieżek woluminów lub Scala UDF. Funkcje zdefiniowane przez użytkownika języka Python są wspierane w trybie dedykowanego dostępu.
Wszystkie obsługiwane wersje środowiska Databricks Runtime
  • Woluminy nie obsługują dbutils.fs poleceń dystrybuowanych do wykonawców.
  • Funkcje zdefiniowane przez użytkownika (UDF) w katalogu Unity nie obsługują dostępu do ścieżek plików woluminu.
  • Nie można uzyskać dostępu do woluminów z RDD.
  • Nie można używać funkcji spark-submit z danymi JAR przechowywanymi w woluminie.
  • Nie można zdefiniować zależności do innych bibliotek, do których można uzyskać dostęp za pośrednictwem ścieżek woluminów wewnątrz koła lub pliku JAR.
  • Nie można wyświetlić listy obiektów Unity Catalog przy użyciu wzorców /Volumes/<catalog-name> lub /Volumes/<catalog-name>/<schema-name>. Należy użyć w pełni kwalifikowanej ścieżki zawierającej nazwę woluminu w formacie Volumes/<catalog-name>/<schema-name>/<volume-name>. Na przykład dbutils.fs.ls("/Volumes/MyCatalog/MySchema/MyVolume")
  • Punkt końcowy systemu plików DBFS dla interfejsu API REST nie obsługuje ścieżek woluminów.
  • Nie można określić woluminów jako miejsca docelowego dostarczania dziennika klastra.
  • %sh mv nie jest obsługiwane do przenoszenia plików między woluminami. Użyj polecenia dbutils.fs.mv lub %sh cp zamiast tego.
  • Nie można utworzyć niestandardowego systemu plików Hadoop z woluminami. Na przykład użycie new Path("dbfs:/Volumes/main/default/test-volume/file.txt") do utworzenia obiektu org.apache.hadoop.fs.path nie będzie działać.
  • Woluminy nie są dostępne w regionach rządowych ani przestrzeniach roboczych platformy Azure z zgodnością FedRAMP.
  • Musisz użyć formatu ścieżki ze schematem dbfs:/ w panelu konfiguracji biblioteki Azure Data Factory, na przykład dbfs:/Volumes/<catalog-name>/<schema-name>/<volume-name>/file.