Vytváření a práce se svazky

Tento článek představuje svazky, což jsou objekty katalogu Unity, které umožňují zásady správného řízení nad ne tabulkovou datovou sadou. Popisuje také, jak vytvářet, spravovat a pracovat se svazky.

Podrobnosti o nahrávání a správě souborů ve svazcích najdete v tématu Nahrání souborů do svazku katalogu Unity a operací správy souborů pro svazky katalogu Unity.

Poznámka:

Při práci se svazky musíte použít SQL Warehouse nebo cluster se spuštěným Modulem Databricks Runtime 13.3 LTS nebo novějším, pokud nepoužíváte uživatelská rozhraní Azure Databricks, jako je Například Catalog Explorer.

Co jsou svazky katalogu Unity?

Svazky jsou objekty katalogu Unity, které představují logický svazek úložiště v cloudovém umístění úložiště objektů. 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.

Důležité

Svazky nelze použít jako umístění pro tabulky. Svazky jsou určeny pouze pro přístup k datům založeným na cestě. Tabulky slouží k ukládání tabulkových dat pomocí katalogu Unity.

Co je spravovaný svazek?

Spravovaný svazek je svazek úložiště, který se řídí katalogem Unity vytvořený ve výchozím umístění úložiště obsahujícího schématu. 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. Podívejte se , jakou cestu se používá pro přístup k souborům ve svazku?.

Když odstraníte spravovaný svazek, soubory uložené v tomto svazku se také odstraní z cloudového tenanta do 30 dnů.

Co je externí svazek?

Externí svazek je svazek úložiště, který se řídí katalogem Unity zaregistrovaný v adresáři v rámci externího umístění pomocí přihlašovacích údajů pro úložiště, které se řídí katalogem Unity. 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řípady použití externích svazků patří:

  • Přidání zásad správného řízení do datových souborů bez migrace
  • Ří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.

Externí svazky musí být adresáře v rámci externích umístění, která se řídí přihlašovacími údaji úložiště katalogu Unity. Katalog Unity nespravuje životní cyklus ani rozložení souborů v externích svazcích. Když odstraníte externí svazek, katalog Unity neodstraní podkladová data.

Poznámka:

Při definování svazku se přístup ke cloudovým identifikátorům URI k datům v cestě ke svazku řídí oprávněními svazku.

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

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 UC.

Poznámka:

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

Jaká jsou oprávnění pro svazky?

Svazky používají stejný základní model oprávnění jako tabulky, ale kde se oprávnění pro tabulky zaměřují na udělení přístupu k dotazování a manipulaci s řádky v tabulce, oprávnění pro svazky se zaměřují na práci se soubory. Svazky proto zavádějí následující oprávnění:

Viz oprávnění katalogu Unity a zabezpečitelné objekty.

Kdo může spravovat oprávnění svazku?

Ke správě oprávnění svazku nebo vyřazení svazků musíte mít na svazku oprávnění vlastníka. Každý objekt v katalogu Unity může mít přiřazený pouze jeden objekt jako vlastník a zatímco vlastnictví není kaskádové (to znamená, že vlastník katalogu se automaticky nestane vlastníkem všech objektů v tomto katalogu), oprávnění přidružená k vlastnictví se vztahují na všechny objekty obsažené v objektu.

To znamená, že pro svazky katalogu Unity mohou následující objekty zabezpečení spravovat oprávnění svazku:

  • Vlastník nadřazeného katalogu.
  • Vlastník nadřazeného schématu.
  • Vlastník svazku.

I když každý objekt může mít pouze jednoho vlastníka, Databricks doporučuje přiřadit vlastnictví většiny objektů ke skupině, nikoli jednotlivým uživatelům. Počáteční vlastnictví libovolného objektu je přiřazeno uživateli, který tento objekt vytvoří. Viz Správa vlastnictví objektů katalogu Unity.

Vytvoření spravovaného svazku

Abyste mohli vytvořit spravovaný svazek, musíte mít následující oprávnění:

Prostředek Požadována oprávnění
Schéma USE SCHEMA, CREATE VOLUME
Katalog USE CATALOG

Sql

Pokud chcete vytvořit spravovaný svazek, použijte následující syntaxi:

CREATE VOLUME <catalog>.<schema>.<volume-name>;

Průzkumník katalogu

Vytvoření spravovaného svazku v Průzkumníku katalogu:

  1. V pracovním prostoru Azure Databricks klikněte na Ikona kataloguKatalog.
  2. Vyhledejte nebo vyhledejte schéma, ke kterému chcete svazek přidat, a vyberte ho.
  3. Klikněte na tlačítko Vytvořit svazek . (Musíte mít dostatečná oprávnění.)
  4. Zadejte název svazku.
  5. Zadejte komentář (volitelné).
  6. Klikněte na Vytvořit.

Vytvoření externího svazku

K vytvoření externího svazku musíte mít následující oprávnění:

Prostředek Požadována oprávnění
Externí umístění CREATE EXTERNAL VOLUME
Schéma USE SCHEMA, CREATE VOLUME
Katalog USE CATALOG

Sql

Pokud chcete vytvořit externí svazek, zadejte cestu v rámci externího umístění pomocí následující syntaxe:

CREATE EXTERNAL VOLUME <catalog>.<schema>.<external-volume-name>
LOCATION 'abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path>/<directory>';

Průzkumník katalogu

