Deliver data to Elasticsearch
Elasticsearch is the distributed search and analytics engine at the heart of the Elastic Stack.
Quick Start
Connect in minutes with SQL
Use CREATE SINK to deliver processed data from RisingWave to Elasticsearch. Define your transformation logic in SQL and let RisingWave handle delivery, retries, and exactly-once semantics.
CREATE SINK elasticsearch_sink AS
SELECT
order_status,
COUNT(*) as order_count,
SUM(total_amount) as total_revenue,
AVG(total_amount) as avg_order_value,
MIN(last_updated) as first_order_time,
MAX(last_updated) as last_order_time
FROM orders_rw
WITH (
connector = 'elasticsearch',
primary_key = 'user_id',
index = 'user_index',
url = 'http://localhost:9200',
username = 'user_name',
password = 'secure_password',
delimiter = ','
);For comprehensive configuration details, please refer to the Elasticsearch connector documentation.
Capabilities
What you can do with RisingWave + Elasticsearch
Continuous Delivery
Automatically sink processed results from RisingWave to Elasticsearch as new data arrives. No batch jobs needed.
Exactly-once Semantics
Guaranteed data correctness when delivering to Elasticsearch with barrier-based checkpointing.
Upsert & Append
Support both append-only and upsert modes when sinking to Elasticsearch, depending on your use case.
Sink Decoupling
Built-in buffering ensures RisingWave stays stable even if Elasticsearch experiences temporary slowdowns.
Resources
Learn more
Start streaming in minutes
Connect to Elasticsearch with just a few lines of SQL. No infrastructure to manage, no code to write.