FILE soort

Van toepassing op:controleren gemarkeerd ja Databricks SQL-controle gemarkeerd als ja Databricks Runtime 18 LTS en hoger

Important

Deze functie bevindt zich in de bètaversie. Werkruimtebeheerders kunnen de toegang tot deze functie beheren vanaf de pagina Previews . Zie Azure Databricks previews beheren.

Het FILE type vertegenwoordigt een verwijzing naar een ongestructureerd bestand en de metadata daarvan. Gebruik het om documenten, afbeeldingen en audio te beheren en te verwerken naast gestructureerde data in Unity Catalog.

FILE type wordt alleen ondersteund voor Delta Lake-tafels.

Note

Het FILE type wordt niet ondersteund op serverless notebooks. Het wordt ondersteund op notebooks die zijn gekoppeld aan serverless Databricks SQL-warehouses.

Syntax

{ FILE MANAGED | FILE EXTERNAL }

Gebruik FILE MANAGED of FILE EXTERNAL als kolomtype wanneer je een tabelkolom declareert met CREATE TABLE. Je kunt een tabelkolom niet declareren als zonder FILE een of MANAGEDEXTERNALof te specificeren. FILE is alleen toegestaan als parameter of retourtype in een UDF, stored procedure, of bij casting.

Voor een vergelijking van FILE EXTERNAL en FILE MANAGED, inclusief architectuurdiagrammen, zie FILE EXTERNAL en FILE MANAGED.

Velden

Een FILE waarde bevat de volgende velden:

Veld Type Description
uri STRING De URI van het bestand. Dit veld kan niet zo zijn null.
offset BIGINT Een offset in het bestand, in bytes.
size BIGINT De grootte van het bestand in bytes.
content_type STRING Het MIME-type van het bestand, wanneer bekend.
checksum STRING Een integriteitstoken voor de bytes van het bestand, van de vorm <algorithm>:<digest>. Voor de erkende algoritmen, zie Checksums.

Limieten

  • Het FILE type garandeert geen bestelling. Je kunt een FILE kolom niet gebruiken als partitioneringskolom, clusteringkolom, key MAP , join-key of groeperingsexpressie. Om te groeperen per bestand, groepeer dan op het uri veld ervan.

Literals

Om een FILE waarde te creëren, zie de volgende functies:

Tot CAST een VARIANT of STRUCT waarde tot FILE:

  • A STRUCT moet precies deze velden hebben, met deze namen en typen: struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>.
  • Een VARIANT must het uri veld vermelden. Alle andere velden zijn optioneel en eventuele extra sleutels worden genegeerd.

Cast to FILE, niet to FILE EXTERNAL of FILE MANAGED. De doelkolom bepaalt of de resulterende referentie extern of beheerd is. Wanneer je een externe referentie naar een FILE MANAGED kolom schrijft, voert Databricks deze in beheerde opslag op.

Aantekeningen

  • Als kolom FILE op topniveau moet worden declareerd als FILE MANAGED of FILE EXTERNAL. Gebruik FILE in alle andere gevallen:
    • Als parameter- of retourtype in SQL, Python en Scala door gebruikers gedefinieerde functies (UDF's) en in SQL-opgeslagen procedures.
    • Als het doeltype van a CAST uit een VARIANT of waarde STRUCT .
    • Genest binnen een STRUCT, een ARRAY, de waarde van een MAP, of een VARIANT. Alleen externe bestanden worden ondersteund binnen een VARIANT.
  • Om bestandsmetadata te lezen, gebruik je bijvoorbeeld de uri, offset, size, , content_typeen velden checksum met puntnotatie.file_column.uri
  • Om gestructureerde inhoud uit een bestand te halen, geef je een FILE waarde door aan de ai_parse_document functiefunctie .

Examples

Om een tabel met een externe FILE kolom te declareren:

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

Om het te vullen uit bestanden die al in een volume bestaan:

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

Om bestandsmetadata te lezen met dotnotatie:

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

Om een FILE waarde te construeren uit een structuur:

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;