Tipo di file e dati non strutturati

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 memorizza un riferimento governato a un file non strutturato, con metadati come percorso e dimensione. Usa FILE le colonne nel Catalogo Unity per memorizzare documenti, immagini e audio insieme a dati strutturati.

Per il riferimento tipografico, vedi FILE tipo.

Il diagramma seguente mostra una FILE colonna chiamata video che fa riferimento ai clip di guida accanto a colonne strutturate come percorso, descrizione della scena e etichetta di pericolo:

Una tabella di clip di guida in cui la colonna video è di tipo FILE. Ogni riga abbina colonne strutturate (ID clip, percorso, descrizione della scena, etichetta di pericolo e un embedding) con un riferimento a file video che mostra una miniatura e una dimensione come 1,8 GB.

Metadati e memorizzazione del file

Per ogni riga, il FILE tipo memorizza i metadati e un collegamento regolato al file in archiviazione. Un FILE valore include uri, size, content_type, e checksum i campi di metadati. Le query di metadati non richiedono letture complete dei file, migliorando le prestazioni delle query.

Puoi passare FILE valori a funzioni IA, come ai_parse_document funzioni, e a funzioni definite dall'utente (UDF).

Il diagramma seguente mostra un esempio di colonna gestita FILE , contenente metadati di percorso e dimensione e riferimenti ai file in archiviazione:

La tabella dei clip con la colonna video memorizzata come tipo FILE, mostrata come una coppia percorso e dimensione. Le frecce collegano ogni riga al suo file in archiviazione, illustrando un riferimento governato tra la tabella e i file.

Perché usare FILE invece di BINARY o STRING

La seguente tabella dettaglia le difficoltà nella gestione di file non strutturati di grandi dimensioni con BINARY o STRING tipi:

Tipo di colonna Description Diagram
BINARY Materializza l'oggetto completo per ogni lettura, anche quando servono solo metadati come la dimensione o il percorso del file. Questo comporta calcoli inutili e richieste lente. La tabella dei clip con la colonna video memorizzata come BINARY. I byte grezzi di ogni video multi-gigabyte vengono materializzati in linea nella colonna.
STRING Memorizza un percorso di file senza metadati, come informazioni di dimensione o versione, e senza un collegamento governato tra la tabella e il file. Se un altro carico di lavoro rimuove il file, la tabella ha informazioni obsolete. Se rimuovi una riga di tabella, il file citato rimane in archiviazione finché non lo rimuovi manualmente. La tabella dei clip con la colonna video memorizzata come percorso STRING, come s3://.../NW-0142. Un percorso non si risolve più in un file nel volume, il che mostra che i percorsi delle stringhe non garantiscono l'esistenza dei file e che la governance sia non collegata.

Checksum

Il checksum campo è un token di integrità per i byte del file, della forma <prefix>:<digest>. Usalo per confrontare i file o verificare che un file non sia cambiato. I lettori ignorano un checksum con un prefisso non riconosciuto.

Un checksum non è sempre disponibile. to_file funzione, create_file funzione e copy_file funzione popolano la somma di controllo quando lo store degli oggetti restituisce un ETAG. list_files La funzione a valori di tabella e read_files la funzione a valori di tabella non popolano il checksum.

Il checksum campo utilizza uno dei seguenti prefissi:

Prefisso Codifica digest Description
ETAG Opaque L'eTag dello store oggetti per l'intero file. Fornito parola per parola dal store, usato solo per il confronto di uguaglianza e non ricalcolabile.
MD5 Esagono minuscolo Un digest MD5 (RFC 1321), 32 caratteri esadecimali.
CRC32 Esagono minuscolo Un checksum CRC32 (RFC 2083), 8 caratteri esadecimali.
CRC32C Esagono minuscolo Un checksum CRC32C (RFC 3385), 8 caratteri esadecimali.
SHA-256 Esagono minuscolo Un digest SHA-256 (RFC 6234), 64 caratteri esadecimali.

