Udostępnij za pośrednictwem


Co to są woluminy wykazu aparatu Unity?

Woluminy to obiekty wykazu aparatu Unity, które umożliwiają zarządzanie zestawami danych innych niż tabelaryczne. Woluminy reprezentują wolumin logiczny magazynu w lokalizacji magazynu 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 tylko do dostępu do danych opartych na ścieżkach. Użyj tabel, gdy chcesz pracować z danymi tabelarycznymi w wykazie aparatu Unity.

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

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?

Wolumin zarządzany to wolumin magazynu zarządzany przez wykaz aparatu Unity utworzony w zarządzanej lokalizacji magazynu zawierającego schemat. Zobacz Określanie lokalizacji magazynu zarządzanego w katalogu aparatu Unity.

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 wykaz aparatu Unity.

Co to jest wolumin zewnętrzny?

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

Wykaz aparatu Unity nie zarządza cyklem życia i układem plików w woluminach zewnętrznych. Po usunięciu woluminu zewnętrznego wykaz aparatu Unity nie usuwa danych bazowych.

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

Woluminy znajdują się na trzecim poziomie przestrzeni nazw wykazu aparatu Unity (catalog.schema.volume):

Diagram modelu obiektów wykazu aparatu Unity, skoncentrowany na woluminie

Ś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 woluminach 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 trzema nazwami obiektów wykazu aparatu Unity skojarzonymi 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 wykazu aparatu Unity.

Uwaga

Dostęp do danych w woluminach zewnętrznych można również uzyskać przy użyciu identyfikatorów URI magazynu w chmurze.

Przykładowy notes: tworzenie woluminów i praca z nimi

W poniższym notesie przedstawiono podstawową składnię SQL umożliwiającą tworzenie woluminów wykazu aparatu Unity i interakcję z nimi.

Samouczek: notes woluminów wykazu aparatu Unity

Pobierz notes

Ś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 dla tych ścieżek z interfejsów API platformy Apache Spark i dbutils, w tym /volumes, /Volume, , czy /volumesą one poprzedzone .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 środowisku Databricks Runtime 12.2 LTS i poniżej operacje względem /Volumes ścieżek mogą zakończyć się powodzeniem, ale mogą zapisywać dane na efemerycznych dyskach magazynu dołączonych do klastrów obliczeniowych, a nie utrwalać danych w woluminach wykazu aparatu Unity 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 wykazu aparatu Unity, należy użyć zasobów obliczeniowych z obsługą wykazu aparatu Unity. Woluminy nie obsługują wszystkich obciążeń.

Uwaga

Woluminy nie obsługują dbutils.fs poleceń dystrybuowanych do funkcji wykonawczych.

Obowiązują następujące ograniczenia:

W środowisku Databricks Runtime 14.3 LTS i nowszym:

  • W klastrach użytkowników z jednym użytkownikiem nie można uzyskać dostępu do woluminów z wątków i podprocesów w języku Scala.

W środowisku Databricks Runtime 14.2 i poniżej:

  • W przypadku zasobów obliczeniowych skonfigurowanych w trybie dostępu współdzielonego nie można uzyskać dostępu do woluminów przy użyciu funkcji zdefiniowanych przez użytkownika.
    • Zarówno język Python, jak i Scala mają dostęp do aplikacji FUSE ze sterownika, ale nie z funkcji wykonawczych.
    • 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 dostępu pojedynczego użytkownika nie ma obsługi funkcji FUSE w języku Scala, kodu we/wy scala uzyskiwania dostępu do danych przy użyciu ścieżek woluminów lub funkcji UDF języka Scala. Funkcje zdefiniowane przez użytkownika w języku Python są obsługiwane w trybie dostępu pojedynczego użytkownika.

We wszystkich obsługiwanych wersjach środowiska Databricks Runtime:

  • Funkcje zdefiniowane przez użytkownika wykazu aparatu Unity nie obsługują uzyskiwania 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 wykazu aparatu Unity przy użyciu /Volumes/<catalog-name> wzorców lub /Volumes/<catalog-name>/<schema-name> . Należy użyć w pełni kwalifikowanej ścieżki zawierającej nazwę woluminu.

  • Punkt końcowy systemu plików DBFS dla interfejsu API REST nie obsługuje ścieżek woluminów.

  • Woluminy są wykluczone z globalnych wyników wyszukiwania w obszarze roboczym usługi Azure Databricks.

  • Nie można określić woluminów jako miejsca docelowego dostarczania dziennika klastra.

  • %sh mv program nie jest obsługiwany w przypadku 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, co oznacza, że następujące nie są obsługiwane:

    import org.apache.hadoop.fs.Path
    val path =  new Path("dbfs:/Volumes/main/default/test-volume/file.txt")
    val fs = path.getFileSystem(sc.hadoopConfiguration)
    fs.listStatus(path)
    
  • Woluminy nie są dostępne w regionach ani obszarach roboczych platformy Azure Government ze zgodnością fedRAMP.

  • Musisz użyć formatu ścieżki ze schematem dbfs:/ w panelu konfiguracji biblioteki usługi Azure Data Factory. Na przykład dbfs:/Volumes/<catalog-name>/<schema-name>/<volume-name>/file.