BlogBI & Analytics

Real-Time Analytics Dashboards: Architecture, Tooling, and When to Build Them

Eric Chen
Eric Chen
BI Solutions Architect
·August 7, 202711 min read

Real-time dashboards display data with latency measured in seconds rather than hours. They require a different data architecture than standard BI — live database connections or streaming queries instead of batch refreshes. Understanding when the business case justifies the complexity is as important as knowing how to build them.

Real-time analytics dashboards display data with latency measured in seconds rather than hours. They require a different data architecture than standard BI — live database connections or streaming query engines instead of pre-computed batch aggregations. Understanding when the business case justifies the additional complexity and cost is as important as knowing how to build them.

When Real-Time Dashboards Are Worth Building

The honest question to ask before building a real-time dashboard is: what decisions would be made differently, and how quickly, if this data were available with 10-second latency rather than 1-hour latency?

For most analytics use cases, the honest answer is: not differently. A marketing performance dashboard that refreshes hourly is adequate for daily or weekly optimisation decisions. A weekly trading review does not benefit from real-time data. An operations manager reviewing shift performance does not need data fresher than the current shift's start.

The use cases where real-time genuinely changes decision-making:

**Live operational monitoring** — a contact centre supervisor who needs to see current wait times and agent availability to make staffing adjustments within the hour. A fraud operations team monitoring transaction risk in real time. A DevOps team watching error rates and latency during a deployment.

**E-commerce and consumer applications** — a flash sale dashboard showing live inventory levels and transaction rates. A live event platform showing concurrent viewers and engagement metrics. Cases where the business is actively managing an operation that changes minute-to-minute and the dashboard is a tool in that management loop.

**Customer-facing embedded analytics** — dashboards embedded in products where customers expect data to reflect their current activity: a logistics tracking dashboard showing current shipment location, a financial platform showing real-time portfolio exposure.

For everything else, batch with an appropriate refresh interval is more practical, more reliable, and cheaper.

The Architecture Choices

Real-time dashboard architecture depends on the latency requirement and the query complexity:

**Near-real-time (under 5 minutes)** can often be achieved by reducing the batch pipeline refresh interval rather than building a streaming architecture. Many data warehouses support streaming inserts (BigQuery, Snowflake with Snowpipe) that load data within seconds of production. A dashboard that queries the warehouse against a frequently refreshed table can achieve sub-5-minute data freshness without a streaming processing layer.

**Real-time (under 30 seconds)** requires either live database connections to operational databases (acceptable for low-traffic dashboards against well-indexed operational tables) or a purpose-built OLAP store (Apache Druid, ClickHouse, StarRocks) that is optimised for sub-second analytical queries over streaming-ingested data.

**Sub-second** requires a column-oriented in-memory OLAP engine (Apache Pinot, ClickHouse) ingesting from a streaming source (Kafka) in real time. Sub-second analytical queries over millions of rows are achievable but require careful schema design (pre-defined dimensions, materialised rollups) that limits query flexibility.

BI Tool Considerations for Real-Time

Most BI tools are optimised for batch workflows — extract data to a cached dataset, generate a static view, schedule a refresh. Using them for real-time scenarios requires specific configuration:

**Tableau** supports live connections to databases, bypassing the extract cache. For real-time use cases, a live connection to ClickHouse, Druid, or a well-indexed operational database provides sub-minute data freshness without extracts. The performance implications of live connections at scale require attention: Tableau VizQL server issues a SQL query to the database on every dashboard interaction, which puts query load directly on the data source.

**Power BI** with DirectQuery mode provides live connections similar to Tableau's live connection. Import mode (the default) is batch; DirectQuery bypasses the cache. For real-time scenarios, DirectQuery against a fast analytical database (Azure Synapse, ClickHouse via DirectQuery connector) is the appropriate configuration.

**Grafana** is purpose-built for operational monitoring dashboards and integrates natively with time-series databases (InfluxDB, Prometheus, Graphite) and streaming sources (Kafka, Loki). For infrastructure monitoring and operational use cases, Grafana is a better choice than Tableau or Power BI.

**Custom dashboards** built with React and a charting library (Recharts, Victory, Highcharts) querying a purpose-built API provide the most flexibility for sub-second latency requirements. The engineering cost is high; this approach is appropriate only when BI tool constraints cannot meet the latency or interactivity requirements.

Data Architecture for Real-Time Queries

The query engine is only as fast as the data architecture supports. Three design principles for real-time OLAP performance:

**Pre-aggregate common rollups** — materialise the aggregations that dashboard queries will use most often. A dashboard that shows transactions per minute should query a pre-aggregated minute-grain table, not count individual transaction rows on every page load. Pre-aggregation moves compute from query time to ingestion time, dramatically reducing query latency.

**Columnar storage with appropriate partitioning** — columnar OLAP engines (ClickHouse, Druid, Pinot) achieve sub-second query performance by reading only the columns referenced by the query and using partition pruning to skip irrelevant time ranges. Partitioning by time at the day or hour level is standard; the partition granularity should match the most common time-range filter in dashboard queries.

**Limit query complexity at the consumption layer** — real-time dashboards should query pre-joined, denormalised tables rather than performing complex multi-table joins at query time. Moving join computation to the ingestion pipeline (producing denormalised event records) rather than the query layer is the most important performance decision in real-time analytics architecture.

Our BI strategy and data architecture practice helps organisations design real-time analytics architecture proportionate to genuine business requirements — contact us to discuss your real-time dashboard architecture.

Get your data architecture audit in 30 minutes.

A former Microsoft data architect audits your data foundation, identifies your top priorities, and sends you a written plan. Free. No pitch.

Book a Call →