更新时间:2026-06-08 GMT+08:00
Iceberg
Iceberg原理介绍
Iceberg是一种开放的数据湖表格式,可以基于Iceberg快速地在HDFS或OBS上构建自己的数据湖存储服务。
图1 Iceberg基本架构
Iceberg该功能当前处于公测阶段,如需使用请提交工单申请开通。
如需使用Iceberg,请确保MRS集群内已安装Spark服务。
Iceberg特性
Iceberg具有如下特性:
- 构建于存储格式之上的数据组织方式
- 提供ACID能力,支持事务特性和并发能力
- 提供行级别的数据修改能力
- 支持Schema演进功能
- 支撑分区演进功能
- 支持隐式分区功能
- 支持历史版本回溯功能
Iceberg关键技术和优势
- 关键技术
- 计算优势
- 灵活的分区与布局优化,提升查询性能
- 隐式分区:分区字段与表结构融为一体,用户无需感知分区路径,直接通过SQL过滤分区字段即可,简化查询逻辑。
- 分区演进:支持动态调整分区策略,例如从按 “天” 分区改为按 “小时” 分区,无需重建表或迁移数据。
- 数据布局优化:内置分桶、排序能力,可根据查询模式优化数据文件的物理存储,减少查询时的IO开销;同时支持重写数据文件操作,合并小文件、拆分大文件,避免 “小文件风暴”。
- 开放兼容的生态,适配多引擎与多平台
- 支持多计算引擎:原生兼容Spark、Flink、HetuEngine等主流计算引擎,同一张Iceberg表可被不同引擎同时读写,打破引擎间的壁垒。
- 适配多存储系统:支持HDFS、OBS、S3等各类对象存储和分布式文件系统,无需绑定特定存储平台。
- 开放标准与社区:作为Apache顶级项目,采用开放的表格式规范,避免厂商锁定,社区活跃且持续迭代功能。
- 精细化的元数据管理,简化数据治理
- 中心化元数据:将表的元数据(模式、分区、快照、文件列表等)存储为结构化文件,而非依赖Hive Metastore等外部组件,元数据查询更高效。
- Schema演化:支持灵活的表结构变更,包括新增列、删除列、重命名列、修改列类型等,变更无需全表扫描或重写,且对历史数据兼容。
- 数据生命周期管理:内置过期快照清理、数据文件归档等能力,结合快照机制可实现自动化的数据留存与清理策略。
- 灵活的分区与布局优化,提升查询性能
父主题: 组件介绍