typ FILE

Platí pro:check marked yes Databricks SQL check marked yes Databricks Runtime 18 LTS and above

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 FILE představuje odkaz na nestrukturovaný soubor a jeho metadata. Používejte ho ke správě a zpracování dokumentů, obrázků a zvuku spolu se strukturovanými daty v Unity Catalog.

FILE typ je podporován pouze pro tabulky Delta Lake.

Note

Tento FILE typ není podporován na serverless noteboích. Je podporován na noteboích připojených k serverless Databricks SQL skladům.

Syntax

{ FILE MANAGED | FILE EXTERNAL }

Použijte FILE MANAGED or FILE EXTERNAL jako typ sloupce, když deklarujete sloupec tabulky s .CREATE TABLE Nemůžete deklarovat sloupec tabulky jako bez FILE specifikace buď MANAGED , nebo EXTERNAL. FILE je povoleno pouze jako parametr nebo typ návratu v UDF, uložené procedurě nebo při převádění.

Pro srovnání FILE EXTERNAL a FILE MANAGED, včetně architektonických diagramů viz FILE EXTERNAL a FILE MANAGED.

Pole

Hodnota FILE obsahuje následující pole:

Obor Typ Description
uri STRING URI souboru. Toto pole nemůže být null.
offset BIGINT Offset do souboru v bajtech.
size BIGINT Velikost souboru v bajtech
content_type STRING MIME typ souboru, pokud je znám.
checksum STRING Integritní token pro bajty souboru ve tvaru <algorithm>:<digest>. Pro rozpoznané algoritmy viz Kontrolní součty.

Omezení

  • Typ FILE nezaručuje objednávku. Nemůžete použít FILE sloupec jako sloupec pro rozdělení, sloupec pro shlukování, klíč, MAP klíč pro spojení nebo výraz pro seskupení. Pro seskupení podle souboru seskupte podle jeho uri pole.

Literals

Pro vytvoření FILE hodnoty viz následující funkce:

Do CAST nebo VARIANTSTRUCT na hodnotu :FILE

  • A STRUCT musí mít přesně tato pole, s těmito názvy a typy: struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>.
  • A VARIANT musí zahrnovat uri obor. Všechna ostatní pole jsou volitelná a jakékoli další klíče se ignorují.

Házejte na FILE, ne na FILE EXTERNAL nebo FILE MANAGED. Cílový sloupec určuje, zda je výsledná reference externí nebo spravovaná. Když napíšete externí odkaz na sloupec FILE MANAGED , Databricks ho importuje do spravovaného úložiště.

Poznámky

  • Jako sloupec nejvyšší úrovně tabulky musí být FILE deklarován jako FILE MANAGED nebo FILE EXTERNAL. Použijte FILE ve všech ostatních případech:
    • Jako parametr nebo typ návratu v SQL, Python a Scala uživatelsky definované funkce (UDF) a v SQL uložených procedurách.
    • Jako cílový typ a CAST z hodnoty nebo VARIANTSTRUCT .
    • Vnořené do , STRUCT, ARRAYhodnoty , MAPnebo .VARIANT Uvnitř jsou podporovány pouze externí soubory VARIANT.
  • Pro čtení metadat souboru použijte , , , , a checksum pole s tečkovou notací, například file_column.uri. content_typesizeoffseturi
  • Pro extrakci strukturovaného obsahu ze souboru předejte FILE hodnotu funkcionální funkcijiai_parse_document.

Examples

Pro deklaraci tabulky s externím FILE sloupcem:

CREATE TABLE attachments (id BIGINT, attachment FILE EXTERNAL);

Pro naplnění ze souborů, které už v jednom svazku existují:

INSERT INTO attachments
  SELECT row_number() OVER (ORDER BY file.uri), file
  FROM read_files('/Volumes/my_catalog/my_schema/my_volume/', format => 'file');

Pro čtení metadat souborů pomocí tečkového zápisu:

SELECT attachment.uri, attachment.size, attachment.checksum
  FROM attachments;

Pro konstrukci FILE hodnoty ze struktury:

SELECT named_struct(
  'uri', '/Volumes/my_catalog/my_schema/my_volume/report.pdf',
  'offset', null,
  'size', CAST(19494 AS BIGINT),
  'content_type', 'application/pdf',
  'checksum', 'ETAG:v1')::FILE;