Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks
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
FILEtype garandeert geen bestelling. Je kunt eenFILEkolom niet gebruiken als partitioneringskolom, clusteringkolom, keyMAP, join-key of groeperingsexpressie. Om te groeperen per bestand, groepeer dan op heturiveld ervan.
Literals
Om een FILE waarde te creëren, zie de volgende functies:
-
to_filefunctie creëert eenFILEreferentie vanuit een pad. -
try_to_filefunctie maakt eenFILEreferentie aan van een pad en keert terugNULLals het bestand niet bestaat. -
create_fileDe functie uploadt inhoud naar een pad en geeft eenFILEreferentie terug. -
copy_fileFunctie kopieert een bestand naar een doelpad en geeft eenFILEreferentie terug.
Tot CAST een VARIANT of STRUCT waarde tot FILE:
- A
STRUCTmoet precies deze velden hebben, met deze namen en typen:struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>. - Een
VARIANTmust heturiveld 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
FILEop topniveau moet worden declareerd alsFILE MANAGEDofFILE EXTERNAL. GebruikFILEin 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
CASTuit eenVARIANTof waardeSTRUCT. - Genest binnen een
STRUCT, eenARRAY, de waarde van eenMAP, of eenVARIANT. Alleen externe bestanden worden ondersteund binnen eenVARIANT.
- Om bestandsmetadata te lezen, gebruik je bijvoorbeeld de
uri,offset,size, ,content_typeen veldenchecksummet puntnotatie.file_column.uri - Om gestructureerde inhoud uit een bestand te halen, geef je een
FILEwaarde door aan deai_parse_documentfunctiefunctie .
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;