Skip to main content
For an overview of querying, tuning, and exporting Iceberg tables, see the Iceberg guide. Creates an Iceberg table that is registered in Firebolt’s catalog and backed by an Apache Iceberg table in external storage. Once created, you can query it with regular SELECT statements just like a managed table, without needing to use the READ_ICEBERG table-valued function. The table’s schema is automatically inferred from the Iceberg metadata at creation time. Firebolt reads the Iceberg catalog to determine column names and types.
To export data from Firebolt into a new Iceberg table, use CREATE ICEBERG TABLE AS SELECT instead.

Syntax

Parameters

Examples

Creating an Iceberg table

The following example creates a LOCATION pointing to an Iceberg table in S3, then creates an Iceberg table that you can query directly. The schema is inferred from the Iceberg metadata, so no column definitions are specified.

Querying an Iceberg table

Once created, an Iceberg table can be queried like any other table in Firebolt:
You can also join Iceberg tables with Firebolt-managed tables:

Dropping an Iceberg table

Iceberg tables are dropped using the standard DROP TABLE command. Dropping an Iceberg table removes it from Firebolt’s catalog but does not delete the underlying data in external storage.
If a view depends on the Iceberg table, use CASCADE:

Comparison with other approaches

Firebolt provides multiple ways to work with Iceberg data:

Remarks

  • The LOCATION must reference an Iceberg source (SOURCE = ICEBERG). Using a non-Iceberg location will result in an error.
  • The table schema is inferred from the Iceberg metadata. Column definitions must not be specified in the CREATE statement.
  • All Firebolt query optimizations for Iceberg tables apply, including caching, pruning, and co-located joins.
  • Iceberg tables support aggregating indexes, which can be created with CREATE AGGREGATING INDEX to accelerate repeated aggregation queries.
  • Firebolt can automatically collect Automated Column Statistics (ACS) for Iceberg tables, enabling the query planner to generate more efficient execution plans.

Limitations

  • CREATE OR REPLACE is not supported for Iceberg tables.
  • IF NOT EXISTS is not supported for Iceberg tables.
  • Only Iceberg LOCATION objects are supported. The location must point to a valid Iceberg catalog.