Pular para o conteúdo principal

Trabalhar com arquivos em volumes do Unity Catalog

Esta página contém exemplos de gerenciamento de arquivos em volumes Unity Catalog para várias interfaces de usuário, ferramentas, biblioteca e idiomas.

Databricks recomenda o uso de volumes para gerenciar todo o acesso a dados não tabulares no armazenamento de objetos cloud e para armazenar arquivos de suporte à carga de trabalho. Os exemplos 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 AI
  • Artefatos CSV ou JSON escritos pela Databricks para integração com sistemas externos
  • biblioteca, script de inicialização e artefatos de compilação

Os volumes fornecem caminhos no estilo Portable Operating System Interface (POSIX) que funcionam com ferramentas e estruturas dependentes do sistema de arquivos no espaço do usuário (FUSE). Isso os torna ideais para machine learning frameworks e código aberto Python módulos que exigem acesso no estilo POSIX. Para obter informações detalhadas sobre esquemas de URI, caminhos POSIX e como eles se relacionam com volumes, consulte Preciso fornecer um esquema de URI para acessar dados?

Métodos para gerenciar arquivos em volumes

Para obter exemplos rápidos de cada método, consulte Trabalhar com arquivos nos volumes do Unity Catalog.

Interface

Descrição

Interface do usuário do Catalo

Gerenciamento interativo de arquivos por meio do site Databricks workspace

Acesso programático

Ler e gravar arquivos usando o Apache Spark, Pandas ou SQL

Utilidades do Databricks

Arquivar operações usando dbutils.fs ou magic comando (%fs, %sh) no Notebook

SQL comando

Operações de arquivo usando as palavras-chave SQL (LIST, PUT INTO, GET, REMOVE) e conectores

CLI do Databricks

comando-line operações usando databricks fs comando

SDKs

Operações de arquivo usando Python, Java, ou Go SDKs

API REST

Acesso direto à API para integrações personalizadas

Use o Catalog Explorer

O Catalog Explorer tem opções para tarefas comuns de gerenciamento de arquivos para arquivos armazenados em volumes do Unity Catalog.

Para interagir com arquivos em um volume, faça o seguinte:

  1. Em seu site Databricks workspace, clique em Ícone de dados. Catalog .
  2. Pesquise ou procure o volume com o qual você deseja trabalhar e selecione-o.

Para obter detalhes sobre a criação e o gerenciamento de volumes, consulte Criar e gerenciar volumes do Unity Catalog.

Fazer upload de arquivos para um volume

O senhor pode fazer upload de arquivos de qualquer formato - estruturados, semiestruturados ou não estruturados - para um volume. Quando o senhor faz upload pela interface do usuário, há um limite de tamanho de arquivo de 5 GB. No entanto, os próprios volumes suportam arquivos até o tamanho máximo suportado pelo armazenamento cloud subjacente. O senhor pode gravar arquivos muito grandes usando o Spark e fazer upload de arquivos grandes usando a API ou os SDKs do Databricks.

Requisitos

Antes de fazer upload para um volume, verifique se o senhor tem o seguinte:

  • Um workspace com Unity Catalog ativado
  • WRITE VOLUME no volume alvo
  • USE SCHEMA no esquema principal
  • USE CATALOG no catálogo principal

Para obter detalhes, consulte Privilégios e objetos protegíveis do Unity Catalog.

upload dos passos

  1. No Catalog Explorer, clique em Add data > upload to volume .
  2. Clique em Procurar ou solte arquivos na zona de entrega.
  3. Selecione um volume ou diretório ou cole um caminho de volume.
    • Se não houver volume no esquema de destino, crie um.
    • Você também pode criar um novo diretório dentro do volume de destino.

Diálogo para fazer upload de um arquivo para um volume

O senhor também pode acessar a UI de upload das seguintes maneiras:

  • Na barra lateral: New > Add data > upload files to volume
  • De um notebook: Arquivo > upload de arquivos para o volume

Next os passos

Depois de fazer o upload para um volume, o senhor pode fazer o seguinte:

baixar arquivos de um volume

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

  1. Selecione um ou mais arquivos.
  2. Clique em download para acessar download 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 exibida.

Crie um diretório em branco

Para criar um novo diretório em um volume, faça o seguinte:

  1. Na visão geral do volume tab, clique em Create directory (Criar diretório ).
  2. Insira um nome de diretório.
  3. 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 exibida.

Tarefa de gerenciamento de arquivos da interface do usuário para volumes

Clique no menu kebab Ícone do menu Kebab. ao lado do nome do arquivo para realizar as seguintes ações:

  • Copiar caminho
  • Fazer download do arquivo
  • Excluir arquivo
  • CREATE TABLE

Crie uma tabela a partir de dados em um volume

