Skip to main content

intro

Under Development

This documentation is currently under active development. Some sections may be incomplete or subject to change. We're working hard to provide you with the most up-to-date and accurate information.

Getting Started with RisingWave

Welcome to the RisingWave tutorial! In this guide, you'll learn how to build real-time data processing applications using RisingWave, a powerful distributed SQL streaming database.

Time to Complete

This tutorial will take about 10 minutes to read. The hands-on exercises will take 15-30 minutes.

🎯 What You'll Build

By the end of this tutorial, you'll be able to:

  1. Set up a RisingWave instance
  2. Create and manage streaming data pipelines
  3. Build real-time analytics applications
  4. Deploy RisingWave in production

🌟 Quick Start Example

Let's start with a simple example to see RisingWave in action. We'll create a real-time counter that updates every second:

-- Create a source that generates numbers every second
CREATE SOURCE number_source (
number INTEGER
) WITH (
connector = 'datagen',
rows_per_second = '1'
) ROW FORMAT DEEDOO ENCODE JSON;

-- Create a materialized view that counts numbers
CREATE MATERIALIZED VIEW number_counter AS
SELECT COUNT(*) as total_count
FROM number_source;

-- Query the counter
SELECT * FROM number_counter;
Try it yourself!

You can run this example in our Playground or follow our Installation Guide to set up RisingWave locally.

📚 Understanding RisingWave

RisingWave is an event stream processing platform for developers. It offers a unified experience for real-time data ingestion, stream processing, and low-latency serving.

Core Features

Like other stream processors, RisingWave supports:

  • Ingestion: Ingest millions of events per second from streaming and batch sources.
  • Stream processing: Perform real-time incremental processing to join and analyze live data with historical tables.
  • Delivery: Deliver fresh, consistent results to data lakes (e.g., Apache Iceberg) or any destination.

But RisingWave does more. It provides both online and offline storage:

  • Online serving: Row-based storage for ad-hoc point/range queries with single-digit millisecond latency.
  • Offline persistence: Apache Iceberg-based storage that persists streaming data at low cost, enabling open access by other query engines.
RisingWave Architecture

🎮 Learning Path

Getting Started (30 minutes)

  1. Install RisingWave
  2. PostgreSQL Quick Start
  3. Kafka Quick Start

Basic Concepts (1 hour)

  1. Understanding Materialized Views
  2. Data Ingestion
  3. Data Sinks
  4. Connectors
  5. Lookup Tables
  6. Updates

Advanced Features (2 hours)

  1. Window Functions
  2. Complex Joins
  3. Watermarks
  4. Schema Evolution
  5. Temporal Filters
  6. Exactly-Once Processing

Production Deployment (1 hour)

  1. Production Installation
  2. Production FAQ
Pro Tip

Start with the Installation Guide and PostgreSQL Quick Start to get up and running quickly!

🎮 Interactive Examples

Example 1: Real-Time User Analytics

-- Track user activity in real-time
CREATE MATERIALIZED VIEW user_activity AS
SELECT
user_id,
COUNT(*) as total_actions,
MAX(timestamp) as last_active
FROM user_events
GROUP BY user_id;

Example 2: Fraud Detection

-- Detect suspicious transactions
CREATE MATERIALIZED VIEW fraud_alerts AS
SELECT
transaction_id,
user_id,
amount,
timestamp
FROM transactions
WHERE amount > 10000
OR (SELECT COUNT(*)
FROM transactions t2
WHERE t2.user_id = transactions.user_id
AND t2.timestamp > transactions.timestamp - INTERVAL '1 hour') > 10;

🛠️ Tools & Ecosystem

RisingWave integrates with popular tools:

  • Data Sources: Kafka, PostgreSQL, MySQL, and more
  • Data Sinks: PostgreSQL, MySQL, Redis, and more
  • Monitoring: Prometheus, Grafana
  • Development: VS Code, IntelliJ, DBeaver

📚 Resources

Pro Tip

Start with the Installation Guide if you're new to stream processing. It will help you understand the basics in just 15 minutes!

🔄 Stay Updated

This tutorial is continuously improved. We welcome your feedback and contributions!

Contributing

Found an issue or have a suggestion? Open an issue or submit a pull request!

Ready to begin your RisingWave journey? Let's install RisingWave and start building real-time applications!