> ## Documentation Index
> Fetch the complete documentation index at: https://docs.risingwave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Iceberg catalog configuration

> Configure the catalog for your Apache Iceberg sources, sinks, and internal tables in RisingWave.

When creating an Iceberg source, sink, or internal table, you must configure a catalog. The catalog is responsible for managing the table's metadata, including its schema, partitioning strategy, and data file locations.

RisingWave supports two main types of catalogs: a **built-in catalog** which is managed by RisingWave, and **external catalogs**, which you manage.

## Built-in catalog

The built-in catalog is a service managed by RisingWave that simplifies the setup for internal Iceberg tables by removing the need to manage an external catalog. This is the recommended approach for getting started.

<CardGroup>
  <Card title="Built-in catalog" href="/iceberg/catalogs/internal">
    Use RisingWave’s internal metastore as a JDBC-compliant catalog.
  </Card>
</CardGroup>

## External catalogs

External catalogs are required when you need to connect to Iceberg tables that are managed by other systems. RisingWave supports several types of external catalogs.

<CardGroup>
  <Card title="AWS Glue" href="/iceberg/catalogs/glue">
    Integrate with AWS Glue Data Catalog.
  </Card>

  <Card title="JDBC" href="/iceberg/catalogs/jdbc">
    Stores metadata in a relational database like PostgreSQL.
  </Card>

  <Card title="REST" href="/iceberg/catalogs/rest">
    Uses a RESTful API to manage table metadata.
  </Card>

  <Card title="Lakekeeper" href="/iceberg/catalogs/lakekeeper">
    Deploy a self-hosted REST catalog with Lakekeeper.
  </Card>

  <Card title="Amazon S3 Tables" href="/iceberg/catalogs/s3-tables">
    An AWS-native REST-based catalog with SigV4 authentication.
  </Card>

  <Card title="Hive Metastore" href="/iceberg/catalogs/hive">
    Stores metadata using a Hive Metastore backend.
  </Card>

  <Card title="Snowflake" href="/iceberg/catalogs/snowflake">
    Uses Snowflake's built-in Iceberg catalog functionality.
  </Card>

  <Card title="Databricks Unity Catalog" href="/iceberg/catalogs/unity">
    Connect to Databricks-managed tables using Unity Catalog.
  </Card>
</CardGroup>

## Catalog parameters

You specify the catalog configuration in the `WITH` clause of a `CREATE SOURCE`, `CREATE SINK`, or `CREATE CONNECTION` statement.

| Parameter                     | Description                                                                                                                                                                                           |
| :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `catalog.type`                | The type of catalog. Supported values: `'storage'`, `'rest'`, `'rest_rust'`, `'hive'`, `'jdbc'`, `'glue'`, and `'snowflake'`. Defaults to `'storage'` if not specified.                               |
| `catalog.uri`                 | The URI for the catalog service. Required for `rest`, `hive`, `jdbc`, and `snowflake` catalog types.                                                                                                  |
| `catalog.name`                | A user-defined name for the catalog. Required for all types except `storage`.                                                                                                                         |
| `hosted_catalog`              | Set to `true` when using the [Built-in catalog](/iceberg/catalogs/internal).                                                                                                                          |
| `catalog.jdbc.user`           | Username for the JDBC catalog.                                                                                                                                                                        |
| `catalog.jdbc.password`       | Password for the JDBC catalog.                                                                                                                                                                        |
| `catalog.credential`          | Credentials for a REST catalog's OAuth2 flow.                                                                                                                                                         |
| `catalog.token`               | A bearer token for a REST catalog.                                                                                                                                                                    |
| `catalog.oauth2_server_uri`   | The token endpoint URI for a REST catalog's OAuth2 flow.                                                                                                                                              |
| `catalog.scope`               | The OAuth2 scope for a REST catalog.                                                                                                                                                                  |
| `catalog.rest.signing_region` | For Amazon S3 Tables: the AWS region for signing requests.                                                                                                                                            |
| `catalog.rest.signing_name`   | For Amazon S3 Tables: the service name for signing requests.                                                                                                                                          |
| `catalog.rest.sigv4_enabled`  | For Amazon S3 Tables: enables SigV4 signing. Must be `true`.                                                                                                                                          |
| `glue.region`                 | The AWS region for the Glue catalog.                                                                                                                                                                  |
| `glue.access.key`             | The AWS access key ID for Glue authentication. If not specified, defaults to `s3.access.key`.                                                                                                         |
| `glue.secret.key`             | The AWS secret access key for Glue authentication. If not specified, defaults to `s3.secret.key`.                                                                                                     |
| `glue.iam_role_arn`           | The IAM role ARN to assume for Glue catalog access via STS. When set, the connector assumes the specified role for Glue catalog operations.                                                           |
| `enable_config_load`          | If set to `true`, load AWS config/credentials from the environment (for example, to assume an IAM role via STS).                                                                                      |
| `vended_credentials`          | Enable vended credentials for a REST catalog. When set to `true` with `catalog.type = 'rest'`, requests credentials from the REST catalog server instead of managing them directly. Default: `false`. |
