Typ souboru a nestrukturovaná data

Important

Tato funkce je v beta verzi. Správci pracovního prostoru můžou řídit přístup k této funkci ze stránky Previews . Viz Manage Azure Databricks preview.

Typ ukládá FILE řízenou referenci na nestrukturovaný soubor s metadaty jako cesta a velikost. Používejte FILE sloupce v Unity Catalog k ukládání dokumentů, obrázků a zvuku vedle strukturovaných dat.

Pro typovou referenci viz FILE typ.

Následující diagram ukazuje sloupec pojmenovanývideo, FILE který odkazuje na jízdní klipy vedle strukturovaných sloupců, jako jsou trasa, popis scény a označení nebezpečí:

Tabulka poháněcích klipů, kde sloupec video je typ SOUBORU. Každý řádek spáruje strukturované sloupce (ID klipu, trasa, popis scény, označení hazardu a vložení) s odkazem na video soubor, který zobrazuje náhled a velikost například 1,8 GB.

Metadata a úložiště SOUBORU

Pro každý řádek typ ukládá FILE metadata a řízený odkaz na soubor v úložišti. Hodnota FILE zahrnuje uripole , size, content_type, a checksum metadat. Dotazy na metadata nevyžadují kompletní čtení souborů, což zlepšuje výkon dotazů.

Hodnoty můžete předávat FILEAI funkcím, jako jeai_parse_document funkce, a uživatelem definovaným funkcím (UDF).

Následující diagram ukazuje příklad řízeného FILE sloupce, obsahujícího metadata cesty a velikosti a odkazy na soubory ve skladování:

Tabulka klipů s video sloupcem uloženým jako typ SOUBORU, zobrazená jako dvojice cesty a velikosti. Šipky spojují každý řádek s jeho souborem ve skladu, což ilustruje řízenou referenci mezi tabulkou a soubory.

Proč používat FILE místo BINARY nebo STRING

Následující tabulka podrobně popisuje výzvy při práci s velkými nestrukturovanými soubory s BINARY typy or STRING

Typ sloupce Description Diagram
BINARY Materializuje celý objekt pro každé čtení, i když potřebujete pouze metadata jako velikost souboru nebo cestu. To vede k zbytečnému výpočtu a pomalým dotazům. Tabulka klipů s video sloupcem uloženým jako BINARY. Surové bajty každého vícegigabajtového videa jsou materializovány přímo v sloupci.
STRING Ukládá cestu k souboru bez metadat, jako je velikost nebo informace o verzi, a bez řízeného spojení mezi tabulkou a souborem. Pokud jiný workload soubor odstraní, tabulka obsahuje zastaralé informace. Pokud odstraníte řádek tabulky, odkazovaný soubor zůstane v paměti, dokud ho ručně neodstraníte. Tabulka klipů s video sloupcem uloženým jako cesta STRING, například s3://.../NW-0142. Jedna cesta se již nerozuzluje do souboru ve svazku, což ukazuje, že řetězcové cesty nezaručují existenci souborů a že správa není propojená.

Součtů

Pole checksum je token integrity pro bajty souboru ve tvaru <prefix>:<digest>. Použijte ho k porovnání souborů nebo ověření, že se soubor nezměnil. Čtenáři ignorují kontrolní součet s nerozpoznanou předponou.

Kontrolní součet není vždy k dispozici. to_file funkce, create_file funkce a funkce vyplňují copy_file kontrolní součet, když objektové úložiště vrátí .ETAG list_files Tabulkové a tabulkové funkce kontrolní read_files součet nevyplňují.

Pole checksum používá jeden z následujících prefixů:

Předpona Kódování digestem Description
ETAG Opaque ETag objektového úložiště pro celý soubor. Dodává to doslovně z obchodu, používá se pouze pro srovnání rovnosti a není rekonfigurovatelné.
MD5 Malé šestihranné písmeno MD5 digest (RFC 1321), 32 hex znaků.
CRC32 Malé šestihranné písmeno Kontrolní součet CRC32 (RFC 2083), 8 hex znaků.
CRC32C Malé šestihranné písmeno Kontrolní součet CRC32C (RFC 3385), 8 hex znaků.
SHA-256 Malé šestihranné písmeno SHA-256 digest (RFC 6234), 64 hex znaků.

