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 |
---|---|
Gerenciamento interativo de arquivos por meio do site Databricks workspace | |
Ler e gravar arquivos usando o Apache Spark, Pandas ou SQL | |
Arquivar operações usando | |
Operações de arquivo usando as palavras-chave SQL ( | |
comando-line operações usando | |
Operações de arquivo usando Python, Java, ou Go SDKs | |
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:
- Em seu site Databricks workspace, clique em
Catalog .
- 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 alvoUSE SCHEMA
no esquema principalUSE CATALOG
no catálogo principal
Para obter detalhes, consulte Privilégios e objetos protegíveis do Unity Catalog.
upload dos passos
- No Catalog Explorer, clique em Add data > upload to volume .
- Clique em Procurar ou solte arquivos na zona de entrega.
- 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.
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:
-
Crie uma tabela gerenciar Unity Catalog a partir dos arquivos. Consulte Criar uma tabela a partir de dados em um volume.
-
Use os arquivos em cargas de trabalho de ML e ciência de dados
-
Configure cluster biblioteca, biblioteca com escopo de notebook ou dependências de trabalho usando os arquivos de upload
-
Ingerir dados para o pipeline de engenharia usando Auto Loader ou COPY INTO
-
Processar arquivos com as funções do siteAI, como
ai_parse_document
-
Configurar acionadores de chegada de arquivos no Job
-
Fazer upload de documentos para uso com o AgentBricks (por exemplo, cenários de assistente de conhecimento)
baixar arquivos de um volume
Para fazer download de arquivos de um volume, faça o seguinte:
- Selecione um ou mais arquivos.
- Clique em download para acessar download 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 exibida.
Crie um diretório em branco
Para criar um novo diretório em um volume, faça o seguinte:
- Na visão geral do volume tab, clique em Create directory (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 exibida.
Tarefa de gerenciamento de arquivos da interface do usuário para volumes
Clique no 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.
-
Selecione um ou mais arquivos ou um diretório. Os arquivos devem ter a mesma disposição 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 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.
-
Clique em Atributos avançados para ver opções adicionais.
- 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.
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
- Pandas
- SQL
df = spark.read.format("csv").load("/Volumes/catalog_name/schema_name/volume_name/data.csv")
display(df)
import pandas as pd
df = pd.read_csv('/Volumes/catalog_name/schema_name/volume_name/data.csv')
display(df)
SELECT * FROM csv.`/Volumes/catalog_name/schema_name/volume_name/data.csv`
utilidades comando para arquivos em volumes
O Databricks fornece as seguintes ferramentas para gerenciar arquivos em volumes:
- O submódulo
dbutils.fs
em Databricks utilidades. Consulte Utilidades do sistema de arquivos (dbutils.fs). - A magia
%fs
, que é um alias paradbutils.fs
. - A mágica
%sh
, que permite o comando bash 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:
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:
- Databricks SQL Connector for Python
- Databricks SQL Driver for Go
- Databricks SQL Driver for Node.js
- Driver JDBC da Databricks
- Driver ODBC da Databricks
Gerenciar arquivos em volumes com o site Databricks CLI
Use os subcomandos em databricks fs
. Consulte fs
comando group.
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:
- O SDK da Databricks para Python. Use os métodos disponíveis em WorkspaceClient.files. Para obter exemplos, consulte gerenciar arquivos em Unity Catalog volumes.
- O SDK da Databricks para Java. Use os métodos disponíveis em WorkspaceClient.files. Para obter exemplos, consulte gerenciar arquivos em Unity Catalog volumes.
- O SDK da Databricks para Go. Use os métodos disponíveis em WorkspaceClient.files. Para obter exemplos, consulte gerenciar arquivos em Unity Catalog 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.
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 da resposta para 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 da resposta para 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}"
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:
- Execute as operações em um disco local primeiro
- 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