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.
Tipo de
Aplica-se a:
Databricks SQL
Databricks Runtime 18 LTS and above
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 representa uma referência a um arquivo não estruturado e seus metadados. Use-o para gerenciar e processar documentos, imagens e áudio junto com dados estruturados no Unity Catalog.
FILE o tipo é suportado apenas para tabelas Delta Lake.
Observação
Esse FILE tipo não é suportado em notebooks serverless. É suportado em notebooks conectados a armazenados SQL serverless Databricks.
Sintaxe
{ FILE MANAGED | FILE EXTERNAL }
Use FILE MANAGED ou FILE EXTERNAL como tipo de coluna quando você declara uma coluna de tabela com CREATE TABLE. Você não pode declarar uma coluna de tabela como FILE sem especificar um ou MANAGEDEXTERNALoutro.
FILE é permitido apenas como parâmetro ou tipo de retorno em um UDF, procedimento armazenado ou durante o casting.
Para uma comparação de FILE EXTERNAL e FILE MANAGED, incluindo diagramas de arquitetura, veja FILE EXTERNAL e FILE MANAGED.
Campos
Um FILE valor contém os seguintes campos:
| Campo | Tipo | Description |
|---|---|---|
uri |
STRING |
O URI do arquivo. Esse campo não pode ser null. |
offset |
BIGINT |
Um deslocamento para dentro do arquivo, em bytes. |
size |
BIGINT |
O tamanho do arquivo em bytes. |
content_type |
STRING |
O tipo MIME do arquivo, quando conhecido. |
checksum |
STRING |
Um token de integridade para os bytes do arquivo, da forma <algorithm>:<digest>. Para os algoritmos reconhecidos, veja Checksums. |
Limits
- Esse
FILEtipo não garante o pedido. Você não pode usar umaFILEcoluna como coluna de particionamento, coluna de clustering, chaveMAP, chave de junção ou expressão de agrupamento. Para agrupar por um arquivo, agrupe pelo campouriem vez disso.
Literals
Para criar um FILE valor, veja as seguintes funções:
-
to_filefunção cria umaFILEreferência a partir de um caminho. -
try_to_filefunção cria umaFILEreferência a partir de um caminho e retornaNULLse o arquivo não existir. -
create_filea função faz upload do conteúdo para um caminho e retorna umaFILEreferência. -
copy_filea função copia um arquivo para um caminho de destino e retorna umaFILEreferência.
Para CAST um VARIANT valor ou STRUCT para FILE:
- A
STRUCTdeve ter exatamente esses campos, com os seguintes nomes e tipos:struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>. - É
VARIANTobrigatório incluir ouricampo. Todos os outros campos são opcionais, e quaisquer teclas adicionais são ignoradas.
Cast para FILE, não para FILE EXTERNAL ou FILE MANAGED. A coluna alvo determina se a referência resultante é externa ou gerenciada. Quando você escreve uma referência externa para uma FILE MANAGED coluna, o Databricks a ingere no armazenamento gerenciado.
Observações
- Como uma coluna de tabela de nível superior,
FILEdeve ser declarado comoFILE MANAGEDouFILE EXTERNAL. UsoFILEem todos os outros casos:- Como um tipo de parâmetro ou retorno em SQL, Python e Scala funções definidas pelo usuário (UDFs) e em procedimentos armazenados em SQL.
- Como o tipo alvo de a
CASTde umVARIANTvalor ouSTRUCTde a. - Aninhado dentro de um
STRUCT, umARRAY, o valor de umMAP, ou umVARIANT. Apenas arquivos externos são suportados dentro de umVARIANTarquivo .
- Para ler metadados de arquivos, use os
uricampos ,offset,size,content_type, echecksumcom notação pontual,file_column.uripor exemplo. - Para extrair conteúdo estruturado de um arquivo, passe um
FILEvalor para aai_parse_documentfunção de função.
Examples
Para declarar uma tabela com uma coluna externa FILE :
CREATE TABLE attachments (id BIGINT, attachment FILE EXTERNAL);
Para preenchê-lo a partir de arquivos que já existem em um volume:
INSERT INTO attachments
SELECT row_number() OVER (ORDER BY file.uri), file
FROM read_files('/Volumes/my_catalog/my_schema/my_volume/', format => 'file');
Para ler metadados de arquivos usando notação ponto:
SELECT attachment.uri, attachment.size, attachment.checksum
FROM attachments;
Para construir um FILE valor a partir de um struct:
SELECT named_struct(
'uri', '/Volumes/my_catalog/my_schema/my_volume/report.pdf',
'offset', null,
'size', CAST(19494 AS BIGINT),
'content_type', 'application/pdf',
'checksum', 'ETAG:v1')::FILE;