Назад к подготовке

Kafka, S3 и ClickHouse: роли компонентов

В realtime CTR dashboard есть поток impression/click events. Как разделить роли Kafka, S3 и ClickHouse?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

Kafka нужен как event log, S3 - для дешевого долговременного raw/cold хранения, ClickHouse - для быстрых аналитических запросов по агрегатам.

Полный разбор

Kafka не должен быть основной базой для dashboard: он держит поток, дает buffering, replay и разделение producers/consumers. S3 полезен для дешевого архива raw events, backfill, аудита и переобработки исторических данных.

ClickHouse хранит агрегированные counters по campaign_id и time bucket, чтобы API быстро читал временные ряды без скана сырых событий. Для dashboard обычно хранят clicks и impressions отдельно, а CTR считают как derived ratio, чтобы корректно агрегировать окна.