Show GN: Snaplake - 백업 복원 없이 과거 DB 데이터를 조회하는 셀프호스팅 도구
(snaplake.clroot.io)회사에서 1인 개발자로 여러 서버/서비스를 관리하고 있는데, 종종 "지난달 말에 이 데이터가 어떻게 되어 있었어?"라는 질문을 받곤 합니다.
그때마다 pg_dump 백업을 찾아서 임시 DB를 띄우고, 복원하고, 쿼리 날리고, 정리하는 과정을 반복하는 게 너무 번거로워서 직접 만들게 되었습니다.
Snaplake는 DB 테이블을 주기적으로 Parquet 파일로 스냅샷하고, 백업 복원 없이 DuckDB로 바로 SQL 조회할 수 있는 셀프호스팅 도구입니다.
주요 기능
- 스냅샷 캡처 — PostgreSQL, MySQL 테이블을 Apache Parquet 파일로 저장. Cron 기반 자동 스냅샷과 보관 정책(일별/월별) 지원
- SQL 쿼리 — DuckDB 기반으로 어떤 시점의 스냅샷이든 바로 SQL 조회. 테이블 조인, 집계, CSV/JSON 내보내기 가능
- 스냅샷 비교 — 두 시점의 스냅샷을 나란히 놓고 행 단위 diff. 추가/삭제/변경된 행을 색상으로 구분
- 유연한 스토리지 — 로컬 파일시스템 또는 S3 호환 스토리지(AWS S3, MinIO 등)
기술 스택
- Backend: Kotlin, Spring Boot 3.4, Java 21
- Query Engine: DuckDB (Parquet 파일 직접 쿼리)
- Frontend: React 19, TypeScript, Vite
- 메타데이터 저장: SQLite
- 인증: JWT + Argon2
Docker 한 줄로 바로 시작할 수 있습니다.
docker run -d --name snaplake -p 8080:8080 -v snaplake-data:/app/data abcdkh1209/snaplake:latest
비싼 데이터 관측 도구를 도입하기 어려운 소규모 팀이나 1인 개발자에게 유용할 것 같습니다. 피드백 환영합니다!
- 랜딩: https://snaplake.clroot.io
- GitHub: https://github.com/clroot/snaplake
- Docker Hub: https://hub.docker.com/r/abcdkh1209/snaplake