| Storage backends | | |
| AWS S3 | ✅ | Via icebergS3() or iceberg() alias |
| GCS | ✅ | Via icebergS3() or iceberg() alias |
| Azure Blob Storage | ✅ | Via icebergAzure() |
| HDFS | ⚠️ | Via icebergHDFS(). Deprecated. |
| Local filesystem | ✅ | Via icebergLocal() |
| Access methods | | |
| Table function | ✅ | icebergS3() with variants per backend |
| Table engine | ✅ | IcebergS3 with variants per backend |
| Cluster-distributed reads | ✅ | icebergS3Cluster, icebergAzureCluster, icebergHDFSCluster |
| Named collections | ✅ | Defining a named collection |
| | |
| Read features | | |
| Read support | ✅ | Full SELECT support with all ClickHouse SQL functions |
| Partition pruning | ✅ | See Partition pruning. |
| Hidden partitioning | ✅ | Iceberg transform-based partitioning supported |
| Partition evolution | ✅ | Reading tables with changing partition specs over time supported |
| Schema evolution | ✅ | Column addition, removal, and reordering. See Schema evolution. |
| Type promotion / widening | ✅ | int → long, float → double, decimal(P,S) → decimal(P',S) where P’ > P. See Schema evolution. |
| Time travel / snapshots | ✅ | Via iceberg_timestamp_ms or iceberg_snapshot_id settings. See Time travel. |
| Position deletes | ✅ | See Processing deleted rows. |
| Equality deletes | ✅ | Table engine only, from v25.8+. See Processing deleted rows. |
| Merge-on-read | ⚠️ | Experimental. Supported for delete operations. |
| Format versions | ⚠️ | v1 and v2 supported. V3 not supported. |
| Column statistics | ✅ | |
| Bloom filters / puffin files | ❌ | Bloom filter indexes in puffin files not supported |
| Virtual columns | ✅ | _path, _file, _size, _time, _etag. See Virtual columns. |
| | |
| Write features | | |
| Table creation | ✅ | Experimental. Requires allow_insert_into_iceberg = 1. From v25.7+. See Creating a table. |
| INSERT | ✅ | Beta from 26.2. Requires allow_insert_into_iceberg = 1. See Inserting data. |
| DELETE | ✅ | Experimental. Requires allow_insert_into_iceberg = 1. Via ALTER TABLE ... DELETE WHERE. See Deleting data. |
| ALTER TABLE (schema changes) | ✅ | Experimental. Requires allow_insert_into_iceberg = 1. Add, drop, modify, rename columns. See Schema evolution. |
| Compaction | ⚠️ | Experimental. Requires allow_experimental_iceberg_compaction = 1. Merges position delete files into data files. See Compaction. Other Iceberg compaction operations not supported. |
| UPDATE / MERGE | ❌ | Not supported. See Compaction. |
| Copy-on-write | ❌ | Not supported |
| Expire snapshots | ❌ | Not supported |
| Remove orphan files | ❌ | Not supported |
| Writing partitions | ✅ | Supported. |
| Altering partitions | ❌ | The changing of the partitioning scheme from ClickHouse is not supported. ClickHouse can write to iceberg tables which have an evolved partitioning. |
| | |
| Metadata | | |
| Branching and tagging | ❌ | Iceberg branch/tag references not supported |
| Metadata file resolution | ✅ | Support for metadata resolution through catalogs, simple directory listing, using ‘version-hint’ and specific path. Configurable via iceberg_metadata_file_path and iceberg_metadata_table_uuid. See Metadata file resolution. |
| Data caching | ✅ | Same mechanism as S3/Azure/HDFS storage engines. See Data cache. |
| Metadata caching | ✅ | Manifest and metadata files cached in memory. Enabled by default via use_iceberg_metadata_files_cache. See Metadata cache. |