【数据湖】Iceberg 简介
Apache Iceberg 是一个用于大规模分析数据集的开源表格格式。Iceberg 为计算引擎(包括 Spark、Trino、PrestoDB、Flink、Hive 和 Impala)提供了表格支持,采用高性能的表格格式,使其表现得像 SQL 表一样。
·
Apache Iceberg 是一个用于大规模分析数据集的开源表格格式。Iceberg 为计算引擎(包括 Spark、Trino、PrestoDB、Flink、Hive 和 Impala)提供了表格支持,采用高性能的表格格式,使其表现得像 SQL 表一样。
用户体验
Iceberg 避免了令人不快的意外。提供有效的模式演化功能,且不会无意中删除数据。用户无需了解分区即可获得快速查询。
- 模式演化:支持添加、删除、更新或重命名,没有副作用。
- 隐藏分区:防止用户犯错,避免出现默默错误的结果或极其缓慢的查询。
- 分区布局演化:可以随着数据量或查询模式的变化更新表格的布局。
- 时间旅行:允许可重复的查询,使用完全相同的表快照,或者让用户轻松查看变化。
- 版本回滚:允许用户通过将表格恢复到良好的状态,快速纠正问题。
可靠性与性能
Iceberg 是为大规模表格而构建的。在生产环境中,Iceberg 可处理包含数十个 PB(拍字节)数据的单个表格,且即便是这些巨大的表格,也可以在没有分布式 SQL 引擎的情况下读取。
- 扫描规划速度快:无需分布式 SQL 引擎即可读取表格或查找文件。
- 高级过滤:数据文件通过分区和列级别的统计信息进行修剪,利用表格元数据进行优化。
- 解决一致性问题:Iceberg 设计用于解决云对象存储中的最终一致性问题。
- 兼容任何云存储,并且在 HDFS 中通过避免列出和重命名,减少了 NN(名称节点)拥堵。
- 可序列化隔离:表格更改是原子的,读取器永远不会看到部分或未提交的更改。
- 多个并发写入:使用乐观并发控制,并会在写入冲突时重试,确保兼容的更新成功。
开放标准
Iceberg 设计和开发为开源社区标准,并提供了规范,确保在不同语言和实现之间的兼容性。
Apache Iceberg 是开源的,由 Apache 软件基金会开发。
更多推荐
所有评论(0)