CREATE CATALOG
- reference
The CREATE CATALOG statement registers an external Apache Iceberg catalog with Enterprise Analytics, enabling Iceberg tables to be created on it as external collections.
Once a catalog is registered, create individual Iceberg tables on it using CREATE EXTERNAL COLLECTION.
Catalogs are globally unique and do not belong to an Analytics database.
For an overview of supported catalog types and authentication, see Iceberg Support.
Enterprise Analytics supports the following catalog types:
Syntax
CREATE CATALOG <catalog-name>
TYPE Iceberg
SOURCE <source-type>
AT <link-name>
[ WITH <object> ];
Arguments
- catalog-name
-
The name of the catalog entity in Enterprise Analytics. catalog-name must be globally unique.
- TYPE Iceberg
-
Specifies that this is an Apache Iceberg catalog.
- SOURCE
-
The catalog implementation to connect to. Accepted values:
AWS_GLUE,AWS_GLUE_REST,S3_TABLES,BIGLAKE_METASTORE,NESSIE,NESSIE_REST,REST.
- AT link-name
-
The link used to authenticate connections to the catalog service. The required link type differs by
SOURCE. See each catalog section on this page for details.
- WITH
-
A JSON object containing catalog-specific configuration properties. Required properties differ by
SOURCEtype, as described in each catalog section on this page.
Enterprise Analytics supports the following catalog types:
AWS Glue
AWS Glue does not require any WITH properties.
Authentication uses the AWS credentials in the specified AWS link, which authenticate any AWS service including AWS Glue.
To target an AWS Glue catalog in a different AWS account, provide the optional "glue.id" property in the WITH clause.
CREATE CATALOG myGlueCatalog
TYPE Iceberg
SOURCE AWS_GLUE
AT myAwsLink
WITH {};
AWS Glue REST
AWS Glue REST connects to the AWS Glue Iceberg REST endpoint using Sigv4-signed credentials from the specified AWS link.
CREATE CATALOG myGlueRestCatalog
TYPE Iceberg
SOURCE AWS_GLUE_REST
AT myAwsLink
WITH {
"uri": "https://glue.<aws-region>.amazonaws.com/iceberg",
"sigv4SigningRegion": "<aws-region>"
};
| Property | Description | Required |
|---|---|---|
|
URI of the AWS Glue Iceberg REST endpoint. |
Yes |
|
AWS region used to sign the Sigv4 credentials. |
Yes |
S3 Tables
S3 Tables connects to an Amazon S3 Tables bucket via the Iceberg REST endpoint using Sigv4-signed credentials.
Two signing configurations are supported — s3tables and glue — each using different values for uri and warehouse.
Using s3tables Signing
CREATE CATALOG myS3TablesCatalog
TYPE Iceberg
SOURCE S3_TABLES
AT myAwsLink
WITH {
"uri": "https://s3tables.<aws-region>.amazonaws.com/iceberg",
"warehouse": "<s3-tables-bucket-arn>",
"sigv4SigningName": "s3tables",
"sigv4SigningRegion": "<aws-region>"
};
Using glue Signing
CREATE CATALOG myS3TablesCatalog
TYPE Iceberg
SOURCE S3_TABLES
AT myAwsLink
WITH {
"uri": "https://glue.<aws-region>.amazonaws.com/iceberg",
"warehouse": "<account-id>:s3tablescatalog/<table-bucket-name>",
"sigv4SigningName": "glue",
"sigv4SigningRegion": "<aws-region>"
};
| Property | Description | Required |
|---|---|---|
|
REST endpoint URI — use the S3 Tables endpoint with |
Yes |
|
S3 Tables bucket ARN when signing with |
Yes |
|
Signing service name: |
Yes |
|
AWS region used to sign the Sigv4 credentials. |
Yes |
Google BigLake Metastore
Google BigLake Metastore is a REST-compatible Iceberg catalog backed by GCP. Authentication uses the Google credentials in the specified GCS link.
CREATE CATALOG myBiglakeCatalog
TYPE Iceberg
SOURCE BIGLAKE_METASTORE
AT myGcsLink
WITH {
"warehouse": "gs://my-iceberg-bucket/",
"uri": "https://biglake.googleapis.com/iceberg/v1/restcatalog",
"quotaProjectId": "my-gcp-project-id"
};
| Property | Description | Required |
|---|---|---|
|
GCS bucket used as the base path for table metadata and data files. |
Yes |
|
URI of the Google BigLake Metastore Iceberg REST endpoint. |
Yes |
|
GCP project ID for billing. |
Yes |
Nessie
Nessie provides its own catalog implementation with Git-like branching semantics. Authentication uses an HTTP link and supports basic auth, Bearer token, or OAuth 2.0.
CREATE CATALOG myNessieCatalog
TYPE Iceberg
SOURCE NESSIE
AT myHttpLink
WITH {
"uri": "http://<address:port>/api/v2",
"warehouse": "s3://my-iceberg-bucket/nessie/warehouse"
};
| Property | Description | Required |
|---|---|---|
|
URI of the Nessie server Iceberg endpoint. |
Yes |
|
Base path for table metadata and data files. |
Yes |
Nessie REST
Nessie REST uses the Nessie REST catalog implementation.
The uri encodes both the branch name and the warehouse name in its path.
Authentication uses an HTTP link and supports basic auth, Bearer token, or OAuth 2.0.
CREATE CATALOG myNessieRestCatalog
TYPE Iceberg
SOURCE NESSIE_REST
AT myHttpLink
WITH {
"uri": "http://<address:port>/iceberg/main%7Cwarehouse"
};
| Property | Description | Required |
|---|---|---|
|
URI of the Nessie REST catalog endpoint.
The path must include the branch and warehouse name in the form |
Yes |
REST
The REST source type connects Enterprise Analytics to any REST-compatible Iceberg catalog.
Authentication uses an HTTP link and supports basic auth, Bearer token, or OAuth 2.0.
CREATE CATALOG myRestCatalog
TYPE Iceberg
SOURCE REST
AT myHttpLink
WITH {
"uri": "<catalog-service-uri>"
};
| Property | Description | Required |
|---|---|---|
|
URI of the REST catalog endpoint. |
Yes |