Slide 46
Slide 46 text
Rollup query
INSERT INTO rollup_events_1hr
SELECT customer_id,
Event_type, country, browser,
date_trunc('hour', event_time) as hour,
count(*) as event_count,
hll_add_agg(hll_hash_bigint(device_id)) as device_distinct_count,
hll_add_agg(hll_hash_bigint(session_id)) as session_distinct_count
FROM events
WHERE event_time BETWEEN now() AND now() - ‘1hr’
GROUP BY customer_id,event_type,country,browser,hour
ON CONFLICT (customer_id,event_type,country,browser,hour)
DO UPDATE
SET event_count=rollup_events_1hr.event_count+excluded.event_count,
device_distinct_count = hll_union(rollup_events_1hr.device_distinct_count,excluded.device_distinct_count),
session_distinct_count= hll_union(rollup_events_1hr.session_distinct_count,excluded.session_distinct_count);