FILE tipo

Si applica a:check contrassegnato come sì controllo SQL di Databricks contrassegnato come sì 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 FILE tipo non garantisce l'ordine. Non puoi usare una FILE colonna come colonna di partizionamento, colonna di clustering, chiave MAP , chiave join o espressione di raggruppamento. Per raggruppare per file, raggruppa invece per il suo uri campo.

Literals

Per creare un FILE valore, si vedano le seguenti funzioni:

A CASTVARIANT o STRUCT valore a FILE:

  • A STRUCT deve avere esattamente questi campi, con questi nomi e tipi: struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>.
  • VARIANT È necessario includere il uri campo. 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, FILE deve essere dichiarata come FILE MANAGED o FILE EXTERNAL. Utilizzo FILE in 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 CAST da un VARIANT valore o STRUCT di a.
    • Annidati all'interno di un STRUCT, un ARRAY, il valore di un MAP, o un VARIANT. Solo i file esterni sono supportati all'interno di un VARIANTfile .
  • Per leggere i metadati dei file, si usano i uricampi , offset, size, content_type, e checksum con notazione a punto, ad file_column.uriesempio .
  • Per estrarre contenuti strutturati da un file, passa un FILE valore alla ai_parse_document funzione 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;