Partilhar via


Volumes

Aplica-se a:Marque Sim Databricks SQL Marque Sim Databricks Runtime 13.3 LTS e superior Marque Sim somente Unity Catalog

Os volumes são objetos do Unity Catalog que representam um volume lógico de armazenamento em um local de armazenamento de objetos em nuvem. Os volumes fornecem recursos para acessar, armazenar, governar e organizar arquivos. Enquanto as tabelas fornecem governança sobre conjuntos de dados tabulares, os volumes adicionam governança sobre conjuntos de dados não tabulares. Você pode usar volumes para armazenar e acessar arquivos em qualquer formato, incluindo dados estruturados, semiestruturados e não estruturados.

Os volumes são irmãos de tabelas, exibições e outros objetos organizados sob um esquema no Unity Catalog.

Um volume pode ser gerenciado ou externo.

Para obter mais detalhes e limitações, consulte O que são volumes do catálogo Unity?.

Volume gerenciado

Um volume gerenciado é um volume de armazenamento controlado pelo Unity Catalog, criado dentro do local de armazenamento gerenciado do esquema que contém. Os volumes gerenciados permitem a criação de armazenamento controlado para trabalhar com arquivos sem a sobrecarga de locais externos e credenciais de armazenamento. Você não precisa especificar um local ao criar um volume gerenciado, e todo o acesso a arquivos para dados em volumes gerenciados é feito por meio de caminhos gerenciados pelo Unity Catalog.

Volume externo

Um volume externo é um volume de armazenamento controlado pelo Unity Catalog registrado em um diretório dentro de um local externo.

Nomenclatura e referência de volume

Um nome de volume é um identificador que pode ser qualificado com um nome de catálogo e esquema em comandos SQL.

O caminho para acessar arquivos em volumes usa o seguinte formato:

/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>

Observe que o Azure Databricks normaliza os identificadores para minúsculas.

O Azure Databricks também dá suporte a um esquema opcional dbfs:/ , portanto, o caminho a seguir também funciona:

dbfs:/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>

Nota

Você também pode acessar dados em volumes externos usando URIs de armazenamento em nuvem.

Gerenciando arquivos em volumes

Aplica-se a: Marque Sim Databricks SQL Connector

Usando um Databricks SQL Connector você pode gerenciar arquivos em volumes usando os seguintes comandos:

  • PUT INTO para copiar um arquivo do seu armazenamento local para um volume.
  • GET para copiar um ficheiro de um volume para o seu armazenamento local.
  • REMOVER para remover um ficheiro de um volume.

Exemplos

--- 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