Firebolt’s Apache Iceberg write capabilities are currently in public preview. We are gathering feedback and expanding support for this feature.
Syntax
Parameters
| Parameter | Description |
|---|---|
<table_name> | Table name. Currently not used, but a value must be provided. |
<select_query> | Any valid select query. |
<location_name> | The name of an Iceberg LOCATION object with CATALOG = FILE_BASED. |
<setting_name> | The name of a system setting. |
<setting_value> | The value to assign to system setting <setting_name>. |
PARTITION BY
ThePARTITION BY clause defines how the Iceberg table is partitioned. You can partition by column names or by Iceberg partition transform functions.
PARTITION BY expressions:
Examples
The following example writes the results of aSELECT query into a new Iceberg table at s3://my-bucket/path/to/iceberg/output.
region:
Remarks
You can use theiceberg_insert_sharding setting to control the trade-off between parallelism and the number of output files per partition. By default, Firebolt tries to group files of the same partition on the same nodes, resulting in less load per node and fewer output files, which is usually preferred for query performance.
Limitations:
- Catalogs: only supports a FILE_BASED catalog in AWS S3 object storage. I.e. the data and metadata files will be written to the specified location in S3.
-
Data types: supports the Iceberg equivalents of Firebolt’s data types, except
GEOGRAPHY. - Metadata: only writes limited metadata that is optional per the Iceberg spec. Does not write column statistics, etc.
-
DML operations on Iceberg tables are not supported. Only the
CREATE ICEBERG TABLE AS SELECTandSELECTfromREAD_ICEBERG(...)operations are supported for Iceberg tables.