要点: 業務MeaningがCapture、Transform、Replay、Consumeを通して保たれるPipelineが正しいPipelineです。
課題
Batchは短いStateを失い、CDC DuplicateやSchema変更がDownstreamを壊し、DashboardとProductionが不一致になります。
単純な対策だけでは不十分な理由
CDCはBusiness FactでなくStorage Changeです。
Deterministic TransformとIdempotent Loadが実用的Guaranteeです。
処理フロー
Commit Log→CDC
Ordered Stream→Transform
Version Contract→Warehouse
Quality-gated Model
アーキテクチャ上の判断
Immutable Landing Zone
Raw ChangeとOffsetを保持します。
Data Contract Version
Breaking・Semantic Changeを検査します。
Published Quality Gate
不正ModelをReadyにしません。
さらに深く考える
Late Data Policy
履歴訂正またはReported値維持を決めます。
LineageはIncident Tool
誤値からSourceとTransformへ追跡します。
実装手順
- Source OffsetとSnapshot Watermarkを取得します。
- Immutable Raw Eventを先に保存します。
- Freshness、Completeness、Uniqueness、Invariantを検査します。
技術例: Source Position付きIdempotent Merge
read changes after checkpoint.offset
deduplicate by sourcePartition + sourceOffset
transform using contractVersion
MERGE target ON businessKey
commit target and checkpoint atomically where possibleAtomic Commit不可ならIdempotent Mergeと早いOffsetからのReplayを使います。
想定すべき障害パターン
- SnapshotとCDCが重複します。
- Type同一のSemantic Changeが起きます。
- Delete Event欠落で個人Dataが残ります。
監視すべきシグナル
| シグナル | 確認する理由 |
|---|---|
| End-to-end Freshness | Trusted Modelまでの遅延です。 |
| Reject・Invariant Failure | Corruptionを早期検出します。 |
| Offset・Replay量 | 停止とRecovery Costです。 |
設計の検証方法
- SnapshotとCDCのKeyを照合します。
- 同Range二回Replayで同一Outputを確認します。
- Schema ChangeをContract Testします。
安全なRollout計画
一Datasetを旧Batchと並行し、RowとTotalを比較して一Consumerから切替え、Full ReplayまでRawとCheckpointを保持します。
本番前チェックリスト
- DatasetにOwner、Contract、Lineage、Retentionがあります。
- Insert・Update・Delete・Correctionを区別します。
- 機密Fieldを最小化します。
まとめ
信頼できるAnalyticsは速度より再現可能LineageとData Contractに依存します。