Databricks fornece uma interface de usuário para criar uma tabela gerenciar Unity Catalog a partir de um arquivo, arquivos ou diretório de arquivos armazenados em um volume Unity Catalog.

Você deve ter CREATE TABLE permissões 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 a mesma disposição 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 prévia dos dados e concluir as seguintes configurações:

    • Escolha Criar nova tabela ou Substituir tabela existente

    • Selecione o catálogo e o esquema de destino.

    • Especifique o nome da tabela .

    • (Opcional) Substitua os nomes e tipos de coluna do site default ou opte por excluir colunas.

nota

Clique em Atributos avançados para ver opções adicionais.

  1. Clique em Criar tabela para criar a tabela com os atributos especificados. Após a conclusão, o Catalog Explorer exibe os detalhes da tabela.

Trabalhe programaticamente com arquivos em volumes

Leia e grave arquivos em volumes de todos os idiomas compatíveis e editores do site workspace usando o seguinte formato:

/Volumes/catalog_name/schema_name/volume_name/path/to/files

O senhor interage com arquivos em volumes da mesma forma que interage com arquivos em qualquer local de armazenamento de objetos do site cloud. Isso significa que, se o senhor atualmente gerencia código que usa cloud URIs, DBFS mount paths ou DBFS root paths para interagir com dados ou arquivos, pode atualizar seu código para usar volumes.

nota

Os volumes são usados somente para dados não tabulares. Databricks recomenda o registro tabular uso de dados Unity Catalog tables and then reading and writing uso de dados table names.

Leia e grave dados em volumes

Use Apache Spark, Pandas, Spark SQL e outras bibliotecas OSS para ler e gravar arquivos de dados em volumes.

Os exemplos a seguir 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)

utilidades comando para arquivos em volumes

O Databricks fornece as seguintes ferramentas para gerenciar arquivos em volumes:

Para obter um exemplo de uso dessas ferramentas para download arquivos da Internet, descompactar arquivos e mover arquivos do armazenamento em bloco efêmero para volumes, consulte download de dados da Internet.

O senhor também pode usar o pacote OSS para o comando de utilidades de arquivo, como o módulo Python os , conforme mostrado no exemplo a seguir:

Python
import os

os.mkdir('/Volumes/catalog_name/schema_name/volume_name/directory_name')

gerenciar arquivos em volumes a partir de ferramentas externas

A Databricks oferece um conjunto de ferramentas para gerenciar arquivos em volumes de forma programática a partir de seu ambiente local ou de sistemas integrados.

SQL comando para arquivos em volumes

O Databricks suporta as seguintes palavras-chave SQL para interagir com arquivos em volumes:

No Databricks Notebook e no editor de consultas SQL, somente o comando LIST é compatível. Os outros comandos SQL (PUT INTO, GET e REMOVE) estão disponíveis por meio dos seguintes conectores e drivers Databricks SQL, que oferecem suporte ao gerenciamento de arquivos em volumes:

Gerenciar arquivos em volumes com o site Databricks CLI

Use os subcomandos em databricks fs. Consulte fs comando group.

nota

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 oferecem suporte ao gerenciamento de arquivos em volumes:

Gerenciar arquivos em volumes com o site REST API

Use a API Files para gerenciar arquivos em volumes.

Exemplos de API REST para arquivos em volumes

Os exemplos a seguir usam o site curl e o site Databricks REST API para executar tarefas de gerenciamento de arquivos em volumes.

O exemplo a seguir cria uma pasta vazia chamada my-folder no volume especificado.

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

Bash
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 da resposta para facilitar a leitura.

Bash
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 da resposta para facilitar a leitura.

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

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

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

Bash
curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

Limitações do trabalho com arquivos em volumes

Antes de trabalhar com arquivos em volumes, considere as seguintes limitações:

  • Não há suporte para gravações com acréscimo direto ou não sequenciais (aleatórias). Isso afeta operações como a gravação de arquivos Zip e Excel. Para essas cargas de trabalho:

    1. Execute as operações em um disco local primeiro
    2. Copie os resultados para o volume

    Por exemplo:

    Python
    # python
    import xlsxwriter
    from shutil import copyfile

    workbook = xlsxwriter.Workbook('/local_disk0/tmp/excel.xlsx')
    worksheet = workbook.add_worksheet()
    worksheet.write(0, 0, "Key")
    worksheet.write(0, 1, "Value")
    workbook.close()

    copyfile('/local_disk0/tmp/excel.xlsx', '/Volumes/my_catalog/my_schema/my_volume/excel.xlsx')
  • Arquivos esparsos não são suportados. Para copiar arquivos esparsos, use cp --sparse=never:

    Bash
    $ cp sparse.file /Volumes/my_catalog/my_schema/my_volume/sparse.file
    error writing '/dbfs/sparse.file': Operation not supported
    $ cp --sparse=never sparse.file /Volumes/my_catalog/my_schema/my_volume/sparse.file