6 puan yazan abcdkh1209 2026-02-26 | 1 yorum | WhatsApp'ta paylaş

Şirkette tek geliştirici olarak birden fazla sunucu/hizmeti yönetiyorum ve zaman zaman "Geçen ayın sonunda bu veri nasıldı?" gibi sorular alıyorum.
Her seferinde pg_dump yedeğini bulup geçici bir DB ayağa kaldırmak, geri yüklemek, sorgu çalıştırmak ve sonra temizlemek zorunda kalmak çok uğraştırıcı olduğu için bunu kendim geliştirdim.
Snaplake, DB tablolarını düzenli olarak Parquet dosyaları olarak snapshot alan ve yedek geri yükleme olmadan DuckDB ile doğrudan SQL sorgulaması yapabilen self-hosted bir araçtır.

Başlıca özellikler

  • Snapshot alma — PostgreSQL ve MySQL tablolarını Apache Parquet dosyaları olarak kaydeder. Cron tabanlı otomatik snapshot ve saklama politikalarını (günlük/aylık) destekler
  • SQL sorguları — DuckDB tabanlı olarak herhangi bir zamandaki snapshot üzerinde doğrudan SQL sorgulaması yapılabilir. Tablo join, aggregation ve CSV/JSON dışa aktarma mümkündür
  • Snapshot karşılaştırma — İki farklı zamandaki snapshot'ı yan yana koyup satır bazlı diff sunar. Eklenen/silinen/değiştirilen satırları renklerle ayırır
  • Esnek depolama — Yerel dosya sistemi veya S3 uyumlu depolama (AWS S3, MinIO vb.)

Teknoloji yığını

  • Backend: Kotlin, Spring Boot 3.4, Java 21
  • Query Engine: DuckDB (Parquet dosyalarını doğrudan sorgular)
  • Frontend: React 19, TypeScript, Vite
  • Metadata depolama: SQLite
  • Kimlik doğrulama: JWT + Argon2

Docker ile tek satırda hemen başlayabilirsiniz.

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

Pahalı veri gözlemlenebilirliği araçlarını kullanması zor olan küçük ekipler veya tek geliştiriciler için faydalı olabilir diye düşünüyorum. Geri bildirimlere açığım!

1 yorum

 
sonic0987 2026-02-27

Basit ama kesinlikle etkili, hoşuma gitti!