Volumes
Si applica a: Databricks SQL Databricks Runtime 13.3 LTS e versioni successive solo Unity Catalog
Volumes sono oggetti Unity Catalog che rappresentano un volume logico di archiviazione in una posizione di archiviazione di oggetti cloud. Volumes offrono funzionalità per l'accesso, l'archiviazione, la governance e l'organizzazione dei file. Mentre tables fornisce governance per i set di dati tabulari, volumes aggiunge governance per i set di dati non tabulari. È possibile usare volumes per archiviare e accedere ai file in qualsiasi formato, inclusi dati strutturati, semistrutturati e non strutturati.
Volumes sono fratelli di tables, viewse altri oggetti organizzati in un schema in Unity Catalog.
Un volume può essere gestito o esterno.
Per maggiori dettagli e limitazioni, consultare Che cosa sono Unity Catalogvolumes?.
Volume gestito
Un volume gestito è un volume di archiviazione controllato da Unity Catalogcreato all'interno della posizione di archiviazione gestita del contenitore schema. Le volumes gestite consentono la creazione di risorse di archiviazione regolamentate per lavorare con i file senza il sovraccarico di percorsi esterni e archiviazione credentials. Non è necessario specificare una posizione durante la creazione di un volume gestito, e l'accesso ai file per i dati nella volumes gestita avviene tramite percorsi gestiti da Unity Catalog.
Volume esterno
Un volume esterno è un volume di archiviazione governato da Unity Catalog, registrato in una directory collocata in una posizione esterna.
Denominazione e riferimento dei volumi
Un nome di volume è un identifier che può essere qualificato con un nome catalog e schema nei comandi SQL.
Il percorso per accedere ai file in volumes 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 esterni in volumes utilizzando gli URI del cloud storage.
Gestione dei file in volumes
Si applica a: Connettore SQL di Databricks
Usando un connettore SQL di Databricks è possibile gestire i file in volumes 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 alla risorsa di archiviazione locale.
- REMOVE a remove 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