よく聞く一言
先月のレポートを、当時のデータのまま出し直せる?
なぜ起きるのか
データは手作業のエクスポートと表計算でやり取りされ、ファイル名には「最終版」「最終版 2」が並びます。データが変わると当時の姿は誰にも再現できず、上流に列が増えると、下流では行が静かに消えます。
Shuzi のやり方
どんなに雑多なソースも、
同じ形に収める。
データベース、API、アップロードしたファイルを、ワークフローで取得・変換・マージし、版付きの不変スナップショットとして保存します。更新のたびに新しい版ができ、問題があれば前の版に戻せます。
ソース
- PostgreSQL
- SQL Server
- REST API
- CSV · XLSX
ワークフロー
- 01取得
- 02変換
- 03主キーでマージ
スナップショット
- v13parquet 不変
- v12parquet
- v11parquet
snapshot v13 · parquet · immutable
- 01
ワークフローで取得
取得と変換を視覚的に組み立てます。ソースをまたぐデータは、まず管理されたスナップショットに同期してから、あわせて分析します。
- 02
不変の版
公開したスナップショットは変更されません。追跡も巻き戻しもでき、参照中の版が誤って削除されることもありません。
- 03
読み書きの分離
書き込むのはスケジューラだけ。クエリは読み取り専用のレプリカを使います。API が知らないうちにデータを変えることはありません。
具体的な機能
多様なソース
データベース、ファイルアップロード、API 取得に対応。本番データベースには SSH 踏み台経由でも接続できます。
主キーの規則
主キー列は NULL を許可しません。列名が合わないバッチが、静かに 1 行へ統合されることを防ぎます。
増分マージ
主キーで増分マージし、更新はスケジュール可能。進捗と失敗の理由も確認できます。
版の参照管理
モデル・クエリ・エクスポートからの参照を記録するため、クリーンアップで使用中の版が消えることはありません。