REST, FILE_BASED, DATABRICKS_UNITY (as syntactic sugar on top of REST), SNOWFLAKE_OPEN_CATALOG (a REST-shaped catalog), AWS_GLUE, and S3_TABLES. Each catalog accepts a different set of parameters and credentials. Some vendor catalogs are served by these types rather than by a dedicated keyword: use REST for Snowflake Horizon Catalog. Amazon S3 Tables can be reached either through the dedicated S3_TABLES catalog or through AWS_GLUE.
Syntax
Parameters
Common Parameters
Iceberg Parameters
AWS Authentication Parameters
Use AWS authentication parameters forFILE_BASED, AWS_GLUE, and S3_TABLES catalogs.
OAuth Authentication Parameters
Use OAuth authentication parameters forREST, DATABRICKS_UNITY, or SNOWFLAKE_OPEN_CATALOG catalogs.
Iceberg Catalog-Specific Parameters
FILE_BASED Catalog
REST Catalog
SNOWFLAKE_OPEN_CATALOG Catalog
Snowflake Open Catalog is aREST-shaped catalog and takes the same parameters as REST.
DATABRICKS_UNITY Catalog
AWS_GLUE Catalog
TheAWS_GLUE catalog serves both the AWS Glue Data Catalog and Amazon S3 Tables, which are read through the same Glue Iceberg REST endpoint. The two differ only in CATALOG_ID.
S3_TABLES Catalog
Nightly FeatureExamples
File-based catalog
Used to access Iceberg tables directly from S3. For file-based Iceberg catalogs, use AWS key-based or role-based authentication inCREDENTIALS.
With access key and secret:
For role-based AWS access you can additionally set an external ID. An external ID is a value you choose and control that AWS checks when Firebolt assumes your role, adding a second condition on top of your account’s unique IAM principal. Configuring one is a recommended best practice. See IAM roles.
REST catalog
Used to access Iceberg in REST catalogs, that implement the Iceberg REST API spec. For generic REST Iceberg catalogs, use OAuth parameters forCREDENTIALS.
STORAGE_CREDENTIALS with AWS object-storage credentials, used as a fallback if the catalog does not have credential vending enabled.
STORAGE_CREDENTIALS also accepts role-based AWS authentication (AWS_ROLE_ARN, optional AWS_ROLE_EXTERNAL_ID) and works the same way on DATABRICKS_UNITY and SNOWFLAKE_OPEN_CATALOG locations.
Databricks Unity Catalog
Used to access Iceberg tables in a Databricks Unity Catalog. Offered as syntactic sugar on top ofCATALOG = REST, for users who may be more familiar with Databricks Unity Catalog terminology.
For configuring Unity Catalog in your Databricks workspace, see Databricks - Set up and manage Unity Catalog. Note that you will need to enable credential vending in your Unity Catalog, see Databricks - Unity Catalog credential vending for external system access.
For general information about reading Databricks tables from Iceberg clients, see Databricks - Read Databricks tables from Iceberg clients.
For Databricks Unity Catalogs, use OAuth parameters for CREDENTIALS.
BEARER_TOKEN parameter.
Snowflake Open catalog
Iceberg tables in Snowflake Open Catalog can be read by using aLOCATION with CATALOG = SNOWFLAKE_OPEN_CATALOG, a REST-shaped catalog.
For setting up a Snowflake Open Catalog in your account, see Snowflake - Snowflake Open Catalog overview. Note that you will need to enable credential vending for your Iceberg tables, see Snowflake - Use catalog-vended credentials for Apache Iceberg™ tables.
For general information about reading Snowflake Open Catalog tables from Iceberg clients, see Snowflake - Checking your REST catalog configuration.
For Snowflake Open catalogs, use OAuth parameters for CREDENTIALS.
Snowflake Horizon Catalog
Iceberg tables managed by Snowflake Horizon Catalog are read through Snowflake’s Iceberg REST endpoint, so useCATALOG = REST.
Snowflake Horizon Catalog authenticates with a Snowflake Programmatic Access Token (PAT), which is a single token rather than a client ID and secret pair. Pass the PAT as OAUTH_CLIENT_SECRET and omit OAUTH_CLIENT_ID.
AWS Glue catalog
Used to access Iceberg tables in AWS Glue Data Catalog. With access key and secret:CATALOG = AWS_GLUE with the S3 Tables catalog ID <account_id>:s3tablescatalog/<table_bucket_name> as CATALOG_ID. For a direct connection that doesn’t go through Glue, see S3 Tables catalog.
s3tables and glue read permissions plus lakeformation:GetDataAccess. See Amazon S3 Tables for setup.
For role-based AWS access you can additionally set an external ID. An external ID is a value you choose and control that AWS checks when Firebolt assumes your role, adding a second condition on top of your account’s unique IAM principal. Configuring one is a recommended best practice. See IAM roles.
GetDataAccess permission - see AWS Lake Formation: Underlying data access control.
S3 Tables catalog
Nightly Feature Used to access Amazon S3 Tables directly through the S3 Tables Iceberg REST endpoint, without configuring AWS Glue. The endpoint speaks the standard Iceberg REST API spec but authenticates with AWS SigV4, soCREDENTIALS takes AWS key-based or role-based authentication. OAuth credentials and STORAGE_CREDENTIALS are not accepted.
WAREHOUSE is the table-bucket ARN. Firebolt derives the signing region and, for standard AWS Regions, the endpoint URL from it, so URL is optional. See the S3_TABLES parameters for when URL is required.
With role only (URL derived from the ARN):
For role-based AWS access you can additionally set an external ID. An external ID is a value you choose and control that AWS checks when Firebolt assumes your role, adding a second condition on top of your account’s unique IAM principal. Configuring one is a recommended best practice. See IAM roles.
s3tables permissions to read the table bucket, list its namespaces and tables, and read table metadata and data: