Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
controllo SQL di Databricks
Databricks Runtime 18 LTS e versioni successive
Importante
Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.
Il FILE tipo rappresenta un riferimento a un file non strutturato e ai suoi metadati. Usalo per gestire e elaborare documenti, immagini e audio insieme ai dati strutturati nel Catalogo Unity.
FILE type è supportato solo per le tabelle Delta Lake.
Nota
Questo FILE tipo non è supportato sui notebook serverless. È supportata su notebook collegati a serverless Databricks SQL warehouse.
Sintassi
{ FILE MANAGED | FILE EXTERNAL }
Usa FILE MANAGED o FILE EXTERNAL come tipo di colonna quando dichiari una colonna di tabella con CREATE TABLE. Non puoi dichiarare una colonna di tabella come FILE senza specificare né MANAGED l'uno né EXTERNALl'altro .
FILE è consentito solo come parametro o tipo di ritorno in un UDF, una procedura memorizzata o durante il casting.
Per un confronto di FILE EXTERNAL e FILE MANAGED, inclusi i diagrammi architettonici, vedi FILE EXTERNAL e FILE MANAGED.
Campi
Un FILE valore contiene i seguenti campi:
| Campo | Type | Description |
|---|---|---|
uri |
STRING |
L'URI del file. Questo campo non può essere null. |
offset |
BIGINT |
Un offset nel file, in byte. |
size |
BIGINT |
Le dimensioni del file in byte. |
content_type |
STRING |
Il tipo MIME del file, quando noto. |
checksum |
STRING |
Un token di integrità per i byte del file, della forma <algorithm>:<digest>. Per gli algoritmi riconosciuti, vedi Checksum. |
Limits
- Il
FILEtipo non garantisce l'ordine. Non puoi usare unaFILEcolonna come colonna di partizionamento, colonna di clustering, chiaveMAP, chiave join o espressione di raggruppamento. Per raggruppare per file, raggruppa invece per il suouricampo.
Literals
Per creare un FILE valore, si vedano le seguenti funzioni:
-
to_filefunzione crea unFILEriferimento da un percorso. -
try_to_filefunzione crea unFILEriferimento da un percorso e restituisceNULLse il file non esiste. -
create_filefunzione carica il contenuto su un percorso e restituisce unFILEriferimento. -
copy_filefunzione copia un file su un percorso di destinazione e restituisce unFILEriferimento.
A CASTVARIANT o STRUCT valore a FILE:
- A
STRUCTdeve avere esattamente questi campi, con questi nomi e tipi:struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>. -
VARIANTÈ necessario includere iluricampo. Tutti gli altri campi sono opzionali e eventuali tasti aggiuntivi vengono ignorati.
Lanciare a FILE, non a FILE EXTERNAL o FILE MANAGED. La colonna target determina se il riferimento risultante è esterno o gestito. Quando scrivi un riferimento esterno a una FILE MANAGED colonna, Databricks lo assume nello storage gestito.
Note
- Come colonna di tabella di livello superiore,
FILEdeve essere dichiarata comeFILE MANAGEDoFILE EXTERNAL. UtilizzoFILEin tutti gli altri casi:- Come parametro o tipo di ritorno in SQL, Python e Scala funzioni definite dall'utente (UDF) e nelle stored procedure SQL.
- Come tipo target di a
CASTda unVARIANTvalore oSTRUCTdi a. - Annidati all'interno di un
STRUCT, unARRAY, il valore di unMAP, o unVARIANT. Solo i file esterni sono supportati all'interno di unVARIANTfile .
- Per leggere i metadati dei file, si usano i
uricampi ,offset,size,content_type, echecksumcon notazione a punto, adfile_column.uriesempio . - Per estrarre contenuti strutturati da un file, passa un
FILEvalore allaai_parse_documentfunzione funzione.
Examples
Per dichiarare una tabella con una colonna esterna FILE :
CREATE TABLE attachments (id BIGINT, attachment FILE EXTERNAL);
Per popolarlo da file già esistenti in un volume:
INSERT INTO attachments
SELECT row_number() OVER (ORDER BY file.uri), file
FROM read_files('/Volumes/my_catalog/my_schema/my_volume/', format => 'file');
Per leggere i metadati dei file usando la notazione dot:
SELECT attachment.uri, attachment.size, attachment.checksum
FROM attachments;
Per costruire un FILE valore da una struct:
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;