トランザクションをKafka経由でストリームプロセッサに流し、OLAPストアに事前集計させることで、ダッシュボードは生イベントをスキャンする代わりに極小の事前計算されたロールアップを読みます。 1日数百万トランザクションでは、ページ読み込みごとに生テーブルに SUM() を実行することは決してしません。書き込み時に一度集計します。
アーキテクチャ
text
Payment svc ──▶ Kafka topic ──▶ Flink/Kafka Streams ──┬─▶ OLAP (ClickHouse/Druid) ◀── Dashboard
(txn events) (buffer,replay) (windowed pre-agg) │ (per-minute rollups) (read)
└─▶ S3/Parquet (raw, replay/audit)
state store ◀──────────┘ (exactly-once checkpoints)
