The civic web analyzer needs both accurate daily visitor sessions and near-real-time live counters. Which processing approach aligns batch and stream for that goal?
Select an answer to reveal the explanation.
Short Explanation
Nightly cooks prepare the full meal; a live ticker keeps the scoreboard current. Batch MapReduce or Spark builds daily sessions while streaming refreshes live counters. One quarterly spreadsheet cannot do both jobs well.
Full Explanation
Batch MapReduce or Spark jobs for accurate daily visitor sessions plus streaming updates for live counters align processing with two different latency needs in a civic web analyzer. Daily batch stabilizes sessionization and funnel math; streaming keeps operational counters fresh for editors and ops. That hybrid processing approach is a standard Chapter 10 pattern built on earlier BDPC processing ideas.
Using only annual offline audits with no daily or live metrics abandons both product iteration and operations. Discarding all events older than one hour so sessions can never form destroys the history batch sessionization needs. Running a single spreadsheet refresh every quarter cannot satisfy either accurate daily sessions or near-real-time counters on a busy municipal portal.
Exam caveat: dual pipelines need consistent event definitions so live counters and daily sessions do not tell contradictory stories without reconciliation rules. Operational check: compare a live counter to the following morning’s batch session metric for the same portal area, document expected differences, and alert only when divergence exceeds the agreed tolerance. Document the verified decision in the municipal architecture runbook so future on-call and audit staff inherit the same standard.