跳转到主内容
跳转到主内容

支持矩阵

本页提供 ClickHouse 湖仓集成的全面支持矩阵,涵盖各湖仓表格式可用的特性、ClickHouse 可连接的数据目录,以及每个目录所支持的具体功能。

Lakehouse 格式支持

ClickHouse 集成支持四种 lakehouse 表格式:Apache IcebergDelta LakeApache HudiApache Paimon。在下方选择一种格式以查看对应的支持矩阵。

图例: ✅ 已支持 | ⚠️ 部分支持 / 实验性 | ❌ 不支持

功能状态说明
存储后端
AWS S3通过 icebergS3() 或其 iceberg() 别名
GCS通过 icebergS3() 函数或 iceberg() 函数别名
Azure Blob Storage通过 icebergAzure()
HDFS⚠️通过 icebergHDFS()。已弃用。
本地文件系统通过 icebergLocal()
访问方式
表函数icebergS3() 并针对不同后端提供变体
表引擎IcebergS3,针对不同后端提供变体
集群分布式读取icebergS3Cluster, icebergAzureCluster, icebergHDFSCluster
命名集合定义命名集合
读取功能
读操作支持对所有 ClickHouse SQL 函数的 SELECT 查询提供完整支持
分区剪枝参见分区裁剪
隐藏式分区支持基于 Iceberg transform 的分区方案
分区演进支持读取分区规范随时间演变的表
模式演进列的添加、删除和重新排序。请参阅架构演进
类型提升/扩展intlongfloatdoubledecimal(P,S)decimal(P',S),其中 P' > P。参见模式演进
时间旅行/快照通过 iceberg_timestamp_msiceberg_snapshot_id 配置实现。参见时间回溯
基于位置的删除请参阅处理已删除行
等值删除仅支持表引擎,自 v25.8+ 起。参见 Processing deleted rows
读时合并⚠️实验性功能。可用于删除操作
格式版本⚠️支持 v1 和 v2,不支持 v3。
列统计信息
Bloom 过滤器 / Puffin 文件不支持 Puffin 文件中的 Bloom 过滤器索引
虚拟列_path, _file, _size, _time, _etag。参见虚拟列
写入功能
创建表实验特性。需将 allow_insert_into_iceberg 设为 1。自 v25.7+ 起提供。参见创建表
INSERT自 26.2 版本起为 Beta。需要 allow_insert_into_iceberg = 1。参见插入数据
DELETE实验性功能。需要 allow_insert_into_iceberg = 1。通过执行 ALTER TABLE ... DELETE WHERE。参见删除数据
ALTER TABLE(Schema 变更)实验性功能。需要 allow_insert_into_iceberg = 1。支持添加、删除、修改和重命名列。参见模式演进
压缩⚠️实验性功能。需要将 allow_experimental_iceberg_compaction 设置为 1。将 position delete 文件合并到数据文件中。参见 Compaction。不支持其他 Iceberg 压缩操作。
UPDATE / MERGE不支持,请参阅“压缩”。
写时复制不支持
快照过期处理不支持
删除孤立文件不支持
写入分区已支持。
修改分区方案ClickHouse 不支持更改分区方案。ClickHouse 可以向分区方案已演进的 Iceberg 表写入数据。
元数据
分支和标签不支持 Iceberg 分支和标签引用。
元数据文件解析通过 catalogs、简单目录列举、使用 'version-hint' 以及特定路径来进行元数据解析。可通过 iceberg_metadata_file_pathiceberg_metadata_table_uuid 进行配置。参见 Metadata file resolution
数据缓存与 S3/Azure/HDFS 存储引擎采用相同机制。参见数据缓存
元数据缓存清单文件和元数据文件缓存在内存中。默认情况下通过 use_iceberg_metadata_files_cache 启用。参见元数据缓存

目录支持

ClickHouse 可以使用 DataLakeCatalog 数据库引擎连接到外部数据目录,该引擎会将目录暴露为一个 ClickHouse 数据库。目录中注册的表会自动出现,并且可以使用标准 SQL 进行查询。

当前支持以下目录。完整的配置说明请参阅各目录的参考指南。

CatalogFormatsReadCreate tableINSERTReference guide
AWS GlueIceberg✅ BetaGlue 目录指南
Databricks UnityDelta, Iceberg✅ ExperimentalUnity 目录指南
Iceberg RESTIceberg✅ BetaREST 目录指南
LakekeeperIceberg✅ ExperimentalLakekeeper 目录指南
Project NessieIceberg✅ ExperimentalNessie 目录指南
Microsoft OneLakeIceberg✅ BetaOneLake 目录指南

目前所有目录集成都需要启用实验性或 Beta 设置,并且仅提供只读访问——可以通过目录连接查询表,但不能创建或写入。要从目录中将数据加载到 ClickHouse 中以加速分析,请使用 INSERT INTO SELECT,具体说明参见加速分析指南。要将数据写回开放表格式,请按照写入数据指南中的说明创建独立的 Iceberg 表。