Estudo de caso · Engenharia de dados · Finanças
Comparativo financeiro com Delta Lake Time Travel
Desenvolvimento de uma solução no Databricks para comparar os valores financeiros registrados no fechamento mensal com os valores carregados nos dias seguintes, acompanhando as alterações até o próximo fechamento.
Utilizando o versionamento do Delta Lake, a solução recuperava snapshots históricos e os comparava com versões recentes, permitindo identificar alterações nos valores financeiros sem duplicar toda a base de dados.
- Databricks
- Delta Lake
- Time Travel
- PySpark
- SQL
- Databricks Jobs
Como funcionava a solução
Dia do fechamento financeiro
Identificação do snapshot histórico de referência.
Recuperação da versão histórica
Com Delta Lake Time Travel: consulta ao transaction log com
DESCRIBE HISTORYe identificação da versão correspondente ao fechamento.Comparação com as cargas posteriores
Consulta da versão de referência e da versão mais recente da tabela.
Análise das divergências financeiras
Identificação das mudanças nos valores entre o fechamento e as atualizações subsequentes.
A rotina foi pensada para executar diariamente, mantendo a mesma referência de fechamento enquanto as novas cargas financeiras chegavam. No próximo fechamento, uma nova referência poderia ser definida para o ciclo seguinte.
Tecnologias e recursos utilizados
Databricks e Delta Lake
Armazenamento transacional e versionamento das tabelas financeiras.
DESCRIBE HISTORY
Consulta ao histórico de operações, versões e timestamps registrados no Delta Lake.
PySpark e SQL
Identificação das versões, leitura dos snapshots e comparação dos dados.
Databricks Jobs
Parametrização da data de referência e execução automatizada do processo.
Lógica técnica implementada
Um dos pontos centrais foi identificar a versão exata da tabela que representava o fechamento financeiro, em vez de simplesmente comparar os dados de duas datas de calendário. O fluxo envolvia:
Receber uma data de referência, por exemplo,
data_referencia = 2026-03-05.Consultar o histórico da tabela com
DESCRIBE HISTORY.Identificar o timestamp e a versão correspondentes à carga de fechamento.
Recuperar o snapshot histórico com
VERSION AS OF.Comparar esse snapshot com a versão mais recente da tabela.
Disponibilizar os resultados para análise das alterações financeiras.
Principal desafio: preservar o histórico
A solução dependia da disponibilidade das versões antigas do Delta Lake. Por isso, um aspecto importante foi considerar as políticas de retenção e o impacto do comando VACUUM.
O VACUUM remove arquivos de dados antigos que não são mais necessários segundo as regras de retenção. Se os arquivos necessários para um snapshot histórico forem removidos, não será possível recuperar aquela versão apenas porque ela continua aparecendo no histórico transacional.
Por isso, o projeto exigia atenção à retenção dos arquivos e ao intervalo durante o qual os fechamentos precisariam continuar disponíveis para comparação.