Gerencie arquivos em volumes
Este artigo fornece exemplos de gerenciamento de arquivos em volumes do Catálogo do Unity para diversas interfaces de usuário, ferramentas, bibliotecas e idiomas.
A Databricks recomenda a utilização de volumes para gerenciar todo o acesso a dados não tabulares no armazenamento de objetos na nuvem. Exemplos de dados não tabulares incluem o seguinte:
- Arquivos de dados para ingestão, como CSV, JSON e Parquet.
- Arquivos de texto, imagem e áudio para cargas de trabalho de ciência de dados, ML e IA.
- Artefatos CSV ou JSON escritos pelo Azure Databricks para integração com sistemas externos.
É possível usar volumes para armazenar arquivos como bibliotecas, scripts de inicialização e artefatos de compilação. Confira Recomendações para arquivos em volumes e arquivos de workspace.
Trabalhar com arquivos em volumes usando a interface do usuário do Explorador de Catálogo
O Gerenciador de Catálogos fornece opções para tarefas comuns de gerenciamento de arquivos para arquivos armazenados com volumes do Catálogo do Unity.
Para interagir com arquivos em um volume, faça o seguinte:
- No workspace do Azure Databricks, clique em Catálogo.
- Pesquise ou procure o volume com o qual deseja trabalhar e selecione-o.
Para obter detalhes sobre como criar e gerenciar volumes, veja Criar e gerenciar volumes.
Carregar arquivos em um volume
O botão Carregar neste volume abre uma caixa de diálogo para fazer upload de arquivos. Consulte Carregar arquivos em um volume do Catálogo do Unity.
Os arquivos carregados não podem exceder 5 GB.
Baixe arquivos de um volume
Para baixar arquivos de um volume, faça o seguinte:
- Selecione um ou mais arquivos.
- Clique em Baixar para baixar esses arquivos.
Excluir arquivos de um volume
Para excluir arquivos de um volume, faça o seguinte:
- Selecione um ou mais arquivos.
- Clique em Excluir.
- Clique em Excluir para confirmar na caixa de diálogo que aparece.
Crie um diretório em branco
Para criar um novo diretório em um volume, faça o seguinte:
- Clique em à direita do nome do volume.
- Selecione Criar diretório.
- Insira um nome de diretório.
- Clique em Criar.
Excluir diretórios de um volume
Para excluir diretórios de um volume, faça o seguinte:
- Selecione um ou mais diretórios.
- Clique em Excluir.
- Clique em Excluir para confirmar na caixa de diálogo que aparece.
Tarefas de gerenciamento de arquivos da interface do usuário para volumes
Clique no menu kebab ao lado de um nome de arquivo para realizar as ações a seguir:
- Copiar caminho
- Fazer download do arquivo
- Excluir arquivo
- Criar tabela
Criar uma tabela com base em dados de um volume
O Azure Databricks fornece uma interface do usuário para criar uma tabela gerenciada do Catálogo do Unity com base em um arquivo, arquivos ou diretório de arquivos armazenado em um volume do Catálogo do Unity.
Você precisa ter permissões CREATE TABLE
no esquema de destino e ter acesso a um SQL warehouse em execução.
Selecione um ou mais arquivos, ou um diretório. Os arquivos devem ter o mesmo layout de dados.
Clique em Criar tabela. A caixa de diálogo Criar tabela a partir de volumes é exibida.
Use a caixa de diálogo fornecida para revisar uma visualização dos dados e concluir as seguintes configurações:
- Escolher Criar uma nova tabela ou Substituir uma tabela existente
- Selecionar o Catálogo e o Esquema de destino.
- Especificar o Nome da tabela.
- (Opcional) Substituir nomes e tipos de coluna padrão ou escolher excluir colunas.
Observação
Clicar em Atributos avançados para ver opções adicionais.
Clicar em Criar tabela para criar a tabela com os atributos especificados. Após a conclusão, o Gerenciador de Catálogos mostra os detalhes da tabela.
Trabalhar programaticamente com arquivos em volumes no Azure Databricks
É possível ler e gravar arquivos em volumes de todos os idiomas e editores de workspace com suporte usando o seguinte formato:
/Volumes/catalog_name/schema_name/volume_name/path/to/files
Você interage com arquivos em volumes da mesma forma que interage com arquivos em qualquer local de armazenamento de objetos na nuvem. Isso significa que, se você gerencia atualmente códigos que usam URIs de nuvem, caminhos de montagem DBFS ou caminhos raiz do DBFS para interagir com dados ou arquivos, é possível atualizar esses códigos para usar volumes.
Observação
Os volumes são usados somente para dados não tabulares. O Databricks recomenda registar dados tabulares utilizando tabelas do Catálogo do Unity e ler e gravar dados utilizando nomes de tabelas.
Ler e gravar dados em volumes
É possível usar o Apache Spark, o Pandas, o Spark SQL e outras bibliotecas de software de código aberto para ler e gravar arquivos de dados em volumes.
Os seguintes exemplos demonstram a leitura de um arquivo CSV armazenado em um volume:
Python
df = spark.read.format("csv").load("/Volumes/catalog_name/schema_name/volume_name/data.csv")
display(df)
Pandas
import pandas as pd
df = pd.read_csv('/Volumes/catalog_name/schema_name/volume_name/data.csv')
display(df)
SQL
SELECT * FROM csv.`/Volumes/catalog_name/schema_name/volume_name/data.csv`
Comandos utilitários para arquivos em volumes
O Databricks fornece as seguintes ferramentas para gerenciar arquivos em volumes:
- O submódulo
dbutils.fs
nos Utilitários do Databricks. Confira Utilitário do sistema de arquivos (dbutils.fs). - O magic
%fs
, que é um alias paradbutils.fs
. - O magic
%sh
, que permite o uso do comando bash em volumes.
Para obter um exemplo de uso dessas ferramentas para baixar arquivos da Internet, descompactá-los e movê-los do armazenamento de blocos temporário para volumes, confira Baixar dados da Internet.
Também é possível usar pacotes de software de código aberto para comandos de utilitário de arquivo, como o módulo Python os
, conforme mostrado no seguinte exemplo:
import os
os.mkdir('/Volumes/catalog_name/schema_name/volume_name/directory_name')
Gerenciar arquivos em volumes com ferramentas externas
O Databricks fornece um conjunto de ferramentas para gerenciar programaticamente arquivos em volumes de ambiente local ou sistemas integrados.
Comandos SQL para arquivos em volumes
O Azure Databricks dá suporte às seguintes palavras-chave SQL para interagir com arquivos em volumes:
Observação
Os notebooks ou o editor de consultas do Databricks só dão suporte ao comando LIST
.
Os seguintes conectores e drivers do Databricks SQL dão suporte ao gerenciamento de arquivos em volumes:
- O conector do Databricks SQL para Python. Consulte Gerenciar arquivos em volumes do Catálogo do Unity.
- O driver do Databricks SQL para Go. Consulte Gerenciar arquivos em volumes do Catálogo do Unity.
- O driver do Databricks SQL para Node.js. Consulte Gerenciar arquivos em volumes do Catálogo do Unity.
- O driver JDBC do Databricks. Consulte Gerenciar arquivos em volumes do Catálogo do Unity com o driver JDBC do Databricks.
- O driver ODBC do Databricks. Consulte Gerenciar arquivos em volumes do Catálogo do Unity com o driver ODBC do Databricks.
Gerenciar arquivos em volumes com a CLI do Databricks
Use os subcomandos em databricks fs
. Confira Grupo de comandos fs.
Observação
A CLI do Databricks exige que o esquema dbfs:/
preceda todos os caminhos de volumes. Por exemplo, dbfs:/Volumes/catalog_name/schema_name/volume_name/path/to/data
.
Gerenciar arquivos em volumes com SDKs
Os seguintes SDKs dão suporte ao gerenciamento de arquivos em volumes:
- O SDK do Databricks para Python. Use os métodos disponíveis em WorkspaceClient.files. Por exemplo, consulte Gerenciar arquivos em volumes do Catálogo do Unity.
- O SDK do Databricks para Java. Use os métodos disponíveis em WorkspaceClient.files. Por exemplo, consulte Gerenciar arquivos em volumes do Catálogo do Unity.
- O SDK do Databricks para Go. Use os métodos disponíveis em WorkspaceClient.files. Por exemplo, consulte Gerenciar arquivos em volumes do Catálogo do Unity.
Gerenciar arquivos em volumes com a API REST
Use a API de Arquivos para gerenciar arquivos em volumes.
Exemplos de API REST para arquivos em volumes
Os exemplos a seguir usam curl
e a API REST do Databricks para executar tarefas de gerenciamento de arquivos em volumes.
O exemplo a seguir cria uma pasta vazia chamada my-folder
no volume especificado.
curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
O exemplo a seguir cria um arquivo chamado data.csv
com os dados especificados no caminho especificado no volume.
curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv?overwrite=true" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--header "Content-Type: application/octet-stream" \
--data-binary $'id,Text\n1,Hello World!'
O exemplo a seguir lista o conteúdo de um volume no caminho especificado. Este exemplo usa jq para formatar o JSON do corpo de resposta a fim de facilitar a leitura.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .
O exemplo a seguir lista o conteúdo de uma pasta em um volume no caminho especificado. Este exemplo usa jq para formatar o JSON do corpo de resposta a fim de facilitar a leitura.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .
O exemplo a seguir imprime o conteúdo de um arquivo no caminho especificado em um volume.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
O exemplo a seguir exclui um arquivo no caminho especificado de um volume.
curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
O exemplo a seguir exclui uma pasta do volume especificado.
curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"