Compartilhar via


Volumes

Aplica-se a:verificação marcada como sim Databricks SQL verificação marcada como sim Databricks Runtime 13.3 LTS e superior verificação marcada como sim somente para o Catálogo do Unity

Volumes são objetos do Catálogo do Unity que representam um volume lógico de armazenamento em um local de armazenamento de objetos na nuvem. Os volumes fornecem recursos para acessar, armazenar, controlar 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 em um esquema no Catálogo do Unity.

Um volume pode ser gerenciado ou externo.

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

Volume gerenciado

Um volume gerenciado é um volume de armazenamento controlado pelo Unity Catalog criado no local de armazenamento gerenciado do esquema que o 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. Não é necessário 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 Catálogo do Unity.

Volume externo

Um volume externo é um volume de armazenamento controlado pelo Catálogo do Unity registrado em um diretório em um local externo.

Nomenclatura e referência de volume

Um nome de volume é um identificador que pode ser qualificado com um catálogo e um nome de 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 letras minúsculas.

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

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

Observação

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

Gerenciar arquivos em volumes

Aplica-se a: verificação marcada como sim Conector SQL do Databricks

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

  • PUT INTO para copiar um arquivo do armazenamento local para um volume.
  • GET para copiar um arquivo de um volume para o armazenamento local.
  • REMOVE para remover um arquivo 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