Condividi tramite


Volumes

Si applica a:contrassegnato con un segno di spunta sì Databricks SQL contrassegnato con un segno di spunta sì Databricks Runtime 13.3 LTS e versioni successive contrassegnato con un segno di spunta sì 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:segno di spunta sì 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