简介
iceberg是一种适用于大规模数据集的开放数据湖表格式,介于数据存储与数据查询中间的表格式定义。方便大数据集的读写,为数据湖分析提供通用的数据管理,支持多类大数据引擎:Spark、Hive、Trino、Flink、Impala等
支持特性
- Schema evolution
- Hidden partitioning
- Partition layout evolution
- Time travel
- snapshot
可靠性与性能
- Scan planning : 可以快速查找查询所需要的为难,过滤不需要的文件数据
- Advanced filtering
- Works with any cloud store
- Serializable isolation
- Multiple concurrent writers
snapshot
快照管理表元数据+数据,expire_snapshots 管理过期快照。可使用分支和标签管理用例
- 历史标签
|
|
- 使用审核分支来验证写入工作流程的示例
|
|
维护:
expireSnapshots过期快照删除
元数据删除:每次对表的变更都会对元数据/文件产生新的元数据,
属性 | 说明 |
---|---|
write.metadata.delete-after-commit.enabled | Whether to delete old tracked metadata files after each table commit |
write.metadata.previous-versions-max | he number of old metadata files to keep |
- deleteOrphanFiles删除孤儿文件
- rewriteDataFiles合并文件重写
- rewriteManifests重写元数据文件
Metrics Reporting
- ScanReport
- CommitReport
- Available Metrics Reporters
roadmap
- Core-General
- 多表事务
- 视图支持
- CDC支持
- 副本标签分支
- 即时文件合并
- 删除文件合并
- Z-order排序/
- Upsert支持
- Clients
- Python
- Rust
- Go
- Spec V2
- Spec V3