Co to są Unity Catalogvolumes?
Volumes to obiekty Unity Catalog, które umożliwiają zarządzanie zbiorami danych innymi niż tabelaryczne. Volumes reprezentuje logiczny wolumin pamięci w lokalizacji magazynu obiektów w chmurze. Volumes zapewniają możliwości uzyskiwania dostępu, przechowywania, zarządzania i organizowania plików.
Chociaż tables zapewniają nadzór nad tabelarycznymi zestawami danych, volumes dodają nadzór nad zestawami danych innych niż tabelaryczne. Za pomocą volumes 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 volumes do zarządzania dostępem do wszystkich danych innych niż tabelaryczne. Podobnie jak tables, volumes może być zarządzany lub zewnętrzny.
Ważne
Nie można użyć volumes jako lokalizacji dla tables. Volumes są przeznaczone tylko do dostępu do danych opartych na ścieżkach. Użyj tables, gdy chcesz pracować z danymi tabelarycznymi w środowisku Unity Catalog.
Poniższe artykuły zawierają więcej informacji na temat pracy z volumes:
- Utwórz i zarządzaj volumes.
- Zarządzanie plikami w programie volumes.
- Eksplorowanie magazynu i znajdowanie plików danych.
- zarządzane a zewnętrzne volumes.
- Jakie są uprawnienia volumes?.
Uwaga
Podczas pracy z programem volumesnależy użyć magazynu SQL lub klastra z uruchomionym środowiskiem Databricks Runtime 13.3 LTS lub nowszym, chyba że korzystasz z interfejsów użytkownika Azure Databricks, takich jak Catalog Explorer.
Co to jest wolumin zarządzany?
wolumin zarządzany jest woluminem zarządzanym przez system Unity Catalog, utworzonym w zarządzanej lokalizacji magazynowej schema. Zobacz Określanie zarządzanej lokalizacji magazynu w środowisku Unity Catalog.
Zarządzane volumes pozwala na tworzenie zarządzanych przestrzeni magazynowych do pracy z plikami bez dodatkowych obciążeń związanych z lokalizacjami zewnętrznymi i magazynowaniem credentials. Nie trzeba określać lokalizacji podczas tworzenia zarządzanego wolumenu, a wszystkie dostępne pliki dla danych do zarządzania volumes odbywają się za pomocą ścieżek zarządzanych przez Unity Catalog.
Co to jest wolumin zewnętrzny?
woluminem zewnętrznym jest woluminem magazynu zarządzanego przez aparat Unity Catalogzarejestrowany w katalogu w lokalizacji zewnętrznej przy użyciu credentialsmagazynu zarządzanego przez aparat Unity Catalog.
Unity Catalog nie zarządza cyklem życia i układem plików w zewnętrznym volumes. Po opuszczeniu woluminu zewnętrznego Unity Catalog nie usuwa danych znajdujących się na tym woluminie.
Jaka ścieżka jest używana do uzyskiwania dostępu do plików w woluminie?
Volumes znajdują się na trzecim poziomie trójpoziomowej przestrzeni nazw Unity Catalog (catalog.schema.volume
):
Ścieżka dostępu do volumes jest taka sama, niezależnie od tego, czy używasz platformy Apache Spark, SQL, Python, czy 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 volumes używa następującego formatu:
/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 Unity Catalog skojarzonym 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 przechowywane w sync wraz z odpowiednimi jednostkami Unity Catalog.
Uwaga
Można również uzyskać dostęp do danych w zewnętrznych volumes przy użyciu adresów URI magazynu w chmurze.
Ścieżki zarezerwowane dla volumes
Volumes wprowadza następujące zarezerwowane ścieżki służące do dostępu do volumes:
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 /volume
są one poprzedzone .dbfs:/
Ścieżka /dbfs/Volumes
jest również zarezerwowana, ale nie można jej używać do uzyskiwania dostępu do volumes.
Volumes są obsługiwane tylko w środowisku Databricks Runtime 13.3 LTS i nowszym. W środowisku Databricks Runtime 12.2 LTS i wcześniejszych wersjach operacje względem ścieżek /Volumes
mogą się powieść, ale zapisywanie danych odbywa się tylko na efemerycznych dyskach dołączonych do klastrów obliczeniowych, zamiast, zgodnie z oczekiwaniami, utrwalania danych w środowisku Unity Catalogvolumes.
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 wchodzić w interakcje z Unity Catalogvolumes, należy użyć środowiska obliczeniowego z obsługą Unity Catalog. Volumes nie obsługują wszystkich obciążeń.
W poniższych table przedstawiono ograniczenia woluminu Unity Catalog oparte na wersji środowiska Databricks Runtime.
Wersja środowiska Uruchomieniowego usługi Databricks | Ograniczenia |
---|---|
14.3 LTS i nowsze | — W klastrach pojedynczego użytkownika nie można uzyskać dostępu do volumes z wątków i podprocesów w języku Scala. |
14.2 i poniżej | — W przypadku obliczeń skonfigurowanych w trybie dostępu współdzielonego nie można użyć funkcji zdefiniowanych przez użytkownika w celu uzyskiwania dostępu do volumes. — 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 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 ani funkcji UDF języka Scala. Funkcje zdefiniowane przez użytkownika w języku Python są obsługiwane w trybie dostępu pojedynczego użytkownika. |
Wszystkie obsługiwane wersje środowiska Databricks Runtime | - Volumes nie obsługują poleceń dbutils.fs dystrybuowanych do wykonawców.— Funkcje UDF Catalog w Unity nie obsługują dostępu do ścieżek plików woluminów. - Nie można uzyskać dostępu do volumes z RDD-ów. — Nie można używać funkcji spark-submit z jednostkami 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 list 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 formularzu Volumes/<catalog-name>/<schema-name>/<volume-name> . Na przykład dbutils.fs.ls("/Volumes/MyCatalog/MySchema/MyVolume") Punkt końcowy DBFS dla interfejsu API REST nie obsługuje ścieżek typu volumes. — Nie można określić volumes jako miejsca docelowego do dostarczania dziennika klastra. - %sh mv nie jest obsługiwane w przypadku przenoszenia plików między volumes. Użyj polecenia dbutils.fs.mv lub %sh cp zamiast tego.— Nie można utworzyć niestandardowego systemu plików Hadoop z volumes. 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ć.— Volumes nie są dostępne w regionach ani środowiskach roboczych platformy Azure Government zgodnych z FedRAMP. — Trzeba użyć formatu ścieżki ze schematem dbfs:/ w panelu konfiguracyjnym biblioteki Azure Data Factory, na przykład dbfs:/Volumes/<catalog-name>/<schema-name>/<volume-name>/file . |