6 ポイント 投稿者 abcdkh1209 2026-02-26 | 1件のコメント | WhatsAppで共有

会社で1人開発者として複数のサーバーやサービスを管理しているのですが、ときどき「先月末時点ではこのデータはどうなっていた?」という質問を受けます。
そのたびに pg_dump バックアップを探し、臨時DBを立ち上げて、復元して、クエリを投げて、後片付けする工程を繰り返すのがとても面倒だったので、自分で作りました。
Snaplakeは、DBテーブルを定期的にParquetファイルとしてスナップショットし、バックアップを復元せずにDuckDBで直接SQL参照できるセルフホスティングツールです。

主な機能

  • スナップショット取得 — PostgreSQL、MySQLのテーブルをApache Parquetファイルとして保存。Cronベースの自動スナップショットと保持ポリシー(日次/月次)をサポート
  • SQLクエリ — DuckDBベースで、どの時点のスナップショットでもそのままSQL参照可能。テーブル結合、集計、CSV/JSONエクスポートに対応
  • スナップショット比較 — 2時点のスナップショットを並べて行単位で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の1行でそのまま始められます。

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

高価なデータ観測ツールの導入が難しい小規模チームや1人開発者にとって有用だと思います。フィードバック歓迎です!

1件のコメント

 
sonic0987 2026-02-27

シンプルだけど確かですね。面白いです!