Principle:Risingwavelabs Risingwave Iceberg Catalog Operations
| Knowledge Sources | |
|---|---|
| Domains | Data_Lake, Metadata_Management, Iceberg |
| Last Updated | 2026-02-09 07:00 GMT |
Overview
A metadata management mechanism that provides JNI-bridged access to Apache Iceberg catalog operations for table creation, loading, updating, and deletion from the Rust streaming engine.
Description
Iceberg Catalog Operations provide the metadata management layer for RisingWave's Iceberg integration. Since Iceberg catalogs are implemented in Java (Hive Metastore, AWS Glue, REST catalogs), RisingWave uses a JNI bridge to access them from its Rust core engine.
The JniCatalogWrapper class acts as a proxy that:
- Loads an Iceberg catalog implementation via CatalogUtil.loadCatalog()
- Delegates operations to the CatalogHandlers REST compatibility layer
- Serializes/deserializes requests and responses as JSON strings for JNI transport
Supported catalog types include:
- Storage (Hadoop): Direct filesystem-based metadata
- Hive: Hive Metastore-backed catalog
- Glue: AWS Glue Data Catalog
- REST: Iceberg REST catalog protocol
- JDBC: Database-backed catalog
Usage
Use Iceberg catalog operations when:
- Creating new Iceberg tables from RisingWave
- Managing table schemas and partitions
- Querying table existence and metadata
- Dropping tables during cleanup
Theoretical Basis
Iceberg catalogs provide a centralized metadata registry:
Catalog API:
loadTable(identifier) → table metadata + location
createTable(namespace, schema, partition_spec) → new table
updateTable(identifier, updates) → atomic metadata commit
dropTable(identifier) → remove table
tableExists(identifier) → boolean
JNI Bridge Pattern:
Rust → JNI call → JniCatalogWrapper.method(json_string)
→ Iceberg Java SDK → Catalog Backend
→ JSON response string → JNI return → Rust