Compartilhar via


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:

  1. No workspace do Azure Databricks, clique em Ícone do catálogo Catálogo.
  2. 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:

  1. Selecione um ou mais arquivos.
  2. Clique em Baixar para baixar esses arquivos.

Excluir arquivos de um volume

Para excluir arquivos de um volume, faça o seguinte:

  1. Selecione um ou mais arquivos.
  2. Clique em Excluir.
  3. 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:

  1. Clique em Menu kebab à direita do nome do volume.
  2. Selecione Criar diretório.
  3. Insira um nome de diretório.
  4. Clique em Criar.

Excluir diretórios de um volume

Para excluir diretórios de um volume, faça o seguinte:

  1. Selecione um ou mais diretórios.
  2. Clique em Excluir.
  3. 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 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.

  1. Selecione um ou mais arquivos, ou um diretório. Os arquivos devem ter o mesmo layout de dados.

  2. Clique em Criar tabela. A caixa de diálogo Criar tabela a partir de volumes é exibida.

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

  4. 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:

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:

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:

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