6 poin oleh abcdkh1209 2026-02-26 | 1 komentar | Bagikan ke WhatsApp

Di perusahaan, saya mengelola beberapa server/layanan sebagai developer solo, dan kadang saya mendapat pertanyaan seperti, "Bagaimana kondisi data ini pada akhir bulan lalu?"
Setiap kali itu terjadi, saya harus mencari backup pg_dump, menyalakan DB sementara, memulihkannya, menjalankan query, lalu membereskannya lagi—proses berulang ini terlalu merepotkan, jadi saya membuatnya sendiri.
Snaplake adalah alat self-hosted yang secara berkala mengambil snapshot tabel DB ke file Parquet, lalu memungkinkan query SQL langsung dengan DuckDB tanpa perlu memulihkan backup.

Fitur utama

  • Pengambilan snapshot — Menyimpan tabel PostgreSQL dan MySQL sebagai file Apache Parquet. Mendukung snapshot otomatis berbasis Cron dan kebijakan retensi (harian/bulanan)
  • Query SQL — Berbasis DuckDB, sehingga snapshot dari titik waktu mana pun bisa langsung di-query dengan SQL. Mendukung join tabel, agregasi, dan ekspor CSV/JSON
  • Perbandingan snapshot — Menempatkan snapshot dari dua titik waktu berdampingan dan menampilkan diff per baris. Baris yang ditambahkan/dihapus/diubah dibedakan dengan warna
  • Penyimpanan fleksibel — Filesystem lokal atau penyimpanan kompatibel S3 (AWS S3, MinIO, dll.)

Tech stack

  • Backend: Kotlin, Spring Boot 3.4, Java 21
  • Query Engine: DuckDB (query langsung file Parquet)
  • Frontend: React 19, TypeScript, Vite
  • Penyimpanan metadata: SQLite
  • Autentikasi: JWT + Argon2

Bisa langsung mulai hanya dengan satu baris Docker.

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

Sepertinya ini akan berguna bagi tim kecil atau developer solo yang sulit mengadopsi alat observabilitas data yang mahal. Masukan sangat saya nantikan!

1 komentar

 
sonic0987 2026-02-27

Sederhana tapi meyakinkan, menarik!