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 řídí tabulková data, svazky řídí ne tabulková data libovolného formátu, včetně strukturovaných, částečně strukturovaných nebo nestrukturovaných.

Databricks doporučuje používat svazky k řízení přístupu ke všem ne tabulkovým datům. Svazky jsou k dispozici ve dvou typech:

  • Spravované svazky: Pro jednoduché úložiště spravované službou Databricks.
  • Externí svazky: Přidání zásad správného řízení do existujících umístění cloudového úložiště objektů

Možnosti praktického použití svazků

Mezi případy použití svazků patří:

  • Zaregistrujte cílové oblasti pro nezpracovaná data vytvořená externími systémy, aby bylo možné podporovat jejich zpracování v počátečních fázích kanálů ETL a dalších činností přípravy dat.
  • Zaregistrujte přípravná umístění pro příjem dat. Například pomocí Auto Loader, COPY INTO, nebo příkazů CTAS (CREATE TABLE AS).
  • Poskytovat umístění úložiště souborů datovým vědcům, datovým analytikům a technikům strojového učení, aby je mohli používat jako součást jejich průzkumné analýzy dat a dalších úloh datových věd.
  • Udělte uživatelům Azure Databricks přístup k libovolným souborům vytvořeným a uloženým v cloudovém úložišti jinými systémy. Například velké kolekce nestrukturovaných dat (například obrázků, zvuku, videa a souborů PDF) zachycených systémy dohledu nebo zařízeními IoT nebo soubory knihoven (JARS a soubory kol Pythonu) exportované z místních systémů pro správu závislostí nebo kanálů CI/CD.
  • Ukládejte provozní data, například soubory protokolování nebo kontrolních bodů.

Ukázku práce se svazky najdete v tématu Zjednodušte načítání souborů, obrázků a dat pomocí svazků katalogu Unity.

Important

Soubory ve svazcích nemůžete registrovat jako tabulky v katalogu Unity. 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.

Spravované a externí svazky

Spravované a externí svazky poskytují téměř identické prostředí při používání nástrojů, uživatelských rozhraní a rozhraní API Azure Databricks. Hlavní rozdíly se týkají umístění úložiště, životního cyklu a řízení:

Vlastnost Spravované svazky Externí svazky
Umístění úložiště Vytvořeno v úložišti spravovaném v UC pro schéma Zaregistrováno proti existující cestě objektového cloudového úložiště
Životní cyklus dat UC spravuje rozvržení a odstranění (uchovávání po dobu 7 dnů po odstranění) Data zůstanou v cloudovém úložišti, když svazek odeberete.
Řízení přístupu Veškerý přístup prochází přes UC UC řídí přístup, ale externí nástroje můžou používat přímé identifikátory URI.
Potřebujete migraci? Ne Ne – použít existující cesty k úložišti tak, jak jsou
Typický případ použití Nejjednodušší možnost pro úlohy pouze Databricks Kombinovaný přístup k Databricks a externímu systému

Proč používat spravované svazky?

Spravované svazky mají následující výhody:

  • Výchozí volba pro úlohy Databricks
  • Není potřeba spravovat přihlašovací údaje cloudu ani cesty k úložišti ručně.
  • Nejjednodušší způsob, jak rychle vytvořit spravovaná úložiště.

Proč používat externí svazky?

Externí svazky umožňují přidat zásady správného řízení dat katalogu Unity do existujících adresářů cloudového úložiště objektů. Mezi příklady použití externích svazků patří:

  • Přidání správy tam, kde už data jsou, aniž by bylo nutné kopírovat data.
  • Řízení souborů vytvořených jinými systémy, které musí být ingestovány nebo přístupné službou Azure Databricks.
  • Řízení dat vytvořených službou Azure Databricks, ke kterým musí přistupovat přímo z cloudového úložiště objektů jinými systémy.

Databricks doporučuje používat externí svazky k ukládání ne tabulkových datových souborů, které se čtou nebo zapisují externími systémy, kromě Azure Databricks. Katalog Unity neřídí čtení a zápisy prováděné přímo proti cloudovému úložišti objektů z externích systémů, takže musíte nakonfigurovat další zásady a přihlašovací údaje ve vašem cloudovém účtu, aby se zásady správného řízení dat respektovaly mimo Azure Databricks.

Cesta 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 objektů Unity Catalog, zaměřený na datový 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>

Část /<catalog>/<schema>/<volume> cesty se mapuje na tři názvy objektů Unity Catalog pro daný soubor. Tyto adresáře jsou jen pro čtení, spravované automaticky pomocí Unity Catalog. Nemůžete je vytvářet ani odstraňovat pomocí příkazů systému souborů.

Note

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

Note

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 nedá se 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í.

Important

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

Požadavky na výpočetní prostředky

Při práci s objemy musíte použít SQL sklad nebo cluster běžící Databricks Runtime 13.3 LTS nebo novější, pokud nepoužíváte uživatelská rozhraní Azure Databricks, jako je například Průzkumník katalogu.

Informace o ukládání kontrolních bodů datového rámce ve svazcích najdete v tématu Kontrolní body datového rámce ve svazcích.

Limitations

Výpočetní prostředky s podporou katalogu Unity musíte použít k interakci se svazky katalogu Unity.

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

Verze Databricks Runtime Limitations
Všechny podporované verze Databricks Runtime
  • Svazky nepodporují dbutils.fs příkazy distribuované vykonavatelům.
  • Funkce UDF katalogu Unity nepodporují přístup k cestám k souborům svazku.
  • Nemůžete mít přístup ke svazkům přímo z RDD.
  • Starší úlohu spark-submit nemůžete použít s jar uloženými ve svazku. Místo toho použijte úlohu JAR. Podívejte se na úkol JAR přiřazený pracovním úlohám.
  • Závislosti na jiných knihovnách, k nimž se přistupuje prostřednictvím cest svazků uvnitř wheel nebo souboru JAR, není možné definovat.
  • Objekty katalogu Unity nemůžete 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")
  • %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 s oddíly. 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 pracovních prostorech s dodržováním předpisů 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.
14.3 LTS a vyšší
  • Na výpočetních prostředcích s vyhrazeným režimem přístupu (dříve režim přístupu jednoho uživatele) nemáte přístup ke svazkům z vláken a podprocesů v jazyce Scala.
14.2 a níže
  • Na výpočetních prostředcích nakonfigurovaných pomocí standardního režimu přístupu (dříve režimu sdíleného přístupu) není možné pro přístup ke svazkům používat uživatelsky definované funkce.
    • 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.

Další kroky

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