Building a Real-Time Dashboard with RisingWave and Metabase

Building a Real-Time Dashboard with RisingWave and Metabase

How to Process Kafka Messages with SQL

Build a real-time dashboard using RisingWave for streaming data and Metabase for visualization. Metabase connects to RisingWave as a PostgreSQL database — no custom integration needed.

Setup

1. Start RisingWave and Metabase

# RisingWave
docker run -d -p 4566:4566 risingwavelabs/risingwave:latest
# Metabase
docker run -d -p 3000:3000 metabase/metabase:latest

2. Connect Metabase to RisingWave

In Metabase Admin → Database → Add Database:

  • Type: PostgreSQL
  • Host: risingwave-host
  • Port: 4566
  • Database: dev
  • Username: root

3. Create Materialized Views

CREATE MATERIALIZED VIEW sales_dashboard AS
SELECT DATE(order_time) as day, region, COUNT(*) as orders,
  SUM(amount) as revenue, AVG(amount) as avg_order
FROM orders GROUP BY DATE(order_time), region;

4. Build Dashboard in Metabase

Create questions using sales_dashboard as the source table. Metabase auto-refreshes from RisingWave's always-current views.

Frequently Asked Questions

Does Metabase auto-refresh from streaming data?

Metabase queries the database at its configured refresh interval. Since RisingWave materialized views are always current, every Metabase refresh shows the latest streaming data.

Best-in-Class Event Streaming
for Agents, Apps, and Analytics
GitHubXLinkedInSlackYouTube
Sign up for our to stay updated.