Setup
1. Ingest source data
2. Create a materialized view to transform data
3. Create the Iceberg sink
4. Query the Iceberg table from another engine (optional)
Key points
type = 'append-only'for event streams;type = 'upsert'for tables with primary keys (requiresprimary_keyoption)- RisingWave automatically handles Iceberg compaction, small-file optimization, and snapshot cleanup — no external scheduler needed
- Data written to Iceberg is immediately readable by Spark, Trino, DuckDB, and other Iceberg-compatible engines
- For upsert mode:
CREATE SINK ... WITH (type = 'upsert', primary_key = 'id', ...)
Next steps
- Lakehouse ingestion recipe — full CDC + Kafka → Iceberg pipeline
- Iceberg overview — catalog types, write modes, maintenance