You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* docs: SEO phase 2 — comparison pages, concept pages, JSON-LD fixes
- Fix JSON-LD in FAQ pages: convert JSX {JSON.stringify()} to static JSON
for correct Mintlify rendering
- Add RisingWave vs Materialize comparison page with FAQPage JSON-LD
- Add RisingWave vs ksqlDB comparison page with FAQPage JSON-LD
- Add RisingWave vs Kafka Streams comparison page with FAQPage JSON-LD
- Add all comparison pages to docs.json navigation
- Split key concepts into independent AEO-optimized pages:
- What is a Streaming Database?
- What is a Materialized View in RisingWave?
- What is a Source in RisingWave?
- What is a Sink in RisingWave?
- What is CDC in RisingWave?
- Add concept pages to docs.json navigation
- Add cross-links from glossary to new concept pages
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* docs: SEO phase 2b — internal links and HowTo JSON-LD
- Add "See also" sections to 7 high-traffic pages:
- get-started/intro.mdx
- processing/overview.mdx
- ingestion/overview.mdx
- delivery/overview.mdx
- cloud/intro.mdx
- deploy/deployment-modes-overview.mdx
- Add HowTo JSON-LD schema markup to 3 tutorial pages:
- get-started/quickstart.mdx
- deploy/install-psql-without-postgresql.mdx
- deploy/risingwave-docker-compose.mdx
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* docs: address PR #1075 review comments
- Fix over-claimed exactly-once delivery semantics in what-is-sink.mdx
and risingwave-kafka-streams-comparison.mdx — most sinks are
at-least-once; exactly-once is connector-dependent
- Update JSON-LD structured data to reflect accurate delivery guarantees
- Replace literal password values with <your_password> placeholder
in what-is-cdc.mdx examples
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* docs: SEO phase 3 — new concept pages, comparison page, JSON-LD enhancements
- Add FAQPage JSON-LD to existing Flink and Kafka comparison pages
- Add SoftwareApplication JSON-LD to intro.mdx
- Create "What is Stream Processing?" concept page with FAQPage JSON-LD
- Create "What is Streaming ETL?" concept page with FAQPage JSON-LD
- Create "RisingWave vs ClickHouse" comparison page with FAQPage JSON-LD
- Add all new pages to docs.json navigation
- Add cross-link from glossary to stream processing concept page
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: wrap JSON-LD in template literals for MDX compatibility
MDX parser (acorn) interprets raw {…} inside <script> tags as JSX
expressions, causing build failures. Wrap all JSON-LD content in
template literals ({`…`}) across 19 files so the JSON is emitted
as literal script text.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: delivery/overview.mdx
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -220,3 +220,10 @@ WITH (
220
220
221
221
In this example, if the number of rows in the file exceeds 100, or if writing has continued for more than 10 seconds, the writing of this file will be completed.
222
222
Once completed, the file will be visible in the downstream sink system.
223
+
224
+
## See also
225
+
226
+
-[What is a Sink?](/reference/what-is-sink) — Sink concepts, emission modes, and connector overview
227
+
-[Data ingestion](/ingestion/overview) — How data enters RisingWave
228
+
-[Data processing](/processing/overview) — Transform data before delivery
Copy file name to clipboardExpand all lines: deploy/install-psql-without-postgresql.mdx
+39-2Lines changed: 39 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,6 +71,43 @@ This is the usual way of installing PostgreSQL on Windows. But to install the cl
71
71
</Tab>
72
72
</Tabs>
73
73
74
-
75
-
74
+
<head>
75
+
<scripttype="application/ld+json">
76
+
{`
77
+
{
78
+
"@context": "https://schema.org",
79
+
"@type": "HowTo",
80
+
"name": "How to install psql without PostgreSQL",
81
+
"description": "Install the psql command-line client for connecting to RisingWave or PostgreSQL, without installing the full PostgreSQL server. Instructions for macOS, Debian/Ubuntu, Red Hat/CentOS, Fedora, and Windows.",
82
+
"step": [
83
+
{
84
+
"@type": "HowToStep",
85
+
"name": "Install on macOS",
86
+
"text": "Install Homebrew if needed, run 'brew update', then 'brew install libpq', then 'brew link --force libpq' to make psql available in your PATH."
87
+
},
88
+
{
89
+
"@type": "HowToStep",
90
+
"name": "Install on Debian/Ubuntu",
91
+
"text": "Run 'sudo apt update' followed by 'sudo apt install postgresql-client' to install the psql client."
92
+
},
93
+
{
94
+
"@type": "HowToStep",
95
+
"name": "Install on Red Hat/CentOS",
96
+
"text": "Install the PostgreSQL repository RPM from postgresql.org, then run 'sudo yum install postgresql' to install the client tools."
97
+
},
98
+
{
99
+
"@type": "HowToStep",
100
+
"name": "Install on Fedora",
101
+
"text": "Run 'sudo dnf install postgresql.x86_64' to install the PostgreSQL client including psql."
102
+
},
103
+
{
104
+
"@type": "HowToStep",
105
+
"name": "Install on Windows",
106
+
"text": "Use the interactive installer by EDB from postgresql.org. During installation, select only 'Command Line Tools' and uncheck other components."
Copy file name to clipboardExpand all lines: deploy/risingwave-docker-compose.mdx
+35Lines changed: 35 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -235,3 +235,38 @@ Error { code: "XMinioStorageFull", message: "Storage backend has reached its min
235
235
```
236
236
237
237
This issue typically occurs on macOS when using Docker Desktop. Docker Desktop runs within the macOS Hypervisor, where all the data, including logs, images, and volumes, is stored. The macOS Hypervisor has a default limit on disk capacity. If you encounter this error, you can resolve it by cleaning up unused containers or images. Another option is to increase the disk image size limit by following these steps: Click on the Docker Desktop icon in the menu bar, then go to **Preferences**\>**Resources**\>**Advanced**, and adjust the slider for disk image size to allocate more space for Docker images. If you are using a different platform, please ensure sufficient space is available on the local disk.
238
+
239
+
<head>
240
+
<script type="application/ld+json">
241
+
{`
242
+
{
243
+
"@context": "https://schema.org",
244
+
"@type": "HowTo",
245
+
"name": "How to deploy RisingWave with Docker Compose",
246
+
"description": "Deploy a RisingWave cluster using Docker Compose with persistent storage and observability. Includes state store and meta store configuration options.",
247
+
"step": [
248
+
{
249
+
"@type": "HowToStep",
250
+
"name": "Download the source file",
251
+
"text": "Install Docker Desktop, then clone the RisingWave repository with 'git clone https://github.com/risingwavelabs/risingwave.git' and navigate to the docker directory."
252
+
},
253
+
{
254
+
"@type": "HowToStep",
255
+
"name": "Configure state store and meta store",
256
+
"text": "Choose your state store (MinIO, S3, GCS, Azure Blob, HDFS) and meta store (PostgreSQL, MySQL, SQLite) by selecting the appropriate Docker Compose configuration file."
257
+
},
258
+
{
259
+
"@type": "HowToStep",
260
+
"name": "Start the RisingWave cluster",
261
+
"text": "Run 'docker compose up -d' to start the cluster with the default MinIO configuration, or specify a custom configuration file with the -f flag."
262
+
},
263
+
{
264
+
"@type": "HowToStep",
265
+
"name": "Connect to RisingWave",
266
+
"text": "Connect to RisingWave using psql: psql -h localhost -p 4566 -d dev -U root"
Copy file name to clipboardExpand all lines: faq/faq-using-risingwave.mdx
+42-38Lines changed: 42 additions & 38 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -104,43 +104,47 @@ total_memory: 8.00 GiB
104
104
105
105
For guidance on tuning memory allocation, see [Tune reserved memory](/operate/tune-reserved-memory).
106
106
107
-
<scripttype="application/ld+json">
108
-
{JSON.stringify({
109
-
"@context": "https://schema.org",
110
-
"@type": "FAQPage",
111
-
"mainEntity": [
107
+
<head>
108
+
<scripttype="application/ld+json">
109
+
{`
112
110
{
113
-
"@type": "Question",
114
-
"name": "Why is RisingWave memory usage so high?",
115
-
"acceptedAnswer": {
116
-
"@type": "Answer",
117
-
"text": "This is by design. RisingWave uses memory for in-memory caching of streaming query state to optimize performance. By default, it utilizes all available memory unless configured via RW_TOTAL_MEMORY_BYTES. Setting memory limits is required in Kubernetes and Docker deployments."
118
-
}
119
-
},
120
-
{
121
-
"@type": "Question",
122
-
"name": "Why is the memory for a RisingWave Serving or Streaming Node not fully utilized?",
123
-
"acceptedAnswer": {
124
-
"@type": "Answer",
125
-
"text": "RisingWave reserves a portion of total memory for system usage. Starting from v1.10, it uses a gradient formula: 30% of the first 16GB plus 20% of the remaining memory. You can override this with the RW_RESERVED_MEMORY_BYTES environment variable or --reserved-memory-bytes startup option (minimum 512MB)."
126
-
}
127
-
},
128
-
{
129
-
"@type": "Question",
130
-
"name": "Why does CREATE MATERIALIZED VIEW take a long time in RisingWave?",
131
-
"acceptedAnswer": {
132
-
"@type": "Answer",
133
-
"text": "CREATE MATERIALIZED VIEW backfills all historical data from referenced tables to ensure a consistent snapshot. Use SHOW JOBS to check progress. To run non-blocking, set BACKGROUND_DDL=true before the CREATE statement. If progress stays at 0%, the cluster may be experiencing high latency."
134
-
}
135
-
},
136
-
{
137
-
"@type": "Question",
138
-
"name": "What does RisingWave memory usage consist of?",
139
-
"acceptedAnswer": {
140
-
"@type": "Answer",
141
-
"text": "RisingWave memory is divided into storage memory (block cache, meta cache, shared buffer), compute memory (streaming computation and queries), and reserved memory (system overhead). For example, an 8GB node uses approximately 2.13GB for storage, 3.47GB for compute, and 2.40GB reserved."
142
-
}
111
+
"@context": "https://schema.org",
112
+
"@type": "FAQPage",
113
+
"mainEntity": [
114
+
{
115
+
"@type": "Question",
116
+
"name": "Why is RisingWave memory usage so high?",
117
+
"acceptedAnswer": {
118
+
"@type": "Answer",
119
+
"text": "This is by design. RisingWave uses memory for in-memory caching of streaming query state to optimize performance. By default, it utilizes all available memory unless configured via RW_TOTAL_MEMORY_BYTES. Setting memory limits is required in Kubernetes and Docker deployments."
120
+
}
121
+
},
122
+
{
123
+
"@type": "Question",
124
+
"name": "Why is the memory for a RisingWave Serving or Streaming Node not fully utilized?",
125
+
"acceptedAnswer": {
126
+
"@type": "Answer",
127
+
"text": "RisingWave reserves a portion of total memory for system usage. Starting from v1.10, it uses a gradient formula: 30% of the first 16GB plus 20% of the remaining memory. You can override this with the RW_RESERVED_MEMORY_BYTES environment variable or --reserved-memory-bytes startup option (minimum 512MB)."
128
+
}
129
+
},
130
+
{
131
+
"@type": "Question",
132
+
"name": "Why does CREATE MATERIALIZED VIEW take a long time in RisingWave?",
133
+
"acceptedAnswer": {
134
+
"@type": "Answer",
135
+
"text": "CREATE MATERIALIZED VIEW backfills all historical data from referenced tables to ensure a consistent snapshot. Use SHOW JOBS to check progress. To run non-blocking, set BACKGROUND_DDL=true before the CREATE statement. If progress stays at 0%, the cluster may be experiencing high latency."
136
+
}
137
+
},
138
+
{
139
+
"@type": "Question",
140
+
"name": "What does RisingWave memory usage consist of?",
141
+
"acceptedAnswer": {
142
+
"@type": "Answer",
143
+
"text": "RisingWave memory is divided into storage memory (block cache, meta cache, shared buffer), compute memory (streaming computation and queries), and reserved memory (system overhead). For example, an 8GB node uses approximately 2.13GB for storage, 3.47GB for compute, and 2.40GB reserved."
Copy file name to clipboardExpand all lines: faq/faq-when-to-use-risingwave.mdx
+58-54Lines changed: 58 additions & 54 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -90,59 +90,63 @@ Materialized views in RisingWave are fundamentally different from those in OLAP
90
90
-**Highly available**: Persisted to object storage with frequent checkpoints for fast failure recovery.
91
91
-**Resource isolation**: Streaming computation and ad-hoc queries can run on separate node groups to avoid interference.
92
92
93
-
<scripttype="application/ld+json">
94
-
{JSON.stringify({
95
-
"@context": "https://schema.org",
96
-
"@type": "FAQPage",
97
-
"mainEntity": [
93
+
<head>
94
+
<scripttype="application/ld+json">
95
+
{`
98
96
{
99
-
"@type": "Question",
100
-
"name": "Can RisingWave replace Flink SQL?",
101
-
"acceptedAnswer": {
102
-
"@type": "Answer",
103
-
"text": "Yes. RisingWave is a superset of Flink SQL in terms of capabilities. Users of Flink SQL can easily migrate to RisingWave. RisingWave also offers additional features not present in Flink SQL, such as cascading materialized views. RisingWave uses PostgreSQL syntax, which lowers the learning curve compared to Flink SQL."
104
-
}
105
-
},
106
-
{
107
-
"@type": "Question",
108
-
"name": "Is RisingWave a unified batch and streaming system?",
109
-
"acceptedAnswer": {
110
-
"@type": "Answer",
111
-
"text": "Yes, RisingWave fully supports both stream processing (continuous incremental computation) and batch processing (computation on stored data). RisingWave shines in stream processing and uses row-based storage optimized for point queries."
112
-
}
113
-
},
114
-
{
115
-
"@type": "Question",
116
-
"name": "Does RisingWave support transaction processing?",
117
-
"acceptedAnswer": {
118
-
"@type": "Answer",
119
-
"text": "RisingWave supports read-only transactions but does not support read-write transaction processing. It is designed to be positioned downstream from transactional databases, using CDC to replicate data for real-time stream processing."
120
-
}
121
-
},
122
-
{
123
-
"@type": "Question",
124
-
"name": "Why does RisingWave use row-based storage for tables?",
125
-
"acceptedAnswer": {
126
-
"@type": "Answer",
127
-
"text": "RisingWave uses row-based storage (Hummock) because the same storage engine serves both internal state management for streaming queries and data storage for serving queries. Row-based storage is well-suited for streaming state management and point queries."
128
-
}
129
-
},
130
-
{
131
-
"@type": "Question",
132
-
"name": "What are the differences between streaming databases and real-time OLAP databases?",
133
-
"acceptedAnswer": {
134
-
"@type": "Answer",
135
-
"text": "Streaming databases like RisingWave optimize for result freshness with real-time materialized views, monitoring, and alerting. OLAP databases like ClickHouse optimize for ad-hoc analytical query performance. Streaming databases use row-based storage while OLAP databases use columnar storage."
136
-
}
137
-
},
138
-
{
139
-
"@type": "Question",
140
-
"name": "How do materialized views in RisingWave differ from those in OLAP databases?",
141
-
"acceptedAnswer": {
142
-
"@type": "Answer",
143
-
"text": "Materialized views in RisingWave are updated synchronously in real time, strongly consistent across cascading views, and support full stream processing semantics. OLAP databases typically use best-effort periodic refresh and do not support cascading materialized views."
144
-
}
97
+
"@context": "https://schema.org",
98
+
"@type": "FAQPage",
99
+
"mainEntity": [
100
+
{
101
+
"@type": "Question",
102
+
"name": "Can RisingWave replace Flink SQL?",
103
+
"acceptedAnswer": {
104
+
"@type": "Answer",
105
+
"text": "Yes. RisingWave is a superset of Flink SQL in terms of capabilities. Users of Flink SQL can easily migrate to RisingWave. RisingWave also offers additional features not present in Flink SQL, such as cascading materialized views. RisingWave uses PostgreSQL syntax, which lowers the learning curve compared to Flink SQL."
106
+
}
107
+
},
108
+
{
109
+
"@type": "Question",
110
+
"name": "Is RisingWave a unified batch and streaming system?",
111
+
"acceptedAnswer": {
112
+
"@type": "Answer",
113
+
"text": "Yes, RisingWave fully supports both stream processing (continuous incremental computation) and batch processing (computation on stored data). RisingWave shines in stream processing and uses row-based storage optimized for point queries."
114
+
}
115
+
},
116
+
{
117
+
"@type": "Question",
118
+
"name": "Does RisingWave support transaction processing?",
119
+
"acceptedAnswer": {
120
+
"@type": "Answer",
121
+
"text": "RisingWave supports read-only transactions but does not support read-write transaction processing. It is designed to be positioned downstream from transactional databases, using CDC to replicate data for real-time stream processing."
122
+
}
123
+
},
124
+
{
125
+
"@type": "Question",
126
+
"name": "Why does RisingWave use row-based storage for tables?",
127
+
"acceptedAnswer": {
128
+
"@type": "Answer",
129
+
"text": "RisingWave uses row-based storage (Hummock) because the same storage engine serves both internal state management for streaming queries and data storage for serving queries. Row-based storage is well-suited for streaming state management and point queries."
130
+
}
131
+
},
132
+
{
133
+
"@type": "Question",
134
+
"name": "What are the differences between streaming databases and real-time OLAP databases?",
135
+
"acceptedAnswer": {
136
+
"@type": "Answer",
137
+
"text": "Streaming databases like RisingWave optimize for result freshness with real-time materialized views, monitoring, and alerting. OLAP databases like ClickHouse optimize for ad-hoc analytical query performance. Streaming databases use row-based storage while OLAP databases use columnar storage."
138
+
}
139
+
},
140
+
{
141
+
"@type": "Question",
142
+
"name": "How do materialized views in RisingWave differ from those in OLAP databases?",
143
+
"acceptedAnswer": {
144
+
"@type": "Answer",
145
+
"text": "Materialized views in RisingWave are updated synchronously in real time, strongly consistent across cascading views, and support full stream processing semantics. OLAP databases typically use best-effort periodic refresh and do not support cascading materialized views."
Copy file name to clipboardExpand all lines: get-started/intro.mdx
+29-1Lines changed: 29 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,4 +72,32 @@ For high-frequency telemetry and device data in connected environments such as l
72
72
### Streaming lakehouse
73
73
For real-time lakehouse architectures built on open formats such as Apache Iceberg. RisingWave continuously ingests data from Postgres, Kafka, and other operational systems, performs transformations, compacts small files, manages schema evolution, and writes data into Iceberg tables for unified analytics and long-term retention.
74
74
75
-
75
+
## See also
76
+
77
+
-[Quick start](/get-started/quickstart) — Install RisingWave and run your first streaming query
78
+
-[Source, Table, MV, and Sink](/get-started/source-table-mv-sink) — Understand the four core objects
79
+
-[Data ingestion](/ingestion/overview) — Connect to Kafka, databases, and more
80
+
-[Data processing](/processing/overview) — Streaming and ad-hoc SQL execution
81
+
-[Deployment options](/deploy/deployment-modes-overview) — Docker, Kubernetes, or Cloud
"description": "RisingWave is an open-source, PostgreSQL-compatible streaming database for real-time data ingestion, stream processing, low-latency serving, and Apache Iceberg management.",
0 commit comments