Ad esempio, un checksum MD5 appare come MD5:d41d8cd98f00b204e9800998ecf8427e, e un eTag oggetto-store appare come ETAG:"686897696a7c876b7e", inclusi i doppi virgolette circostanti restituiti dallo store oggetto.

Seleziona tra FILE e BINARY

La tabella seguente confronta le opzioni per lavorare con file non strutturati:

Tipo di colonna Values Caso di utilizzo
FILE Un riferimento regolato a un file, più i metadati (uri, size, content_type, checksum). Utilizzato per gestire ed elaborare file non strutturati insieme a dati strutturati, e per passare file a funzioni integrate e di IA.
BINARY I byte grezzi di un file, in linea in una colonna. Utilizzare per piccoli oggetti (fino a 64 KB di default) memorizzati direttamente nel file dati. Questo è utile quando hai bisogno di un basso overhead di metadati e una gestione dei file semplificata. Ad esempio, usa questo per memorizzare miniature in linea con i dati della riga.

FILE EXTERNAL e FILE MANAGED

Il FILE tipo supporta due approcci per la gestione dei file:

  • FILE EXTERNAL le colonne fanno riferimento a file esistenti in un volume del Catalogo Unity. I file sono protetti dai permessi di volume del Catalogo Unity, ma il loro ciclo di vita non è gestito dal Catalogo Unity e non vengono copiati. Usa questo approccio quando hai bisogno di fare riferimento ai file senza spostare dati o interrompere strumenti che leggono da un volume esistente.
  • FILE MANAGED le colonne copiano i file nella memoria gestita. Imposta la databricks.filespace-preview proprietà della tabella su un percorso di volume gestito per Unity Catalog da usare come archiviazione. Usa questo approccio quando vuoi permessi semplificati che vengono gestiti tramite la tabella per carichi di lavoro che accedono ai file solo tramite una tabella, come l'addestramento ML o la generazione aumentata di recupero (RAG). Per i modelli di ingestione, vedi i file Ingest come tipo FILE.

Per le query, non c'è differenza tra file esterni e gestiti.

Il diagramma seguente mostra come il FILE tipo collega il tuo codice ai file nello storage di oggetti cloud:

Diagramma dell'architettura dei tipi FILE. Interfacce client come Python, SQL, Scala e UDF funzionano con un unico tipo di FILE che supporta il caricamento lento. Il tipo ha due varianti: FILE EXTERNAL, dove il file system gestisce il ciclo di vita, e FILE MANAGED, dove UC ottimizza la governance tramite la tabella. I file esterni vengono mappati a un volume esterno governato a livello di volume, mentre i file gestiti si mappano a un FileSpace governato a livello di tabella, sia nello storage cloud di oggetti come S3, ADLS o Google Cloud Storage.

FILE EXTERNAL

FILE EXTERNAL le colonne sono riferimenti a file già esistenti in un volume del Catalogo Unity.

Se hai i privilegi necessari sul volume, puoi aggiornare o eliminare questi file. Databricks consiglia di usare file immutabili. Una concessione di tabella espone i metadati del file, ma la lettura dei byte del file richiede anche il READ VOLUME privilegio sul volume sottostante.

Un file esterno mappa ogni riga di tabella a un file sul suo percorso esistente in un volume del Catalogo Unity:

Un diagramma di un volume UC contenente file di prova organizzati sotto cartelle di fase, mappato su una colonna FILE ESTERNO. Ogni riga della tabella fa riferimento a un file tramite il suo percorso di volume e aggiunge colonne strutturate come Cohort e Study Phase.

FILE EXTERNAL esempi

Per creare una tabella con una FILE EXTERNAL colonna:

CREATE TABLE documents (id BIGINT, file FILE EXTERNAL);

Per aggiungere una FILE EXTERNAL colonna a una tabella esistente:

ALTER TABLE documents ADD COLUMN file FILE EXTERNAL;

Per creare e popolare una tabella da un volume, assegnando ID unici a ciascun file:

CREATE TABLE documents AS
  SELECT monotonically_increasing_id() AS id, file
  FROM list_files('/Volumes/samples/sec/contracts/');

