Awesome
<p align="center"> <picture> <source srcset=".github/RisingWave-logo-dark.svg" width="500px" media="(prefers-color-scheme: dark)"> <img src=".github/RisingWave-logo-light.svg" width="500px"> </picture> </p> <div align="center">🌊 Reimagine stream processing.
</div> <p align="center"> <a href="https://docs.risingwave.com/" target="_blank" ><b>Documentation</b></a> 📑 <a href="https://tutorials.risingwave.com/" target="_blank" ><b>Hands-on Tutorials</b></a> 🎯 <a href="https://cloud.risingwave.com/" target="_blank" ><b>RisingWave Cloud</b></a> 🚀 <a href="https://risingwave.com/slack" target="_blank" > <b>Get Instant Help</b> </a> </p> <div align="center"> <a href="https://risingwave.com/slack" target="_blank" > <img alt="Slack" src="https://badgen.net/badge/Slack/Join%20RisingWave/0abd59?icon=slack" /> </a> <a href="https://twitter.com/risingwavelabs" target="_blank" > <img alt="X" src="https://img.shields.io/twitter/follow/risingwavelabs" /> </a> <a href="https://www.youtube.com/@risingwave-labs" target="_blank" > <img alt="YouTube" src="https://img.shields.io/youtube/channel/views/UCsHwdyBRxBpmkA5RRd0YNEA" /> </a> </div>RisingWave is a Postgres-compatible SQL engine engineered to provide the <i><b>simplest</b></i> and <i><b>most cost-efficient</b></i> approach for <b>processing</b>, <b>analyzing</b>, and <b>managing</b> real-time event streaming data.
When to use RisingWave?
RisingWave can ingest millions of events per second, continuously join live data streams with historical tables, and serve ad-hoc queries in real-time. Typical use cases include, but are not limited to:
- Streaming analytics: Perform streaming analytics and build live dashboards with data freshness under one second, ideal for stock trading, sports betting, IoT monitoring, and more.
- Event-driven applications: Develop monitoring and alerting applications for fraud detection, anomaly detection, and more.
- Real-time ETL pipelines: Ingest data from different sources, perform enrichment queries, and deliver results to downstream systems.
- Feature stores: Transform both batch and streaming data into ML features using the same codebase.
Try it out in 60 seconds
Install RisingWave standalone mode:
curl https://risingwave.com/sh | sh
Then follow the prompts to start and connect to RisingWave.
To learn about other installation options, such as using a Docker image, see Quick Start.
Please note: RisingWave uses Scarf to collect anonymized installation analytics. These analytics help support us understand and improve the distribution of our package. The privacy policy of Scarf is available at https://about.scarf.sh/privacy-policy.
Production deployments
RisingWave Cloud offers the easiest way to run RisingWave in production, with a forever-free developer tier.
For Docker deployment, please refer to Docker Compose.
For Kubernetes deployment, please refer to Kubernetes with Helm or Kubernetes with Operator.
Why RisingWave for real-time materialized views?
RisingWave specializes in providing incrementally updated, consistent materialized views — a persistent data structure that represents the results of event stream processing. Compared to materialized views, dynamic tables, and live tables in other database and data warehouse systems, RisingWave's materialized view stands out in several key aspects:
- Highly cost-efficient - up to 95% cost savings compared to state-of-the-art solutions
- Synchronous refresh without compromising consistency
- Extensive SQL support including joins, deletes, and updates
- High concurrency in query serving
- Instant fault tolerance
- Transparent dynamic scaling
- Speedy bootstrapping and backfilling
RisingWave's extensive CDC support further enables users to seamlessly offload event-driven workloads such as materialized views and triggers from operational databases (e.g., PostgreSQL) to RisingWave.
Why RisingWave for stream processing?
RisingWave provides users with a comprehensive set of frequently used stream processing features, including exactly-once consistency, time window functions, watermarks, and more. RisingWave significantly reduces the complexity of building stream processing applications by allowing developers to express intricate stream processing logic through cascaded materialized views. Furthermore, it allows users to persist data directly within the system, eliminating the need to deliver results to external databases for storage and query serving.
Compared to existing stream processing systems like Apache Flink, Apache Spark Streaming, and ksqlDB, RisingWave stands out in two primary dimensions: Ease-of-use and cost efficiency, thanks to its PostgreSQL-style interaction experience and Snowflake-like architectural design (i.e., decoupled storage and compute).
RisingWave 🌊 | Traditional stream processing systems | |
---|---|---|
Learning curve 🎢 | PostgreSQL-style experience | System-specific concepts |
Integration 🔗 | PostgreSQL ecosystem | System-specific ecosystem |
Complex queries (e.g., joins) 💡 | Highly efficient | Inefficient |
Failure recovery 🚨 | Instant | Minutes or even hours |
Dynamic scaling 🚀 | Transparent | Stop-the-world |
Bootstrapping and Backfilling ⏪ | Accelerated via dynamic scaling | Slow |
RisingWave as a database
RisingWave is fundamentally a database that extends beyond basic streaming data processing capabilities. It excels in the effective management of streaming data, making it a trusted choice for data persistence and powering online applications. RisingWave offers an extensive range of database capabilities, which include:
- High availability
- Serving highly concurrent queries
- Role-based access control (RBAC)
- Integration with data modeling tools, such as dbt
- Integration with database management tools, such as Dbeaver
- Integration with BI tools, such as Grafana
- Schema change
- Processing of semi-structured data
Community
Looking for help, discussions, collaboration opportunities, or a casual afternoon chat with our fellow engineers and community members? Join our Slack workspace!
Notes on telemetry
RisingWave collects anonymous usage statistics to better understand how the community is using RisingWave. The sole intention of this exercise is to help improve the product. Users may opt out easily at any time. Please refer to the user documentation for more details.
License
RisingWave is distributed under the Apache License (Version 2.0). Please refer to LICENSE for more information.
Contributing
Thanks for your interest in contributing to the project! Please refer to RisingWave Developer Guide for more information.