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.
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:
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:
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. |
|
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. |
|
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 EXTERNALle 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 MANAGEDle colonne copiano i file nella memoria gestita. Imposta ladatabricks.filespace-previewproprietà 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:
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:
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
FileSpacerichiede ladatabricks.filespace-previewproprietà 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. |