Real-Time Analytics on Your Lakehouse
Sub-second data freshness without a real-time database. Stream, aggregate, and query your data in Apache Iceberg using familiar tools.
Eliminate Your Real-Time Database
Get real-time analytics without the operational burden
Traditional Real-Time Stack
Event Sources
Kafka / Kinesis
Flink / Spark
Batch ETL
Druid / Pinot
Real-time
Data Warehouse
Historical
Multiple systems, high cost
Different queries for real-time vs historical
With Laminar
Event Sources
Laminar
Iceberg Tables
Real-time + Historical
One system, one query
Same query for seconds to years of data
Streaming Materialized Views
Define continuously-updated views for instant dashboard queries
-- Real-time revenue by product category (1-minute granularity)
CREATE PIPELINE revenue_by_category AS
SELECT
product_category,
window_start as minute,
SUM(order_total) as revenue,
COUNT(DISTINCT user_id) as unique_customers,
COUNT(*) as order_count,
AVG(order_total) as avg_order_value
FROM TABLE(
TUMBLE(
TABLE orders,
DESCRIPTOR(order_time),
INTERVAL '1' MINUTE
)
)
GROUP BY product_category, window_start, window_end
INTO iceberg.analytics.revenue_by_category_1min;
-- Active users in the last 5 minutes (continuously updated)
CREATE PIPELINE active_users AS
SELECT
window_end as calculated_at,
COUNT(DISTINCT user_id) as active_users,
COUNT(*) as total_events
FROM TABLE(
HOP(
TABLE page_views,
DESCRIPTOR(event_time),
INTERVAL '1' MINUTE,
INTERVAL '5' MINUTE
)
)
GROUP BY window_start, window_end
INTO iceberg.analytics.active_users_5min;Query from your BI tool:
-- Instant response from pre-aggregated data SELECT product_category, SUM(revenue) as total_revenue, SUM(order_count) as total_orders FROM iceberg.analytics.revenue_by_category_1min WHERE minute >= NOW() - INTERVAL '1' HOUR GROUP BY product_category ORDER BY total_revenue DESC;
Why Teams Choose Laminar for Analytics
Real-time freshness without real-time infrastructure complexity
Sub-Second Freshness
Data is queryable within 1 second of generation. Build dashboards that show what is happening now, not minutes ago.
Pre-Aggregated Metrics
Compute rollups, percentiles, and aggregations as data arrives. Instant dashboard queries without costly scans.
No Real-Time Database
Eliminate Druid, Pinot, or ClickHouse. Query Iceberg tables directly with your existing tools.
Historical + Real-Time
Seamlessly combine live data with historical analysis. One query across seconds to years of data.
Continuous Materialized Views
Define views in SQL that stay continuously updated. Incremental computation, not full refreshes.
Open Table Format
Query with Spark, Trino, DuckDB, or any Iceberg-compatible engine. No vendor lock-in.
Real-Time Analytics Use Cases
Executive Dashboards
Real-time KPIs and business metrics for leadership. Revenue, orders, and engagement updated continuously.
- Live revenue tracking
- Order volume monitoring
- Conversion funnel analysis
Operational Monitoring
Track system health, SLAs, and operational metrics in real-time for immediate action.
- Service latency tracking
- Error rate monitoring
- Capacity planning
Customer Analytics
Understand customer behavior as it happens. Power personalization and recommendation systems.
- Real-time segmentation
- Session analysis
- Behavior tracking
Product Analytics
Measure feature adoption, engagement, and conversion in real-time to guide product decisions.
- Feature usage tracking
- A/B test monitoring
- Funnel analysis
Works with Your BI Tools
Query real-time data with any Iceberg-compatible engine
Apache Spark
Trino / Presto
DuckDB
Snowflake
Tableau
Looker
Metabase
Superset
Ready for Real-Time Analytics?
Get started with Laminar in under 5 minutes