6 points par abcdkh1209 2026-02-26 | 1 commentaires | Partager sur WhatsApp

Dans mon entreprise, je gère plusieurs serveurs et services en tant que développeur solo, et on me pose parfois des questions du genre : « À quoi ressemblaient ces données à la fin du mois dernier ? »
À chaque fois, devoir retrouver une sauvegarde pg_dump, lancer une base temporaire, la restaurer, exécuter des requêtes, puis tout nettoyer était tellement fastidieux que j’ai fini par créer mon propre outil.
Snaplake est un outil auto-hébergé qui prend périodiquement des instantanés des tables de base de données sous forme de fichiers Parquet, puis permet de les interroger directement en SQL avec DuckDB, sans restauration de sauvegarde.

Fonctionnalités principales

  • Capture d’instantanés — enregistre les tables PostgreSQL et MySQL au format Apache Parquet. Prend en charge les instantanés automatiques basés sur Cron et les politiques de rétention (quotidienne/mensuelle)
  • Requêtes SQL — permet d’interroger immédiatement en SQL n’importe quel instantané à un moment donné grâce à DuckDB. Jointures de tables, agrégations et export CSV/JSON possibles
  • Comparaison d’instantanés — affiche côte à côte les instantanés de deux moments différents avec un diff ligne par ligne. Les lignes ajoutées, supprimées ou modifiées sont distinguées par couleur
  • Stockage flexible — système de fichiers local ou stockage compatible S3 (AWS S3, MinIO, etc.)

Stack technique

  • Backend: Kotlin, Spring Boot 3.4, Java 21
  • Moteur de requête: DuckDB (requêtes directes sur les fichiers Parquet)
  • Frontend: React 19, TypeScript, Vite
  • Stockage des métadonnées: SQLite
  • Authentification: JWT + Argon2

Vous pouvez démarrer immédiatement avec une seule ligne Docker.

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

Cela semble pouvoir être utile aux petites équipes ou aux développeurs solo qui ont du mal à adopter des outils d’observabilité de données coûteux. Vos retours sont les bienvenus !

1 commentaires

 
sonic0987 2026-02-27

C’est simple, mais efficace. C’est sympa !