top of page

Databricks - File Metadata column - Você usa?

Fala dataholics, na dica de hoje falaremos sobre File Metadata column, ou em português coluna de metadados dos arquivos, esse recurso é extremamente útil e quando bem empregado pode ajudar muito em casos de Troubleshooting e auditoria.


Em um post anterior falei sobre a função input_file_name():

Essa função está marcada como Deprecated, ou seja, em um futuro ela poderá deixar de existir e a recomendação é utilizar o File Metadata column.



Vamos montar um lab parecido com o desse último post.


Carregando 10 arquivos Json para nossa camada RAW, eles foram gerados com dados Fake, abaixo o script de geração que esta no meu Github.

Arquivos gerados:

Visualizar os arquivos usando a função LIST em sql.

Bom, agora carregaremos nossos dados para um Dataframe e depois gravaremos em uma tabela Delta:

Aqui volto a pergunta: "Como saber de qual arquivo cada pessoa veio?"

Parece irrelevante no primeiro momento, embora, é muito útil para casos de investigação de problemas ou auditoria, seja problema de replicação de dados, diferenças de valores e por aí vai, exemplo a ordem de chegada dos arquivos no Lake pode influenciar bastante, logo tendo esse metadado salvo na sua tabela pode ajudar bastante.


No post anterior a resposta foi usar a função Input_File_Name(), mas como já mencionei ela foi depreciada e o ideal agora é usarmos File Metadata column.


Em Python ficaria assim:

Acessando todos os metadados através da coluna _metadata.


Temos informações bem relevantes nessa coluna, como:

  • File path

  • File name

  • File size

  • File Modification time


Como essa é uma coluna que poderá receber novos atributos, para que não tenha problema nos seus pipelines o recomendado é você explicitar as colunas desejadas assim:

Agora podemos rastrear de qual arquivo um determinado registro veio.


Também podemos fazer o mesmo com SQL.



Ao contrário da função Input_File_Name() o File Metadata column é totalmente suportado dentro do Unity Catalog.


Não é necessariamente uma recomendação ou boa prática, mas ter esses metadados pelo menos na sua camada inicial, seja bronze, raw ou nome que você desejar, pode ajudar e muito em problemas futuro, claro que deve considerar que é mais espaço em uso no Storage.


Espero que ajude.

Fique bem e até a próxima.


Referencias:




138 visualizações0 comentário

Posts recentes

Ver tudo
Post: Blog2 Post
bottom of page