Skip to content

The streaming database: SQL stream processing with Postgres-like experience ๐Ÿช„. 10X more cost-efficient than Apache Flink ๐Ÿš€.

License

Notifications You must be signed in to change notification settings

zwang28/risingwave

This branch is 3715 commits behind risingwavelabs/risingwave:main.

Folders and files

NameName
Last commit message
Last commit date
Sep 14, 2023
Oct 5, 2023
Oct 25, 2023
Sep 13, 2023
Sep 19, 2023
Oct 27, 2023
Oct 18, 2023
Oct 25, 2023
Oct 24, 2023
Oct 27, 2023
Oct 20, 2023
Oct 27, 2023
Oct 26, 2023
Oct 27, 2023
Sep 14, 2023
Oct 27, 2023
Sep 20, 2023
Sep 27, 2023
Mar 22, 2023
Oct 25, 2023
Oct 25, 2023
Jun 15, 2023
Aug 30, 2023
Oct 24, 2023
Oct 27, 2023
Oct 26, 2023
Mar 20, 2022
Oct 21, 2023
Oct 24, 2023
Sep 7, 2023
Jul 28, 2023
Jun 12, 2023
Oct 25, 2023
May 19, 2023
Sep 9, 2023

Repository files navigation

๐ŸŒŠStream Processing Redefined.

Documentation   ๐Ÿ“‘    Hands-on Tutorials   ๐ŸŽฏ    RisingWave Cloud   ๐Ÿš€    Get Instant Help

RisingWave is a distributed SQL streaming database that enables simple, efficient, and reliable processing of streaming data.

RisingWave

How to install

Ubuntu

wget https://github.com/risingwavelabs/risingwave/releases/download/v1.3.0/risingwave-v1.3.0-x86_64-unknown-linux.tar.gz
tar xvf risingwave-v1.3.0-x86_64-unknown-linux.tar.gz
./risingwave playground

Mac

brew tap risingwavelabs/risingwave
brew install risingwave
risingwave playground

Now connect to RisingWave using psql:

psql -h localhost -p 4566 -d dev -U root

Learn more at Quick Start.

Why RisingWave for stream processing?

RisingWave adaptly tackles some of the most challenging problems in stream processing. Compared to existing stream processing systems, RisingWave shines through with the following key features:

  • Easy to learn
    • RisingWave speaks PostgreSQL-style SQL, enabling users to dive into stream processing in much the same way as operating a PostgreSQL database.
  • Highly efficient in multi-stream joins
    • RisingWave has made significant optimizations for multiple stream join scenarios. Users can easily join 10-20 streams (or more) efficiently in a production environment.
  • High resource utilization
    • Queries in RisingWave leverage shared computational resources, eliminating the need for users to manually allocate resources for each query.
  • No compromise on large state management
    • The decoupled compute-storage architecture of RisingWave ensures remote persistence of internal states, and users never need to worry about the size of internal states when handling complex queries.
  • Transparent dynamic scaling
    • RisingWave supports near-instantaneous dynamic scaling without any service interruptions.
  • Instant failure recovery
    • RisingWave's state management mechanism allows it to recover from failure in seconds, not minutes or hours.
  • Easy to verify correctness
    • RisingWave persists results in materialized views and allow users to break down complex stream computation programs into stacked materialized views, simplifying program development and result verification.
  • Simplified data stack
    • RisingWave's ability to store data and serve queries eliminates the need for separate maintenance of stream processors and databases. Users can effortlessly connect RisingWave to their preferred BI tools or through client libraries.
  • Simple to maintain and operate
    • RisingWave abstracts away unnecessary low-level details, allowing users to concentrate solely on SQL code-level issues.
  • Rich ecosystem
    • With integrations to a diverse range of cloud systems and the PostgreSQL ecosystem, RisingWave boasts a rich and expansive ecosystem.

RisingWave's limitations

RisingWave isnโ€™t a panacea for all data engineering hurdles. It has its own set of limitations:

  • No programmable interfaces
    • RisingWave does not provide low-level APIs in languages like Java and Scala, and does not allow users to manage internal states manually (unless you want to hack!). For coding in Java, Scala, and other languages, please consider using RisingWave's User-Defined Functions (UDF).
  • No support for transaction processing
    • RisingWave isnโ€™t cut out for transactional workloads, thus itโ€™s not a viable substitute for operational databases dedicated to transaction processing. However, it supports read-only transactions, ensuring data freshness and consistency. It also comprehends the transactional semantics of upstream database Change Data Capture (CDC).
  • Not tailored for ad-hoc analytical queries
    • RisingWave's row store design is tailored for optimal stream processing performance rather than interactive analytical workloads. Hence, it's not a suitable replacement for OLAP databases. Yet, a reliable integration with many OLAP databases exists, and a collaborative use of RisingWave and OLAP databases is a common practice among many users.

RisingWave Cloud

RisingWave Cloud is a fully-managed and scalable stream processing platform powered by the open-source RisingWave project. Try it out for free at: cloud.risingwave.com.

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.

In-production use cases

Like other stream processing systems, the primary use cases of RisingWave include monitoring, alerting, real-time dashboard reporting, streaming ETL (Extract, Transform, Load), machine learning feature engineering, and more. It has already been adopted in fields such as financial trading, manufacturing, new media, logistics, gaming, and more. Check out customer stories.

Community

Looking for help, discussions, collaboration opportunities, or a casual afternoon chat with our fellow engineers and community members? Join our Slack workspace!

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 contribution guidelines for more information.

About

The streaming database: SQL stream processing with Postgres-like experience ๐Ÿช„. 10X more cost-efficient than Apache Flink ๐Ÿš€.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 91.7%
  • Java 3.4%
  • Python 2.2%
  • Shell 1.2%
  • TypeScript 0.7%
  • JavaScript 0.4%
  • Other 0.4%