Configs2026年4月16日·1 分钟阅读

RisingWave — Cloud-Native Streaming Database in Rust

Postgres-compatible SQL streaming database for building real-time materialized views on event data.

Introduction

RisingWave is a distributed SQL streaming database written in Rust that treats streams as tables and materialized views as continuously-updated query results. It speaks the Postgres wire protocol, so BI tools, ORMs, and psql just work — while under the hood it runs a fully incremental stream processor designed for the cloud.

What RisingWave Does

  • Ingests streams from Kafka, Pulsar, Redpanda, Kinesis, MySQL/Postgres CDC, and more.
  • Computes incremental materialized views using SQL: joins, windows, aggregations, time travel.
  • Stores state in tiered storage (S3/GCS/Azure) for cheap, elastic scaling.
  • Sinks results to Kafka, Iceberg, Postgres, MySQL, ClickHouse, Redis, and more.
  • Offers full Postgres-compatible query endpoint for ad-hoc analytics on live streams.

Architecture Overview

A RisingWave cluster separates compute (compute nodes running streaming operators), meta (catalog + cluster coordination), and storage (Hummock — an LSM-backed shared-storage engine on object storage). Streaming jobs are compiled to dataflow graphs; state is checkpointed to object storage, so compute nodes are stateless and elastic. Frontend nodes handle SQL parsing and the Postgres wire protocol.

Self-Hosting & Configuration

  • Run locally with risingwave playground, on Docker Compose, or on Kubernetes via the RisingWave Operator.
  • Point Hummock storage to S3/GCS/Azure and MinIO for on-prem deployments.
  • Configure auth and TLS via risingwave.toml; integrate with OIDC through a proxy or bouncer.
  • Scale compute and frontend pods independently; add compute nodes for throughput during bursts.
  • Observability via Prometheus metrics, Grafana dashboards, and structured logs.

Key Features

  • Incremental SQL — stream analytics expressed as CREATE MATERIALIZED VIEW.
  • Postgres-wire compatible; existing clients and drivers "just work".
  • Separation of compute and storage for elastic, cost-efficient scaling.
  • Built-in CDC sources for Postgres and MySQL without external Debezium deployment.
  • UDFs in Python, JavaScript, Java, and Rust for custom transformations.

Comparison with Similar Tools

  • Materialize — Closest peer; RisingWave emphasizes cloud-native storage + horizontal scale-out.
  • Apache Flink — DataStream/SQL APIs; Flink is a toolkit, RisingWave is a full database product.
  • ksqlDB — Kafka-centric; RisingWave supports broader sources and standard Postgres SQL.
  • Apache Pinot / Druid — Real-time OLAP; great for aggregations, less expressive joins than RisingWave.
  • Materialized views in Snowflake/BigQuery — Batch-refreshed; RisingWave updates continuously.

FAQ

Q: Is RisingWave Postgres-compatible? A: It implements the Postgres wire protocol and a large subset of SQL; it is not a drop-in OLTP Postgres.

Q: How is state stored? A: State lives in Hummock on S3/GCS/Azure; compute nodes are stateless and can be replaced freely.

Q: Can it replace a Kafka Streams app? A: Often yes — you get SQL semantics, auto-scaling, and a SQL surface instead of imperative JVM code.

Q: What is the license? A: Apache 2.0 for RisingWave; a paid cloud service is offered by RisingWave Labs for managed use.

Sources

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产