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