top of page

Databricks - Como identificar de qual arquivo veio um determinado registro?

Na dica de hoje vamos ver como identificar de qual arquivo um determinado registro faz parte, é comum no dia a dia surgir a necessidade de encontrar qual o arquivo origem de um registro, às vezes para troubleshooting de erros ou mesmo para auditoria.



Vamos criar nosso cenário fake.

Algumas linhas de código geradas pelo ChatGPT (Para alguma coisa ele é útil sim rs), esse código vai gerar 10 arquivos Json com dados fake, irei simular como se esses arquivos chegassem na nossa camada Landing.


Exemplo de arquivo:


Copiei eles para minha camada "Landing" ou qualquer outro nome que você quiser chamar, mas a ideia é simular arquivos sendo copiados de algum lugar para sua camada de pouso inicial, no formato cru do dado, nesse caso em Json. Nesse print abaixo os dados já estão no meu Azure Storage Account em uma pasta chamada landing.


Lendo os arquivos JSON na camada Landing para copiar para camada Bronze em Delta, nada de novo por aqui.


Salvando meus dados em uma tabela Delta, até o momento fizemos o seguinte fluxo:

  1. Dados copiados para Landing no formato original em Json

  2. Dados copiados para Bronze no formato Delta


Agora vem minha pergunta, como saber de qual arquivo cada pessoa veio?


O segredo está na função input_file_name(), essa função pode ser utilizada tanto com SQL ou com Python, ela retorna o nome do arquivo lido, no exemplo abaixo estou usando a função no select da minha tabela Bronze no formato Delta, veja que por de trás dos panos é tudo parquet.


Mas é isso mesmo que a gente queria? Saber o nome do arquivo dentro da tabela Delta?

Não né, queremos saber o nome do arquivo origem, então precisamos já ler ele da camada Landing.

Repare na linha 3, adicionamos um trecho para pegar o nome do arquivo Json.


Agora sim, sabemos exatamente de qual arquivo veio cada pessoa.


Detalhe, não funciona com Unity Catalog essa função, triste realidade :(.


Link para o Github:


Por hoje é isso pessoal, espero que tenha agregado.


Fique bem e até a próxima.

216 visualizações0 comentário

Comments


Post: Blog2 Post
bottom of page