Sdílet prostřednictvím


Co jsou svazky katalogu Unity?

Svazky jsou objekty katalogu Unity, které umožňují správu nad netabulkovými datovými sadami. Svazky představují logický objem úložiště v místě cloudového objektového úložiště. Svazky poskytují možnosti pro přístup k souborům, jejich ukládání, řízení a uspořádání.

Zatímco tabulky poskytují zásady správného řízení nad tabulkovou datovou sadou, svazky přidávají zásady správného řízení nad ne tabulkovou datovou sadou. Svazky můžete použít k ukládání a přístupu k souborům v libovolném formátu, včetně strukturovaných, částečně strukturovaných a nestrukturovaných dat.

Databricks doporučuje používat svazky k řízení přístupu ke všem ne tabulkovým datům. Podobně jako tabulky mohou být svazky spravované nebo externí.

Důležité

Svazky nelze použít jako umístění pro tabulky. Svazky jsou určeny pouze pro přístup k datům na základě cesty. Tabulky použijte, když chcete pracovat s tabulkovými daty v katalogu Unity.

Následující články obsahují další informace o práci se svazky:

Poznámka:

Při práci se svazky musíte použít SQL warehouse nebo cluster s běžícím Databricks Runtime 13.3 LTS nebo novějším, pokud nepoužíváte uživatelská rozhraní Azure Databricks, jako je Catalog Explorer.

Co je spravovaný svazek?

Spravovaný svazek je svazek úložiště řízený katalogem Unity, který je vytvořen v rámci spravovaného úložiště ve schématu, které ho obsahuje. Viz Určení spravovaného umístění úložiště v katalogu Unity.

Spravované svazky umožňují vytvořit spravované úložiště pro práci se soubory bez režie externích umístění a přihlašovacích údajů k úložišti. Při vytváření spravovaného svazku nemusíte zadávat umístění a veškerý přístup k souborům pro data ve spravovaných svazcích probíhá prostřednictvím cest spravovaných katalogem Unity.

Co je externí svazek?

Externí svazek je úložný svazek řízený katalogem Unity, zaregistrovaný v adresáři v rámci externího umístění pomocí úložných přihlašovacích údajů řízených katalogem Unity.

Katalog Unity nespravuje životní cyklus a rozložení souborů v externích svazcích. Když odstraníte externí svazek, katalog Unity neodstraní podkladová data.

Jaká cesta se používá pro přístup k souborům ve svazku?

Svazky se nacházejí na třetí úrovni tříúrovňového prostoru názvů katalogu Unity (catalog.schema.volume):

Diagram modelu objektu Unity, zaměřený na objem

Cesta pro přístup ke svazkům je stejná bez ohledu na to, jestli používáte Apache Spark, SQL, Python nebo jiné jazyky a knihovny. To se liší od starších vzorů přístupu pro soubory v úložišti objektů svázané s pracovním prostorem Azure Databricks.

Cesta pro přístup k souborům ve svazcích používá následující formát:

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

Azure Databricks také podporuje volitelné dbfs:/ schéma při práci s Apache Sparkem, takže funguje také následující cesta:

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

Sekvence /<catalog>/<schema>/<volume> v cestě odpovídá třem názvům objektů katalogu Unity přidruženým k souboru. Tyto prvky cesty jsou jen pro čtení a ne přímo zapisovatelné uživateli, což znamená, že tyto adresáře není možné vytvářet ani odstraňovat pomocí operací systému souborů. Automaticky se spravují a synchronizují s odpovídajícími entitami katalogu Unity.

Poznámka:

K datům v externích svazcích můžete přistupovat také pomocí identifikátorů URI cloudového úložiště.

Rezervované cesty pro svazky

Svazky uvádí následující rezervované cesty používané pro přístup ke svazkům:

  • dbfs:/Volumes
  • /Volumes

Poznámka:

