Volumi
Si applica a: Solo databricks SQL Databricks Runtime 13.3 LTS e versioni successive al catalogo Unity
I volumi sono oggetti catalogo Unity che rappresentano un volume logico di archiviazione in un percorso di archiviazione di oggetti cloud. I volumi offrono funzionalità per l'accesso, l'archiviazione, la governance e l'organizzazione dei file. Mentre le tabelle forniscono la governance sui set di dati tabulari, i volumi aggiungono governance su set di dati non tabulari. È possibile usare volumi per archiviare e accedere ai file in qualsiasi formato, inclusi dati strutturati, semistrutturati e non strutturati.
I volumi sono di pari livello a tabelle, viste e altri oggetti organizzati in uno schema in Unity Catalog.
Un volume può essere gestito o esterno.
Per altri dettagli e limitazioni, vedere Che cosa sono i volumi del catalogo Unity?.
Volume gestito
Un volume gestito è un volume di archiviazione regolamentato dal catalogo unity creato all'interno del percorso di archiviazione gestito dello schema contenitore. I volumi gestiti consentono la creazione di risorse di archiviazione regolamentate per lavorare con i file senza sovraccarico di percorsi esterni e credenziali di archiviazione. Non è necessario specificare un percorso durante la creazione di un volume gestito e l'accesso ai file per i dati nei volumi gestiti avvierà tramite percorsi gestiti da Unity Catalog.
Volume esterno
Un volume esterno è un volume di archiviazione regolamentato dal catalogo unity registrato in una directory all'interno di una posizione esterna.
Denominazione e riferimento dei volumi
Un nome di volume è un identificatore che può essere qualificato con un catalogo e un nome di schema nei comandi SQL.
Il percorso per accedere ai file nei volumi usa il formato seguente:
/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>
Si noti che Azure Databricks normalizza gli identificatori in lettere minuscole.
Azure Databricks supporta anche uno schema facoltativo dbfs:/
, quindi funziona anche il percorso seguente:
dbfs:/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>
Nota
È anche possibile accedere ai dati in volumi esterni usando gli URI di archiviazione cloud.
Gestione dei file nei volumi
Si applica a: Connettore SQL di Databricks
Usando un connettore SQL di Databricks è possibile gestire i file nei volumi usando i comandi seguenti:
- PUT INTO per copiare un file dalla risorsa di archiviazione locale in un volume.
- GET per copiare un file da un volume all'archiviazione locale.
- REMOVE per rimuovere un file da un volume.
Esempi
--- Create an external volume under the directory “my-path”
> CREATE EXTERNAL VOLUME IF NOT EXISTS myCatalog.mySchema.myExternalVolume
COMMENT 'This is my example external volume'
LOCATION 's3://my-bucket/my-location/my-path'
OK
--- Set the current catalog
> USE CATALOG myCatalog;
OK
--- Set the current schema
> USE SCHEMA mySchema;
OK
--- Create a managed volume; it is not necessary to specify a location
> CREATE VOLUME myManagedVolume
COMMENT 'This is my example managed volume';
OK
--- List the files inside the volume, all names are lowercase
> LIST '/Volumes/mycatalog/myschema/myexternalvolume'
sample.csv
> LIST 'dbfs:/Volumes/mycatalog/myschema/mymanagedvolume'
sample.csv
--- Print the content of a csv file
> SELECT * FROM csv.`/Volumes/mycatalog/myschema/myexternalvolume/sample.csv`
20
> SELECT * FROM csv.`dbfs:/Volumes/mycatalog/myschema/mymanagedvolume/sample.csv`
20