Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Tipo
Aplica-se a:
Databricks SQL
sim Databricks Runtime 18 LTS e superiores
Importante
Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Visualizações . Ver Gerir as pré-visualizações de Azure Databricks.
O FILE tipo representa uma referência a um ficheiro não estruturado e aos seus metadados. Use-o para gerir e processar documentos, imagens e áudio juntamente com dados estruturados no Unity Catalog.
FILE o tipo é suportado apenas para tabelas Delta Lake.
Observação
Este FILE tipo não é suportado em notebooks serverless. É suportado em notebooks ligados a databricks SQL warehouses serverless.
Syntax
{ FILE MANAGED | FILE EXTERNAL }
Use FILE MANAGED ou FILE EXTERNAL como tipo de coluna quando declara uma coluna de tabela com CREATE TABLE. Não podes declarar uma coluna de tabela como FILE sem especificar um ou MANAGEDEXTERNALoutro .
FILE é permitido apenas como parâmetro ou tipo de retorno numa 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 ficheiro. Este campo não pode ser null. |
offset |
BIGINT |
Um deslocamento para o ficheiro, em bytes. |
size |
BIGINT |
O tamanho do arquivo em bytes. |
content_type |
STRING |
O tipo MIME do ficheiro, quando conhecido. |
checksum |
STRING |
Um token de integridade para os bytes do ficheiro, da forma <algorithm>:<digest>. Para os algoritmos reconhecidos, veja Somas de Controlo. |
Limits
- O
FILEtipo não garante a encomenda. Não podes usar umaFILEcoluna como coluna de partição, coluna de clustering,MAPchave, chave de junção ou expressão de agrupamento. Para agrupar por um ficheiro, agrupar pelo seuuricampo em 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_filea função cria umaFILEreferência a partir de um caminho, e devolveNULLse o ficheiro não existir. -
create_filefunção carrega conteúdo para um caminho e retorna umaFILEreferência. -
copy_filea função copia um ficheiro para um caminho de destino e devolve umaFILEreferência.
Para CAST um VARIANT valor ou STRUCT para FILE:
- A
STRUCTdeve ter exatamente estes campos, com estes 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 chaves 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 gerida. Quando escreve uma referência externa para uma FILE MANAGED coluna, o Databricks ingere-a no armazenamento gerido.
Notes
- Como coluna de tabela de topo,
FILEdeve ser declarado comoFILE MANAGEDouFILE EXTERNAL. UtilizaçãoFILEem todos os outros casos:- Como parâmetro ou tipo de retorno em SQL, Python e Scala funções definidas pelo utilizador (UDFs) e em procedimentos armazenados SQL.
- Como o tipo alvo de um
CASTvalor de aVARIANTouSTRUCT. - Aninhado dentro de um
STRUCT, umARRAY, o valor de umMAP, ou umVARIANT. Apenas ficheiros externos são suportados dentro de umVARIANTarquivo .
- Para ler metadados de ficheiros, use os
uricampos ,offset,size,content_type, echecksumcom notação de pontos, porfile_column.uriexemplo . - Para extrair conteúdo estruturado de um ficheiro, passa 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 preencher a partir de ficheiros que já existem num 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 ficheiros 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;