Cesty jsou také vyhrazeny pro potenciální překlepy v těchto cestách z rozhraní Apache Spark API a dbutils, včetně /volumes, /Volume, /volume, ať už jsou nebo nejsou předcházeny dbfs:/. Cesta /dbfs/Volumes je také vyhrazená, ale nelze ji použít pro přístup ke svazkům.

Svazky jsou podporovány pouze na Databricks Runtime 13.3 LTS a vyšších verzích. V Databricks Runtime 12.2 LTS a níže mohou operace s /Volumes cestami uspět, ale mohou zapisovat data pouze na dočasné úložné disky připojené k výpočetním clusterům, místo aby se data ukládala na svazky Unity Catalogu podle očekávání.

Důležité

Pokud máte předem existující data uložená v rezervované cestě v kořenovém adresáři DBFS, můžete vytvořit lístek podpory a získat dočasný přístup k datům a přesunout je do jiného umístění.

Omezení

Výpočetní prostředky s podporou katalogu Unity musíte použít k interakci se svazky katalogu Unity. Svazky nepodporují všechny typy úloh.

Následující tabulka popisuje objemová omezení Unity katalogu na základě verze Databricks Runtime.

Verze Databricks Runtime Omezení
14.3 LTS a vyšší
  • Ve výpočetním prostředí s vyhrazeným režimem přístupu (dříve režim přístupu jednoho uživatele) není možné přistupovat ke svazkům z vláken a podprocesů v jazyce Scala.
14.2 a níže
  • Na výpočetním systému nakonfigurovaném pomocí standardního režimu přístupu (dříve režimu sdíleného přístupu) nelze ke svazkům přistupovat pomocí UDF.
    • Python nebo Scala mají přístup k FUSE z ovladače, ale ne z exekutorů.
    • Kód Scala, který provádí vstupně-výstupní operace, může běžet na ovladači, ale ne na exekutorech.
  • Na výpočetních prostředcích nakonfigurovaných s režimem vyhrazeného přístupu neexistuje podpora FUSE v jazyce Scala, kódu Scala IO, který přistupuje k datům pomocí cest svazků nebo uživatelem definovaných funkcí Scala. Uživatelsky definované funkce Pythonu jsou podporovány v režimu vyhrazeného přístupu.
Všechny podporované verze Databricks Runtime
  • Svazky nepodporují dbutils.fs příkazy distribuované do vykonavatelů.
  • Funkce UDF v katalogu Unity nepodporují přístup k cestám souborů na svazcích.
  • Ke svazkům nelze přistupovat ze sad RDD.
  • Spark-submit nelze použít se JARy uloženými ve svazku.
  • Závislosti nelze definovat pro jiné knihovny, ke kterým se přistupuje prostřednictvím cest svazků uvnitř wheel nebo souboru JAR.
  • Objekty katalogu Unity nelze vypsat pomocí vzorů /Volumes/<catalog-name> nebo /Volumes/<catalog-name>/<schema-name>. Musíte použít plně kvalifikovanou cestu, která obsahuje název svazku ve formátu Volumes/<catalog-name>/<schema-name>/<volume-name>. Například dbutils.fs.ls("/Volumes/MyCatalog/MySchema/MyVolume")
  • Koncový bod DBFS pro rozhraní REST API nepodporuje cesty ke svazkům.
  • Svazky nelze zadat jako cíl pro doručování protokolů clusteru.
  • %sh mv nepodporuje přesouvání souborů mezi svazky. Použijte dbutils.fs.mv nebo %sh cp místo toho.
  • Nelze vytvořit vlastní systém souborů Hadoop se svazky. Například použití new Path("dbfs:/Volumes/main/default/test-volume/file.txt") k vytvoření objektu org.apache.hadoop.fs.path nebude fungovat.
  • Svazky nejsou dostupné v oblastech Azure Government ani v pracovních prostorech v souladu s FedRAMP.
  • Je nutné použít formát cesty se schématem dbfs:/ na konfiguračním panelu knihovny Azure Data Factory, například dbfs:/Volumes/<catalog-name>/<schema-name>/<volume-name>/file.