C Daily Event Analytics CREATE TABLE events ( ts DateTime, player_id UInt64, event_name LowCardinality(String), level UInt16, params String ) ENGINE = MergeTree PARTITION BY toYYYYMM(ts) ORDER BY (event_name, ts); -- tens of millions of rows per day, batch processing SELECT toDate(ts) AS d, count() AS purchases, uniq(player_id) AS payers FROM events WHERE event_name = 'purchase' AND ts >= '2026-08-01' GROUP BY d ORDER BY d We write a lot; there's no need for minor updates to events.