GithubHelp home page GithubHelp logo

jerry1984 / risingwave Goto Github PK

View Code? Open in Web Editor NEW

This project forked from risingwavelabs/risingwave

0.0 0.0 0.0 137.35 MB

RisingWave: A Distributed SQL Database for Stream Processing

Home Page: https://www.risingwave.com/cloud

License: Apache License 2.0

Shell 0.79% JavaScript 0.53% Python 1.83% Java 2.60% Go 0.36% Rust 93.06% TypeScript 0.80% CSS 0.01% Dockerfile 0.04%

risingwave's Introduction

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.

RisingWave Cloud

RisingWave Cloud is the fully managed service of RisingWave Database. It is now in Beta. Feel free to try out at: risingwave.com/cloud.

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. These statistics are related to system resource usage, OS versions and system uptime. RisingWave doesn't have access to any user data or metadata running on RisingWave clusters including source and sink connection parameters, sources, sinks, materialized views, and tables. Users have an option to opt out of this collection using a system parameter. Please refer to the RisingWave user documentation for more details.

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.18.0/risingwave-v0.18.0-x86_64-unknown-linux.tar.gz
# Unzip the binary
tar xvf risingwave-v0.18.0-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.18.0 playground

Compile from Source (Linux and macOS)

You will need to first set up the development environment. Then, you can run the following command in the project root:

# Compile and start the playground
./risedev playground

You may use ./risedev configure to configure compile settings. 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 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.

risingwave's People

Contributors

skyzh avatar bugenzhao avatar tennyzhuang avatar lmatz avatar bowenxiao1999 avatar xxchan avatar zwang28 avatar yezizp2012 avatar fuyufjh avatar liurenjie1024 avatar xiangjinwu avatar chenzl25 avatar st1page avatar soundofdestiny avatar wcy-fdu avatar kwannoel avatar neverchanje avatar sunt-ing avatar tabversion avatar wangrunji0408 avatar shanicky avatar wenym1 avatar little-wallace avatar li0k avatar xx01cyx avatar stdrc avatar yuhao-su avatar jon-chuang avatar mrcroxx avatar zenotme avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.