📄️ Data Ingestion
In databases, users often use the insert statement to input data. However, in stream processing, data is continuously imported from upstream systems, and evidently, the insert statement is unable to meet this need. RisingWave allows users to directly create table and source to import upstream data. When there is new data entering from the upstream systems, RisingWave will directly consume the data and carry out incremental computations.
📄️ Materialized Views and Stream Processing
The core functionality of RisingWave is stream processing, and the way stream processing is presented in streaming databases is through materialized views.
📄️ Ad-hoc Queries and Visualization
Like traditional databases, RisingWave can store data and allow users to perform ad-hoc queries on it. However, it's important to note that the source in RisingWave does not persist data, and RisingWave does not support directly quering the source, unless it's from Kafka. The main reason relates to data ownership, data consistency, and performance issues. Interested readers can refer to the discussion in previous article.
📄️ Deletes and Updates
Similar to traditional databases, RisingWave supports data updates and deletions within tables. Additionally, when data in a table is modified or deleted, any materialized views built on that table will be updated accordingly.
📄️ Data Delivery
Some users wish to use RisingWave for stream processing and then deliver the computed results to downstream systems. This is a common stream ETL scenario.
When ingesting data into RisingWave or delivering data to a downstream system, you need to use connectors. For an overview of data ingestion and data delivery, please refer to Data Ingestion and Data Delivery.