Vytvoření externího svazku v Průzkumníku katalogu:

  1. V pracovním prostoru Azure Databricks klikněte na Ikona kataloguKatalog.
  2. Vyhledejte nebo vyhledejte schéma, ke kterému chcete svazek přidat, a vyberte ho.
  3. Klikněte na tlačítko Vytvořit svazek . (Musíte mít dostatečná oprávnění.)
  4. Zadejte název svazku.
  5. Zvolte externí umístění, ve kterém chcete vytvořit svazek.
  6. Upravte cestu tak, aby odrážela podadresáři, do kterého chcete vytvořit svazek.
  7. Zadejte komentář (volitelné).
  8. Klikněte na Vytvořit.

Vyřazení svazku

Svazek můžou snížit jenom uživatelé s oprávněními vlastníka. Viz Kdo může spravovat oprávnění svazku?.

Pomocí následující syntaxe zahoďte svazek:

DROP VOLUME IF EXISTS <volume-name>;

Když odstraníte spravovaný svazek, Azure Databricks odstraní podkladová data do 30 dnů. Když externí svazek odstraníte, odeberete ho z katalogu Unity, ale podkladová data zůstanou v externím umístění beze změny.

Čtení souborů ve svazku

K zobrazení obsahu svazku nebo přístupových souborů uložených na svazcích musíte mít následující oprávnění:

Prostředek Požadována oprávnění
Objem READ
Schéma USE SCHEMA
Katalog USE CATALOG

S obsahem svazků pracujete pomocí cest. Podívejte se , jakou cestu se používá pro přístup k souborům ve svazku?.

Vytvoření, odstranění a provádění dalších operací správy souborů na svazku

K provádění operací správy souborů u souborů uložených na svazcích musíte mít následující oprávnění:

Prostředek Požadována oprávnění
Objem READ, WRITE
Schéma USE SCHEMA
Katalog USE CATALOG

Operace správy souborů na svazcích můžete provádět pomocí následujících nástrojů:

  • Průzkumník katalogu nabízí mnoho možností uživatelského rozhraní pro úlohy správy souborů. Podívejte se, co je Průzkumník katalogu?
  • Příkazy nástrojů fs Databricks Viz nástroj systému souborů (dbutils.fs).
  • Příkaz %fs magic poskytuje stejné funkce jako dbutils.fs.
  • Nahrajte soubory do uživatelského rozhraní svazku. Viz Nahrání souborů do svazku katalogu Unity.
  • Open source příkazy, například os.listdir().
  • Podporují se některé příkazy Bash. %sh cp se podporuje, ale %sh mv není.

Úplné podrobnosti o práci se soubory na svazcích prostřednictvím kódu programu najdete v tématu Práce se soubory ve svazcích katalogu Unity.

Ukázkový poznámkový blok: Vytvoření a práce se svazky

Následující poznámkový blok ukazuje základní syntaxi SQL pro vytvoření svazků katalogu Unity a interakci s nimi.

Kurz: Poznámkový blok svazků katalogu Unity

Získat poznámkový blok

Rezervované cesty pro svazky

Svazky představují 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 pro tyto cesty z rozhraní Apache Spark API a dbutils, včetně /volumes, /volume/Volume, , zda jsou předcházet dbfs:/. Cesta /dbfs/Volumes je také vyhrazená, ale nelze ji použít pro přístup ke svazkům.

Svazky jsou podporovány pouze v Databricks Runtime 13.3 LTS a vyšší. V databricks Runtime 12.2 LTS a níže mohou operace s /Volumes cestami proběhnout úspěšně, ale mohou zapisovat data do dočasných úložných disků připojených ke výpočetním clusterům, místo aby se data uchovávala ve svazcích katalogu Unity 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 úlohy.

Poznámka:

Svazky nepodporují dbutils.fs příkazy distribuované do exekutorů.

Platí následující omezení:

V Databricks Runtime 14.3 LTS a vyšší:

  • V clusterech uživatelů s jedním uživatelem nemůžete přistupovat ke svazkům z vláken a podprocesů v jazyce Scala.

V Databricks Runtime 14.2 a níže:

  • Na výpočetních prostředcích nakonfigurovaných v režimu sdíleného přístupu nemůžete pro přístup ke svazkům používat funkce definované uživatelem.
    • 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 konfigurovaných v režimu přístupu jednoho uživatele neexistuje podpora FUSE v jazyce Scala, kódu Io Scala, který přistupuje k datům pomocí cest svazků nebo uživatelem definovaných uživatelem. Funkce definované uživatelem v Pythonu se podporují v režimu přístupu jednoho uživatele.

Ve všech podporovaných verzích Databricks Runtime:

  • Funkce UDF katalogu Unity nepodporují přístup k cestám k souborům svazku.

  • Svazky nelze získat přístup ze sad RDD.

  • Spark-submit nejde použít s JAR uloženými ve svazku.

  • Závislosti nelze definovat do jiných knihoven, ke které se přistupuje prostřednictvím cest svazků uvnitř souboru Wheel nebo JAR.

  • Objekty katalogu Unity nelze vypsat pomocí /Volumes/<catalog-name> vzorů./Volumes/<catalog-name>/<schema-name> Musíte použít plně kvalifikovanou cestu, která obsahuje název svazku.

  • Koncový bod DBFS pro rozhraní REST API nepodporuje cesty ke svazkům.

  • Svazky jsou vyloučené z globálních výsledků hledání v pracovním prostoru Azure Databricks.

  • 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, což znamená, že se nepodporuje následující:

    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)
    
  • Svazky nejsou dostupné v oblastech Azure Government ani pracovních prostorech s dodržováním předpisů FedRAMP.

  • Na konfiguračním panelu knihovny Azure Data Factory musíte použít formát cesty se schématem dbfs:/ . Například dbfs:/Volumes/<catalog-name>/<schema-name>/<volume-name>/file.