Min and Max Aggregations with Updates in Real Time
summary
Real-time ingestion uses a Kafka Streams app to compute count, sum and newly added min/max over roll-ups (minute/hour/day) while supporting record updates; the implementation keeps per-key heaps (uses a min-heap for max and vice versa), stores heap state in the changelog Avro record, and ships aggregated rows to Apache Kudu. Pipeline handles ~20,000 records/sec with query availability under two minutes (usually seconds). Edge case: a bounded heap can evict values and produce incorrect mins/maxes; batch Spark fixes older (>3 days) updates.
AI-written summary · about
chapters (6)
- 0:00Introduction
- 1:06Real-time analytics architecture
- 4:09Data set and cube setup
- 6:36Why math.max fails
- 9:10Heap-based min-max logic
- 12:00Q&A session
related talks
19mProcessing High Volume Updates in Hive
41mFrom Batch to Realtime with Hadoop
36mReal Time Big Data Analytics with Kafka, Storm, HBase #bbuzz
08mReal-Time Data Systems: Speed, Scale, and Resilience
11mBig Data Analytics: Immutability & Idempotence
27mUsing Akka Streams for Web scale Data Ingestion
22mHow We Built SQL Rollups on Streaming Data
38mReal-time analytics with Apache Cassandra & Apache Spark
