| 存储后端 | | |
| AWS S3 | ✅ | 通过 icebergS3() 或 iceberg() 别名 |
| GCS | ✅ | 通过 icebergS3() 或 iceberg() 别名 |
| Azure Blob 存储 | ✅ | 通过 icebergAzure() |
| HDFS | ⚠️ | 通过 icebergHDFS()。已弃用。 |
| 本地文件系统 | ✅ | 通过 icebergLocal() |
| 访问方式 | | |
| 表函数 | ✅ | icebergS3(),针对不同后端提供相应变体 |
| 表引擎 | ✅ | IcebergS3,针对不同后端提供相应变体 |
| 集群分布式读取 | ✅ | icebergS3Cluster, icebergAzureCluster, icebergHDFSCluster |
| 命名集合 | ✅ | 定义命名集合 |
| | |
| 读取特性 | | |
| 读取支持 | ✅ | 完整支持 SELECT 以及所有 ClickHouse SQL 函数 |
| 分区裁剪 | ✅ | 参见 分区裁剪。 |
| 隐式分区 | ✅ | 支持基于 Iceberg transform 的分区 |
| 分区演进 | ✅ | 支持读取分区规范随时间变化的表 |
| schema 演进 | ✅ | 支持列的添加、删除和重排序。参见 Schema evolution。 |
| 类型提升 / 扩展 | ✅ | int → long, float → double, decimal(P,S) → decimal(P',S),其中 P’ > P。参见 Schema evolution。 |
| 时间旅行 / 快照 | ✅ | 通过 iceberg_timestamp_ms 或 iceberg_snapshot_id 设置。参见 Time travel。 |
| 位置删除 | ✅ | 参见 处理已删除行。 |
| 相等删除 | ✅ | 仅表引擎支持,自 v25.8+ 起。参见 处理已删除行。 |
| Merge-on-read | ⚠️ | 实验性。支持删除操作。 |
| 格式版本 | ⚠️ | 支持 v1 和 v2。不支持 v3。 |
| 列统计信息 | ✅ | |
| 布隆过滤器 / puffin 文件 | ❌ | 不支持 puffin 文件中的布隆过滤器索引 |
| 虚拟列 | ✅ | _path, _file, _size, _time, _etag。参见 虚拟列。 |
| | |
| 写入特性 | | |
| 创建表 | ✅ | 实验性。需要 allow_insert_into_iceberg = 1。自 v25.7+ 起支持。参见 创建表。 |
| INSERT | ✅ | 自 26.2 起为 Beta。需要 allow_insert_into_iceberg = 1。参见插入数据。 |
| DELETE | ✅ | Experimental。需要 allow_insert_into_iceberg = 1。通过 ALTER TABLE ... DELETE WHERE 实现。参见删除数据。 |
| ALTER TABLE (schema 变更) | ✅ | Experimental。需要 allow_insert_into_iceberg = 1。支持添加、删除、修改和重命名列。参见Schema 演进。 |
| Compaction | ⚠️ | Experimental。需要 allow_experimental_iceberg_compaction = 1。将位置删除文件合并整理到数据文件中。参见Compaction。不支持其他 Iceberg 合并整理操作。 |
| UPDATE / MERGE | ❌ | 不支持。参见 Compaction。 |
| Copy-on-write | ❌ | 不支持 |
| Expire snapshots | ❌ | 不支持 |
| Remove orphan files | ❌ | 不支持 |
| 写入分区 | ✅ | 支持。 |
| 修改分区 | ❌ | 不支持从 ClickHouse 更改分区方案。ClickHouse 可以向分区方案已演进的 Iceberg 表写入。 |
| | |
| 元数据 | | |
| 分支与标签 | ❌ | 不支持 Iceberg 分支/标签引用 |
| 元数据文件解析 | ✅ | 支持通过目录、简单目录列表、version-hint 和特定路径来解析元数据。可通过 iceberg_metadata_file_path 和 iceberg_metadata_table_uuid 配置。参见元数据文件解析。 |
| 数据缓存 | ✅ | 与 S3/Azure/HDFS 存储引擎采用相同机制。参见数据缓存。 |
| 元数据缓存 | ✅ | manifest 和元数据文件会缓存在内存中。默认通过 use_iceberg_metadata_files_cache 启用。参见元数据缓存。 |