Skip to main content
Creates a new location object in your Firebolt account, which is a secure, reusable object that stores the connection details and credentials for Iceberg data sources. Instead of entering these details each time you run a query or create a table, you can use a location object. This document captures specific and examples for location objects for Iceberg. For a comprehensive guide to LOCATION objects, see LOCATION objects. For more on location objects syntax in general, see CREATE LOCATION. Iceberg locations currently support four catalog types: REST, FILE_BASED, DATABRICKS_UNITY (as syntactic sugar on top of REST), and AWS_GLUE. Each catalog accepts a different set of parameters and credentials. Topics:

Syntax

Parameters

Common Parameters

Iceberg Parameters

AWS Authentication Parameters

Use AWS authentication parameters for FILE_BASED and AWS_GLUE catalogs.

OAuth Authentication Parameters

Use OAuth authentication parameters for REST or DATABRICKS_UNITY catalogs.

Iceberg Catalog-Specific Parameters

FILE_BASED Catalog
REST Catalog
DATABRICKS_UNITY Catalog
AWS_GLUE Catalog

Examples

Register Iceberg tables for easy querying. You can use CREATE ICEBERG TABLE to register an Iceberg table in Firebolt’s catalog, allowing you to query it with regular SELECT statements. Alternatively, wrap READ_ICEBERG calls in a view. See Simplifying queries with views for examples.

File-based catalog

Used to access Iceberg tables directly from S3. For file-based Iceberg catalogs, use AWS key-based or role-based authentication in CREDENTIALS. With access key and secret:
With access key, secret, and session token:
With role:
With role and external id:

REST catalog

Used to access Iceberg in REST catalogs, that implement the Iceberg REST API spec. For generic REST Iceberg catalogs, use OAuth parameters for CREDENTIALS.

Databricks Unity Catalog

Used to access Iceberg tables in a Databricks Unity Catalog. Offered as syntactic sugar on top of CATALOG = 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.
If you’re using a PAT Databricks - Authenticate with Databricks personal access tokens (legacy), you can pass it via the BEARER_TOKEN parameter.

Snowflake Open catalog (as a generic REST catalog)

Iceberg tables in Snowflake Open Catalog can currently be read by using a LOCATION with CATALOG = REST. 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.

AWS Glue catalog

Used to access Iceberg tables in AWS Glue Data Catalog. With access key and secret:
With role:
Your IAM credentials must have the following permissions:
Your IAM credentials must also have permissions to access the underlying S3 storage. See Use AWS roles to access S3 for details. (Note that this may not be needed if you are using Lake Formation to manage access.) (Optional) Lake Formation If you use Lake Formation for access control, you’ll need to grant your IAM credentials permissions to Lake Formation, and register the underlying S3 location with Lake Formation: Your IAM credentials will need the GetDataAccess permission - see AWS Lake Formation: Underlying data access control.
You’ll need to register your underlying S3 storage location with Lake Formation - see AWS Lake Formation: Adding an Amazon S3 location to your data lake. If you want Lake Formation to vend temporary credentials to access your underlying storage, you will need to configure Lake Formation to allow Firebolt’s external engine to access data in your S3 - see AWS Lake Formation: Application integration for full table access. If credential vending is enabled, it is recommended to not grant your IAM credentials access to your underlying S3 storage. This helps ensure that any storage access is using the vended credentials only.