Například kontrolní součet MD5 vypadá jako MD5:d41d8cd98f00b204e9800998ecf8427e, a eTag pro objektové úložiště vypadá jako ETAG:"686897696a7c876b7e", včetně okolních dvojitých uvozovek vrácených objektovým úložištěm.

Vyberte mezi FILE a BINARY

Následující tabulka porovnává možnosti práce s nestrukturovanými soubory:

Typ sloupce Values Případ použití
FILE Řízená reference na soubor, plus metadata (uri, size, , content_type). checksum Použití pro správu a zpracování nestrukturovaných souborů spolu se strukturovanými daty a pro předávání souborů vestavěným a AI funkcím.
BINARY Surové bajty souboru, vložené do sloupce. Použití pro malé objekty (až do 64 KB ve výchozím nastavení) uložené přímo v datovém souboru. To je užitečné, když potřebujete nízkou zátěž metadat a zjednodušenou správu souborů. Například použijte toto pro ukládání náhledů přímo s daty řádků.

SOUBOR EXTERNÍ a SPRAVOVANÝ SOUBOR

Typ FILE podporuje dva přístupy ke správě souborů:

  • FILE EXTERNAL sloupce odkazují na existující soubory v svazku Unity Catalog. Soubory jsou zabezpečeny oprávněními svazků Unity Catalog, ale jejich životní cyklus není Unity Catalog spravován a nejsou kopírovány. Tento přístup použijte, když potřebujete odkazovat na soubory, aniž byste přesouvali data nebo narušovali nástroje čtecí z existujícího svazku.
  • FILE MANAGED Sloupce kopírují soubory do spravovaného úložiště. Nastavte databricks.filespace-preview vlastnost table na spravovanou cestu svazku, kterou Unity Catalog používá jako úložiště. Tento přístup použijte, když chcete zjednodušená oprávnění, která jsou spravována přes tabulku pro pracovní zátěže, které přistupují pouze přes tabulku, například ML training nebo retrieval-augmented generation (RAG). Pro vzory vstupu viz Ingest soubory jako typ SOUBORU.

U dotazů není rozdíl mezi externími a spravovanými soubory.

Následující diagram ukazuje, jak typ propojuje FILE váš kód se soubory v cloudovém objektovém úložišti:

Schéma architektury typu FILE. Klientská rozhraní jako Python, SQL, Scala a UDF pracují s jedním typem souboru, který podporuje líné načítání. Typ má dvě varianty: FILE EXTERNAL, kde souborový systém spravuje životní cyklus, a FILE MANAGED, kde UC optimalizuje správu v tabulce. Externí soubory se mapují na externí svazek, který je řízen na úrovni svazku, a spravované soubory se mapují na FileSpace, který je řízen na úrovni tabulky, jak v cloudovém objektovém úložišti, jako je S3, ADLS nebo Google Cloud Storage.

FILE EXTERNAL

FILE EXTERNAL sloupce jsou odkazy na soubory, které již existují ve svazku Unity Catalog.

Pokud máte na svazku požadovaná oprávnění, můžete tyto soubory aktualizovat nebo smazat. Databricks doporučuje používat neměnné soubory. Udělení tabulky odhaluje metadata souboru, ale čtení bajtů souboru vyžaduje READ VOLUME také oprávnění na podkladovém svazku.

Externí soubor mapuje každý řádek tabulky na soubor na jeho stávající cestě v svazku Unity Catalog:

Diagram UC svazku obsahujícího trial soubory uspořádané pod fázovými složkami, namapované na sloupec EXTERNAL FILE. Každý řádek tabulky odkazuje na soubor podle jeho cesty k objemu a přidává strukturované sloupce, jako jsou Kohorta a Fáze studie.

příklady FILE EXTERNAL

Pro vytvoření tabulky se sloupcem FILE EXTERNAL :

CREATE TABLE documents (id BIGINT, file FILE EXTERNAL);

Pro přidání sloupce FILE EXTERNAL do existující tabulky:

ALTER TABLE documents ADD COLUMN file FILE EXTERNAL;

