Skip to content

The event stream processing platform for developers. Unified experience for real-time data ingestion, stream processing, and low-latency serving. Best-in-class performance and cost-efficiency. Supports SQL and Python.

License

Notifications You must be signed in to change notification settings

risingwavelabs/risingwave

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

66e166f · Mar 30, 2023
Jan 17, 2023
Feb 13, 2023
Mar 22, 2023
Feb 17, 2023
Mar 28, 2023
Mar 22, 2023
Mar 23, 2023
Mar 20, 2023
Mar 30, 2023
Mar 27, 2023
Mar 23, 2023
Mar 27, 2023
Mar 29, 2023
Feb 21, 2023
Mar 30, 2023
Mar 20, 2023
Sep 23, 2022
Mar 22, 2023
Mar 20, 2023
Mar 10, 2023
Jan 26, 2023
Mar 14, 2023
Jan 29, 2023
Mar 28, 2023
Mar 24, 2023
Mar 20, 2022
Mar 28, 2023
Mar 1, 2023
Feb 17, 2023
Nov 8, 2022
Jan 28, 2023
Mar 27, 2023
Mar 2, 2023
Apr 11, 2022

Repository files navigation

RisingWave Logo

Slack Build status codecov

RisingWave is a distributed SQL database for stream processing. It is designed to reduce the complexity and cost of building real-time applications. RisingWave consumes streaming data, performs incremental computations when new data comes in, and updates results dynamically. As a database system, RisingWave maintains results inside its own storage so that users can access data efficiently.

RisingWave ingests data from sources like Apache Kafka, Apache Pulsar, Amazon Kinesis, Redpanda, and materialized CDC sources.

Data in RisingWave can be output to external targets such as message brokers, data warehouses, and data lakes for storage or additional processing.

RisingWave has achieved production-readiness and has been effectively deployed in dozens of companies across a diverse range of industries, including entertainment, fintech, social media, and manufacturing.

Learn more at Introduction to RisingWave.

Quick Start

Installation

There are two ways to install RisingWave: use a pre-built package or compile from source.

Use a Pre-built Package (Linux)

# Download the pre-built binary
wget https://github.com/risingwavelabs/risingwave/releases/download/v0.1.17/risingwave-v0.1.17-x86_64-unknown-linux.tar.gz
# Unzip the binary
tar xvf risingwave-v0.1.17-x86_64-unknown-linux.tar.gz
# Start RisingWave in single-binary playground mode
./risingwave playground

Use Docker (Linux, macOS)

# Start RisingWave in single-binary playground mode
docker run -it --pull=always -p 4566:4566 -p 5691:5691 ghcr.io/risingwavelabs/risingwave:v0.1.17 playground

Compile from Source with RiseDev (Linux and macOS)

# Install Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Clone the repo
git clone https://github.com/risingwavelabs/risingwave.git && cd risingwave
# Compile and start the playground
./risedev playground

To build from source, you need to pre-install several tools in your system. You may use ./risedev configure to configure compile settings. Please refer to the developer guide for more information.

You can launch a RisingWave cluster and process streaming data in a distributed manner, and enable other features like metrics collection and data persistence. Please refer to the developer guide for more information.

Your First Query

To connect to the RisingWave server, you will need to install PostgreSQL shell (psql) in advance.

# Use psql to connect RisingWave cluster
psql -h localhost -p 4566 -d dev -U root
/* create a table */
create table t1(v1 int);

/* create a materialized view based on the previous table */
create materialized view mv1 as select sum(v1) as sum_v1 from t1;

/* insert some data into the source table */
insert into t1 values (1), (2), (3);

/* (optional) ensure the materialized view has been updated */
flush;

/* the materialized view should reflect the changes in source table */
select * from mv1;

If everything works correctly, you should see

 sum_v1
--------
      6
(1 row)

in the terminal.

Connecting to an External Source

Please refer to get started guide for more information.

Documentation

To learn about how to use RisingWave, refer to RisingWave docs. To learn about the development process, see the developer guide. To understand the design and implementation of RisingWave, refer to the design docs listed in readme.md.

License

RisingWave is under the Apache License 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.