Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
Esse recurso está em Beta. Os administradores do workspace podem controlar o acesso a esse recurso na página Visualizações . Consulte Gerenciar visualizações do Azure Databricks.
O FILE tipo armazena uma referência governada a um arquivo não estruturado, com metadados como caminho e tamanho. Use FILE colunas no Unity Catalog para armazenar documentos, imagens e áudio junto com dados estruturados.
Para a referência tipográfica, veja FILE tipo.
O diagrama a seguir mostra uma FILE coluna chamada video que faz referência a clipes de direção ao lado de colunas estruturadas, como rota, descrição da cena e etiqueta de perigo:
Metadados e armazenamento de FILE
Para cada linha, o FILE tipo armazena metadados e um link governado para o arquivo armazenado. Um FILE valor inclui uri, size, content_type, e checksum campos de metadados. Consultas de metadados não exigem leituras completas de arquivos, melhorando o desempenho das consultas.
Você pode passar FILE valores para funções de IA, como ai_parse_document função, e para funções definidas pelo usuário (UDFs).
O diagrama a seguir mostra uma coluna gerenciada FILE de exemplo, contendo metadados de caminho e tamanho e referências aos arquivos em armazenamento:
Por que usar FILE em vez de BINARY ou STRING
A tabela a seguir detalha os desafios ao lidar com arquivos grandes e não estruturados com BINARY ou STRING tipos:
| Tipo de coluna | Description | Diagrama |
|---|---|---|
BINARY |
Materializa o objeto completo a cada leitura, mesmo quando você só precisa de metadados como tamanho ou caminho do arquivo. Isso resulta em cálculos desnecessários e consultas lentas. |
|
STRING |
Armazena um caminho de arquivo sem metadados, como informações de tamanho ou versão, e sem ligação governada entre a tabela e o arquivo. Se outra carga de trabalho remove o arquivo, a tabela tem informações obsoletas. Se você remover uma linha de tabela, o arquivo referenciado permanece armazenado até que você o remova manualmente. |
|
Somas de verificação
O checksum campo é um token de integridade para os bytes do arquivo, da forma <prefix>:<digest>. Use para comparar arquivos ou verificar se um arquivo não mudou. Leitores ignoram uma soma de verificação com prefixo não reconhecido.
Nem sempre há uma soma de verificação disponível.
to_file função, create_file função e copy_file função preenchem a soma de verificação quando o armazenamento de objetos retorna um ETAG.
list_files Função de tabela e read_files função de tabela não preenchem a soma de verificação.
O checksum campo usa um dos seguintes prefixos:
| prefixo | Codificação digest | Description |
|---|---|---|
ETAG |
Opaque | A eTag do object store para todo o arquivo. Fornecido literalmente pela loja, usado apenas para comparação de igualdade, e não recomputável. |
MD5 |
Hexágono minúsculo | Um resumo MD5 (RFC 1321), 32 caracteres hexagonais. |
CRC32 |
Hexágono minúsculo | Um checksum CRC32 (RFC 2083), 8 caracteres hexadecimais. |
CRC32C |
Hexágono minúsculo | Um checksum CRC32C (RFC 3385), 8 caracteres hexadecimais. |
SHA-256 |
Hexágono minúsculo | Um digest SHA-256 (RFC 6234), 64 caracteres hexadecimais. |
Por exemplo, um checksum MD5 se parece com MD5:d41d8cd98f00b204e9800998ecf8427e, e um eTag de armazenamento de objetos parece ETAG:"686897696a7c876b7e", incluindo as aspas duplas ao redor retornadas pelo armazenamento de objetos.
Selecione entre FILE e BINARY
A tabela a seguir compara as opções para trabalhar com arquivos não estruturados:
| Tipo de coluna | Values | Caso de uso |
|---|---|---|
FILE |
Uma referência governada a um arquivo, mais metadados (uri, size, content_type, checksum). |
Use para gerenciar e processar arquivos não estruturados junto com dados estruturados, além de passar arquivos para funções integradas e de IA. |
BINARY |
Os bytes brutos de um arquivo, em linha em uma coluna. | Use para objetos pequenos (até 64 KB por padrão) armazenados diretamente no arquivo de dados. Isso é útil quando você precisa de baixa sobrecarga de metadados e gerenciamento de arquivos simplificado. Por exemplo, use isso para armazenar miniaturas alinhadas com os dados da linha. |
FILE EXTERNAL e FILE MANAGED
O FILE tipo suporta duas abordagens para gerenciar os arquivos:
-
FILE EXTERNALcolunas referenciam arquivos existentes em um volume do Catálogo Unity. Os arquivos são protegidos pelas permissões de volume do Unity Catalog, mas seu ciclo de vida não é gerenciado pelo Unity Catalog, e eles não são copiados. Use essa abordagem quando precisar referenciar arquivos sem mover dados ou interromper ferramentas que leem de um volume existente. -
FILE MANAGEDColunas copiam arquivos para armazenamento gerenciado. Defina adatabricks.filespace-previewpropriedade da tabela para um caminho de volume gerenciado para o Unity Catalog usar como armazenamento. Use essa abordagem quando quiser permissões simplificadas que sejam gerenciadas pela tabela para cargas de trabalho que acessam arquivos apenas por meio de uma tabela, como treinamento de ML ou geração aumentada por recuperação (RAG). Para padrões de ingestão, veja arquivos Ingest como o tipo FILE.
Para consultas, não há diferença entre arquivos externos e gerenciados.
O diagrama a seguir mostra como o FILE tipo conecta seu código a arquivos em armazenamento de objetos na nuvem:
FILE EXTERNAL
FILE EXTERNAL colunas são referências a arquivos que já existem em um volume do Unity Catalog.
Se você tiver os privilégios necessários no volume, pode atualizar ou excluir esses arquivos. O Databricks recomenda que você use arquivos imutáveis. Uma concessão de tabela expõe os metadados do arquivo, mas ler os bytes do arquivo também requer o READ VOLUME privilégio sobre o volume subjacente.
Um arquivo externo mapeia cada linha de tabela para um arquivo em seu caminho existente em um volume do Unity Catalog:
FILE EXTERNAL Exemplos
Para criar uma tabela com uma FILE EXTERNAL coluna:
CREATE TABLE documents (id BIGINT, file FILE EXTERNAL);
Para adicionar uma FILE EXTERNAL coluna a uma tabela existente:
ALTER TABLE documents ADD COLUMN file FILE EXTERNAL;
Para criar e preencher uma tabela a partir de um volume, atribuindo IDs únicos a cada arquivo:
CREATE TABLE documents AS
SELECT monotonically_increasing_id() AS id, file
FROM list_files('/Volumes/samples/sec/contracts/');
FILE MANAGED
FILE MANAGED colunas armazenam cópias de arquivos em um FileSpace, um volume do Unity Catalog que você declara para a tabela usar como armazenamento gerenciado. Seu ciclo de vida está atrelado às tabelas que os referenciam.
Os seguintes comportamentos se aplicam a FILE MANAGED:
- Declarar o
FileSpacerequer adatabricks.filespace-previewpropriedade da tabela. - Ler ou escrever um arquivo gerenciado requer acesso tanto à tabela quanto ao volume que suporta o
FileSpacearquivo . - Coleta automática de lixo de arquivos sem referência não é suportada.
Arquivos não estruturados armazenados em fontes externas como SharePoint, Google Drive, OneDrive e SFTP devem ser ingeridos como arquivos gerenciados antes que você possa usá-los com funções como ai_parse_document funções e funções definidas pelo usuário (UDFs). Para padrões de ingestão, veja arquivos Ingest como o tipo FILE.
Para usar arquivos gerenciados, crie uma tabela com uma FILE MANAGED coluna e declare um volume como , FileSpace definindo a databricks.filespace-preview propriedade da tabela como um caminho de volume:
'databricks.filespace-preview' = '/Volumes/<catalog>/<schema>/<volume_name>/<optional_path>'
Para exemplos completos, veja os exemplos a seguir FILE MANAGED . O ciclo de vida dos arquivos em um FileSpace está atrelado às linhas que os referenciam. Deletar essas linhas torna os arquivos elegíveis para coleta de lixo.
FILE MANAGED Exemplos
Para criar uma tabela com uma FILE MANAGED coluna:
CREATE TABLE reports (id BIGINT, file FILE MANAGED)
TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');
Para adicionar uma FILE MANAGED coluna a uma tabela existente, defina a databricks.filespace-preview propriedade tabela antes de adicionar a coluna, conforme no código a seguir:
ALTER TABLE reports SET TBLPROPERTIES ('databricks.filespace-preview' = '/Volumes/my_catalog/my_schema/my_managed_volume/');
ALTER TABLE reports ADD COLUMN attachment FILE MANAGED;
Adicionar uma FILE MANAGED coluna a uma tabela que não FileSpace tem falhas.
Governança e comparação do ciclo de vida
A tabela a seguir compara como FILE EXTERNAL e FILE MANAGED governam o acesso a arquivos e lidam com o ciclo de vida do arquivo:
| Tipo de Coluna | FILE EXTERNAL |
FILE MANAGED |
|---|---|---|
| Controle de acesso a arquivos | Regido por permissões de volume, como READ VOLUME. |
Regido por permissões de tabela e volume, como SELECT na tabela e READ VOLUME no volume. |
| Ciclo de vida e coleta de lixo | Você gerencia os arquivos sozinho. Deletar uma linha de tabela não afeta o arquivo subjacente no volume. | Os arquivos estão vinculados às linhas que os referenciam. Deletar essas linhas torna os arquivos elegíveis para coleta de lixo. Coleta automática de lixo não é suportada. |
Casos de uso do tipo FILE
Tanto os tipos externos quanto os gerenciados FILE abordam os seguintes desafios para casos de uso usando dados não estruturados:
| Desafio | Tipo suportado FILE |
Benefits |
|---|---|---|
Arquivos grandes demais para serem armazenados em linha como BINARY |
FILE MANAGED ou FILE EXTERNAL |
Uma FILE coluna armazena uma referência, então um arquivo é lido somente quando uma função de IA ou UDF o processa. Isso evita que objetos grandes se materializem em linha na mesa. |
| Ciclo de vida e governança desconectados entre o sistema de arquivos e a tabela | FILE MANAGED |
O Azure Databricks vincula o ciclo de vida de cada arquivo à tabela, então excluir linhas torna os arquivos elegíveis para limpeza em vez de deixar arquivos órfãos no armazenamento. |
| Cargas de trabalho simultâneas que exigem que os arquivos permaneçam no mesmo local | FILE EXTERNAL |
Os arquivos permanecem em seus caminhos de volume existentes, sem ser afetados pelo ciclo de vida da tabela, então outras ferramentas que leem os mesmos arquivos não são interrompidas. |