- Read external Iceberg tables with
CREATE SOURCE, ad hoc queries, materialized views, or refreshableCREATE TABLE. - Write to external Iceberg tables with
CREATE SINK. - Create internal Iceberg tables with
CREATE TABLE ... ENGINE = iceberg, where RisingWave manages the table lifecycle and stores data in Iceberg format.
Support overview
Reading from Iceberg
For configuration details, see Ingest data from Iceberg tables.
Writing to Iceberg
For configuration details, see Deliver data to Iceberg tables and Iceberg write modes.
Internal Iceberg tables
For configuration details, see Create and manage internal Iceberg tables.
Catalog and storage support
For complete catalog parameters, see Iceberg catalog configuration. For storage parameters, see Object storage configuration.
Maintenance support
For setup and sizing, see Deploy a dedicated Iceberg compactor and Iceberg table maintenance.
Important limitations
CREATE SOURCEfor Iceberg is intended for append-only continuous ingestion. Use refreshableCREATE TABLEwithFULL_RELOADfor mutable external Iceberg tables.- Do not define columns in an Iceberg
CREATE SOURCE; RisingWave infers the schema from Iceberg metadata. refresh_modeis supported forCREATE TABLE, notCREATE SOURCE.- Append-only Iceberg sinks and append-only internal Iceberg tables must use merge-on-read mode.
- Additive schema evolution currently covers
ADD COLUMN; column drops, renames, and type changes require separate handling. - Catalog integrations can have role-specific limits. For example, Snowflake catalog is read-only in RisingWave, while the Databricks Unity Catalog integration is documented for Iceberg sinks.