Tipo FILE

Aplica-se a:assinalado Databricks SQL assinalado 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 FILE tipo não garante a encomenda. Não podes usar uma FILE coluna como coluna de partição, coluna de clustering, MAP chave, chave de junção ou expressão de agrupamento. Para agrupar por um ficheiro, agrupar pelo seu uri campo em vez disso.

Literals

Para criar um FILE valor, veja as seguintes funções:

Para CAST um VARIANT valor ou STRUCT para FILE:

  • A STRUCT deve ter exatamente estes campos, com estes nomes e tipos: struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>.
  • É VARIANT obrigatório incluir o uri campo. 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, FILE deve ser declarado como FILE MANAGED ou FILE EXTERNAL. Utilização FILE em 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 CAST valor de a VARIANT ou STRUCT .
    • Aninhado dentro de um STRUCT, um ARRAY, o valor de um MAP, ou um VARIANT. Apenas ficheiros externos são suportados dentro de um VARIANTarquivo .
  • Para ler metadados de ficheiros, use os uricampos , offset, size, content_type, e checksum com notação de pontos, por file_column.uriexemplo .
  • Para extrair conteúdo estruturado de um ficheiro, passa um FILE valor para a ai_parse_document funçã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;