FILE MANAGED

FILE MANAGED colonne conservano copie dei file in un FileSpace, un volume del Catalogo Unity che dichiari affinché la tabella venga utilizzato come archiviazione gestita. Il loro ciclo di vita è legato alle tabelle che li riferiscono.

I seguenti comportamenti si applicano a FILE MANAGED:

  • Dichiarare il FileSpace richiede la databricks.filespace-preview proprietà della tabella.
  • Leggere o scrivere un file gestito richiede l'accesso sia alla tabella che al volume che supporta il FileSpacefile .
  • La raccolta automatica dei file non referenziati non è supportata.

I file non strutturati memorizzati in fonti esterne come SharePoint, Google Drive, OneDrive e SFTP devono essere ingeriti come file gestiti prima di poterli utilizzare con funzioni come ai_parse_document funzioni come funzioni e funzioni definite dall'utente (UDF). Per i modelli di ingestione, vedi i file Ingest come tipo FILE.

Per utilizzare file gestiti, crea una tabella con una FILE MANAGED colonna e dichiara un volume come impostando FileSpace la databricks.filespace-preview proprietà della tabella su un percorso di volume:

'databricks.filespace-preview' = '/Volumes/<catalog>/<schema>/<volume_name>/<optional_path>'

Per esempi completi, vedi i seguenti FILE MANAGED esempi. Il ciclo di vita dei file in un FileSpace è legato alle righe che li riferiscono. Eliminare quelle righe rende i file idonei per la raccolta dei rifiuti.

FILE MANAGED esempi

Per creare una tabella con una FILE MANAGED colonna:

CREATE TABLE reports (id BIGINT, file FILE MANAGED)
  TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');

Per aggiungere una FILE MANAGED colonna a una tabella esistente, imposta la proprietà della databricks.filespace-preview tabella prima di aggiungere la colonna, come nel seguente codice:

ALTER TABLE reports SET TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');

ALTER TABLE reports ADD COLUMN attachment FILE MANAGED;

Aggiungere una FILE MANAGED colonna a una tabella che non ha fallimenti FileSpace .

Confronto tra governance e ciclo di vita

La tabella seguente confronta come FILE EXTERNAL e FILE MANAGED regolano l'accesso ai file e gestiscono il ciclo di vita dei file:

Tipo di colonna FILE EXTERNAL FILE MANAGED
Controllo di accesso ai file Regolati da permessi di volume, come READ VOLUME. Regolati dai permessi di tabella e volume, come quelli SELECT sulla tabella e READ VOLUME sul volume.
Ciclo di vita e Garbage Collection Gestisci i file da solo. Eliminare una riga di tabella non influisce sul file sottostante nel volume. I file sono legati alle righe che li richiamano. Eliminare quelle righe rende i file idonei per la raccolta dei rifiuti. La raccolta automatica dei rifiuti non è supportata.

Casi d'uso di tipo FILE

Sia i tipi esterni che quelli gestiti FILE affrontano le seguenti sfide per i casi d'uso che utilizzano dati non strutturati:

Sfida Tipo supportato FILE Benefits
File troppo grandi per essere archiviati in linea come BINARY FILE MANAGED oppure FILE EXTERNAL Una FILE colonna memorizza un riferimento, quindi un file viene letto solo quando una funzione AI o un UDF lo elabora. Questo evita che oggetti grandi si materializzino in fila nel tavolo.
Ciclo di vita e governance scollegati tra il file system e la tabella FILE MANAGED Azure Databricks collega il ciclo di vita di ogni file alla tabella, quindi eliminare le righe rende i file idonei alla pulizia invece di lasciare file orfani in archiviazione.
Carichi di lavoro concorrenti che richiedono che i file restino nella stessa posizione FILE EXTERNAL I file rimangono nei loro percorsi di volume esistenti, non influenzati dal ciclo di vita della tabella, quindi altri strumenti che leggono gli stessi file non vengono disturbati.

Passaggi successivi