- 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.
Per-table metadata relations
You can query metadata for a single Iceberg object through relation names with an Iceberg metadata suffix:- Iceberg engine tables created with
CREATE TABLE ... ENGINE = iceberg - Iceberg sources created with
CREATE SOURCE ... WITH (connector = 'iceberg', ...) - Standalone Iceberg sinks created with
CREATE SINK ... WITH (connector = 'iceberg', ...)
SELECT operations such as projection, filters, and LIMIT when querying these relations. Time travel is supported for $manifests and $files with FOR SYSTEM_TIME AS OF or FOR SYSTEM_VERSION AS OF, but not for $snapshots.
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.