Typ: FILE

Gäller för:check markerad ja Databricks SQL-kontroll markerad ja Databricks Runtime 18 LTS och senare

Important

Den här funktionen finns i Beta. Arbetsyteadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera förhandsversioner av Azure Databricks.

Typen FILE representerar en referens till en ostrukturerad fil och dess metadata. Använd den för att hantera och bearbeta dokument, bilder och ljud tillsammans med strukturerad data i Unity Catalog.

FILE typ stöds endast för Delta Lake-tabeller.

Anmärkning

Typen FILE stöds inte på serverlösa anteckningsböcker. Det stöds på anteckningsböcker kopplade till serverlösa Databricks SQL-lager.

Syntax

{ FILE MANAGED | FILE EXTERNAL }

Använd FILE MANAGED or FILE EXTERNAL som kolumntyp när du deklarerar en tabellkolumn med CREATE TABLE. Du kan inte deklarera en tabellkolumn som FILE utan att specificera antingen MANAGED eller EXTERNAL. FILE tillåts endast som parameter eller returtyp i en UDF, lagrad procedur eller vid casting.

För en jämförelse av FILE EXTERNAL och FILE MANAGED, inklusive arkitekturdiagram, se FIL EXTERN och FIL HANTERAD.

Fält

Ett FILE värde innehåller följande fält:

Fält Type Description
uri STRING URI:n för filen. Det här fältet kan inte vara null.
offset BIGINT En offset in i filen, i bytes.
size BIGINT Storleken på filen i byte.
content_type STRING MIME-typen på filen, när den är känd.
checksum STRING En integritetstoken för filens bytes, av formen <algorithm>:<digest>. För de erkända algoritmerna, se Checksums.

Limits

  • Typen FILE garanterar inte beställning. Du kan inte använda en FILE kolumn som en partitioneringskolumn, en klustringskolumn, en MAP nyckel, en join-nyckel eller ett grupperingsuttryck. För att gruppera efter en fil, gruppera efter dess uri fält istället.

Literals

För att skapa ett FILE värde, se följande funktioner:

Till CAST ett VARIANT eller STRUCT värde till FILE:

  • A STRUCT måste ha exakt dessa fält, med dessa namn och typer: struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>.
  • Ett VARIANT måste inkludera uri fältet. Alla andra fält är valfria och eventuella ytterligare nycklar ignoreras.

Kasta till FILE, inte till eller FILE EXTERNALFILE MANAGED. Målkolumnen avgör om den resulterande referensen är extern eller hanterad. När du skriver en extern referens till en FILE MANAGED kolumn importerar Databricks den till hanterad lagring.

Notes

  • Som en toppnivåkolumn i tabellen måste deklareras FILE som FILE MANAGED eller FILE EXTERNAL. Användning FILE i alla andra fall:
    • Som parameter- eller returtyp i SQL, Python och Scala användardefinierade funktioner (UDF) och i SQL-lagrade procedurer.
    • Som måltypen av a CAST från ett VARIANT eller värde STRUCT .
    • Inbäddat i en STRUCT, en ARRAY, värdet av en MAP, eller en VARIANT. Endast externa filer stöds i en VARIANT.
  • För att läsa filmetadata, använd uri, offset, size, content_type, och checksum fälten med punktnotation, till exempel file_column.uri.
  • För att extrahera strukturerat innehåll från en fil, skicka ett FILE värde till ai_parse_document funktionsfunktionen .

Examples

För att deklarera en tabell med en extern FILE kolumn:

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

För att fylla den från filer som redan finns i en volym:

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

För att läsa filmetadata med punktnotation:

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

För att konstruera ett FILE värde från en struktur:

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;