6 pontos por abcdkh1209 2026-02-26 | 1 comentários | Compartilhar no WhatsApp

Na empresa, como desenvolvedor solo, eu administro vários servidores/serviços e às vezes recebo perguntas como: "No fim do mês passado, como esses dados estavam?"
Toda vez, era trabalhoso demais repetir o processo de procurar um backup pg_dump, subir um banco temporário, restaurar, executar consultas e depois limpar tudo, então acabei criando isso eu mesmo.
O Snaplake é uma ferramenta self-hosted que faz snapshots periódicos de tabelas do banco em arquivos Parquet e permite consultar diretamente com SQL via DuckDB, sem restaurar backups.

Principais recursos

  • Captura de snapshots — salva tabelas do PostgreSQL e MySQL como arquivos Apache Parquet. Suporta snapshots automáticos baseados em Cron e políticas de retenção (diária/mensal)
  • Consultas SQL — com base em DuckDB, permite consultar imediatamente com SQL qualquer snapshot de qualquer momento. Suporta join de tabelas, agregações e exportação em CSV/JSON
  • Comparação de snapshots — coloca snapshots de dois momentos lado a lado e mostra diff por linha. Linhas adicionadas/removidas/alteradas são distinguidas por cores
  • Armazenamento flexível — sistema de arquivos local ou storage compatível com S3 (AWS S3, MinIO etc.)

Stack técnica

  • Backend: Kotlin, Spring Boot 3.4, Java 21
  • Query Engine: DuckDB (consulta direta em arquivos Parquet)
  • Frontend: React 19, TypeScript, Vite
  • Armazenamento de metadados: SQLite
  • Autenticação: JWT + Argon2

Você pode começar imediatamente com uma única linha de Docker.

docker run -d --name snaplake -p 8080:8080 -v snaplake-data:/app/data abcdkh1209/snaplake:latest  

Parece ser útil para equipes pequenas ou desenvolvedores solo que têm dificuldade para adotar ferramentas caras de observabilidade de dados. Feedbacks são bem-vindos!

1 comentários

 
sonic0987 2026-02-27

Simples, mas certeiro. Muito interessante!