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 aLOCATION 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:Dropping an Iceberg table
Iceberg tables are dropped using the standardDROP TABLE command. Dropping an Iceberg table removes it from Firebolt’s catalog but does not delete the underlying data in external storage.
CASCADE:
Comparison with other approaches
Firebolt provides multiple ways to work with Iceberg data:Remarks
- The
LOCATIONmust 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
CREATEstatement. - 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 INDEXto 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 REPLACEis not supported for Iceberg tables.IF NOT EXISTSis not supported for Iceberg tables.- Only Iceberg
LOCATIONobjects are supported. The location must point to a valid Iceberg catalog.