WITH
clause of CREATE SOURCE
, CREATE SINK
, and CREATE CONNECTION
statements.
Catalog parameters
Parameter | Description | Required (Conditional) |
---|---|---|
catalog.name | The name of the Iceberg catalog. This is a user-defined identifier. Optional for the storage catalog, but required for all other catalog types. | Conditional |
catalog.type | The type of Iceberg catalog to use. Supported values:
'storage' . | No (defaults to storage ) |
catalog.uri | The URI of the catalog. The required format depends on the catalog.type :
| Conditional |
catalog.credential | Credential for accessing the Iceberg catalog, used to exchange for a token in the OAuth2 client credentials flow. Applicable only in the rest catalog. | No |
catalog.token | A Bearer token for accessing the Iceberg catalog, used for interaction with the server. Applicable only in the rest catalog. | No |
catalog.oauth2_server_uri | The oauth2_server_uri for accessing the Iceberg catalog, serving as the token endpoint URI to fetch a token if the rest catalog is not the authorization server. Applicable only in the rest catalog. | No |
catalog.scope | Scope for accessing the Iceberg catalog, providing additional scope for OAuth2. Applicable only in the rest catalog. | No |
catalog.jdbc.user | Username for JDBC catalog. | No |
catalog.jdbc.password | Password for JDBC catalog. | No |
hosted_catalog | Conditional. Set to true when creating an Iceberg connection to use RisingWave’s built-in hosted catalog. This is only applicable when creating tables with the Iceberg table engine. |
Hosted Iceberg catalog
For scenarios where you create and manage Iceberg tables natively within RisingWave using the Iceberg table engine, you have the option to use the Hosted Iceberg Catalog. This is a built-in catalog service that simplifies setup by eliminating the need to configure and manage an external catalog service. For a complete guide on how it works, its benefits, and how to use it, see Hosted Iceberg catalog.External catalogs
External catalogs are required when you read from or write to existing Iceberg tables that are managed outside of RisingWave. They can also be used with the Iceberg table engine if you need to integrate with an existing catalog infrastructure. RisingWave supports the following external catalog types:Storage catalog
Thestorage
catalog stores all metadata in the underlying file system, such as Hadoop or S3. Currently, we only support S3 as the underlying file system.
Example
Example
REST catalog
The REST catalog uses a RESTful interface to manage table metadata.Example
JDBC catalog
The JDBC catalog stores metadata in a relational database like PostgreSQL.Example
Glue catalog
AWS Glue Data Catalog provides a centralized metadata store for table definitions.Example
Snowflake catalog
The Snowflake catalog uses Snowflake’s built-in Iceberg catalog functionality.Example
Hive Metastore catalog
The Hive Metastore catalog stores metadata using a Hive Metastore backend.Example
Choosing the right catalog
- For reading from or writing to existing Iceberg tables, you must use an external catalog that matches the one used by the external system.
- When creating new Iceberg tables with RisingWave’s table engine:
- The hosted catalog is recommended for new projects, rapid prototyping, and simpler setups.
- An external catalog is suitable when you need to integrate with existing enterprise catalog infrastructure (like AWS Glue) or share the catalog with other systems.
Next steps
- Configure object storage: See Object storage configuration.
- Use the hosted catalog: See the Hosted Iceberg catalog guide.
- Ingest from external tables: See Ingest data from Iceberg sources.
- Deliver to external tables: See Deliver data to Iceberg sinks.
- Create native tables: See the Create and manage native Iceberg tables guide.