Volumes
Aplica-se a: Databricks SQL Databricks Runtime 13.3 LTS e superior 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: 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