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.


ree

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.

ree

Exemplo de arquivo:

ree

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.

ree

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

ree

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

ree

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

ree

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.

ree

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.

ree

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

ree

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.

Comentários


Post: Blog2 Post
bottom of page