Pro vytvoření a naplnění tabulky ze svazku, přiřazení unikátních ID každému souboru:

CREATE TABLE documents AS
  SELECT monotonically_increasing_id() AS id, file
  FROM list_files('/Volumes/samples/sec/contracts/');

FILE MANAGED

FILE MANAGED sloupce ukládají kopie souborů do FileSpace, svazku Unity Catalog, který deklarujete pro tabulku jako spravované úložiště. Jejich životní cyklus je vázán na tabulky, které je odkazují.

Následující chování platí pro FILE MANAGED:

  • Deklarace vyžaduje FileSpace vlastnost databricks.filespace-preview tabulky.
  • Čtení nebo zápis spravovaného souboru vyžaduje přístup jak k tabulce, tak k objemu, který podkladá .FileSpace
  • Automatické sběrání odpadu neoznačených souborů není podporováno.

Nestrukturované soubory uložené v externích zdrojích, jako jsou SharePoint, Google Drive, OneDrive a SFTP, musí být nejprve přijaty jako spravované soubory, než je můžete použít s funkcemi jako ai_parse_document funkce a uživatelsky definované funkce (UDF). Pro vzory vstupu viz Ingest soubory jako typ SOUBORU.

Pro použití spravovaných souborů vytvořte tabulku se sloupcem FILE MANAGED a deklarujte svazek jako , FileSpace nastavením vlastnosti tabulky databricks.filespace-preview na cestu k objemu:

'databricks.filespace-preview' = '/Volumes/<catalog>/<schema>/<volume_name>/<optional_path>'

Pro úplné příklady viz následující FILE MANAGED příklady. Životní cyklus souborů v a FileSpace je vázán na řádky, které na ně odkazují. Smazání těchto řádků činí soubory způsobilými pro garbage collection.

příklady FILE MANAGED

Pro vytvoření tabulky se sloupcem FILE MANAGED :

CREATE TABLE reports (id BIGINT, file FILE MANAGED)
  TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');

Pro přidání sloupce FILE MANAGED do existující tabulky nastavte vlastnost tabulky databricks.filespace-preview před přidáním sloupce, jak je uvedeno v následujícím kódu:

ALTER TABLE reports SET TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');

ALTER TABLE reports ADD COLUMN attachment FILE MANAGED;

Přidání sloupce FILE MANAGED do tabulky, která nemá žádné FileSpace chyby.

Srovnání správy a životního cyklu

Následující tabulka porovnává, jak FILE EXTERNAL a FILE MANAGED jak řídí přístup k souborům a zpracovává životnost souboru:

Typ sloupce FILE EXTERNAL FILE MANAGED
Řízení přístupu k souborům Řízeno oprávněními pro objem, například READ VOLUME. Řízeno oprávněními k tabulce a svazku, například SELECT na stole a READ VOLUME na svazku.
Životní cyklus a uvolňování paměti Soubory spravuješ sám. Smazání řádku tabulky neovlivní podkladový soubor ve svazku. Soubory jsou navázány na řádky, které na ně odkazují. Smazání těchto řádků činí soubory způsobilými pro garbage collection. Automatické vybírání odpadu není podporováno.

Případy použití typu FILE

Jak externí, tak FILE spravované typy řeší následující výzvy při použití nestrukturovaných dat:

Výzva Podporovaný FILE typ Benefits
Soubory příliš velké na ukládání inline jako BINARY FILE MANAGED nebo FILE EXTERNAL Sloupec ukládá FILE referenci, takže soubor se čte pouze tehdy, když jej zpracuje AI funkce nebo UDF. Tím se zabrání materializaci velkých objektů v řadě v tabulce.
Nepropojený životní cyklus a správa mezi souborovým systémem a tabulkou FILE MANAGED Azure Databricks propojuje životní cyklus každého souboru s tabulkou, takže smazání řádků činí soubory způsobilými k vyčištění místo ponechání osiřelých souborů v úložišti.
Současná pracovní zátěž, která vyžadují, aby soubory zůstaly na stejném místě FILE EXTERNAL Soubory zůstávají na svých stávajících cestách svazků, neovlivněné životním cyklem tabulky, takže jiné nástroje, které čtou stejné soubory, nejsou narušeny.

Další kroky