Apache Iceberg 是一个用于大规模分析数据集的开源表格格式。Iceberg 为计算引擎(包括 Spark、Trino、PrestoDB、Flink、Hive 和 Impala)提供了表格支持,采用高性能的表格格式,使其表现得像 SQL 表一样。

用户体验

Iceberg 避免了令人不快的意外。提供有效的模式演化功能,且不会无意中删除数据。用户无需了解分区即可获得快速查询。

  • 模式演化:支持添加、删除、更新或重命名,没有副作用。
  • 隐藏分区:防止用户犯错,避免出现默默错误的结果或极其缓慢的查询。
  • 分区布局演化:可以随着数据量或查询模式的变化更新表格的布局。
  • 时间旅行:允许可重复的查询,使用完全相同的表快照,或者让用户轻松查看变化。
  • 版本回滚:允许用户通过将表格恢复到良好的状态,快速纠正问题。

可靠性与性能

Iceberg 是为大规模表格而构建的。在生产环境中,Iceberg 可处理包含数十个 PB(拍字节)数据的单个表格,且即便是这些巨大的表格,也可以在没有分布式 SQL 引擎的情况下读取。

  • 扫描规划速度快:无需分布式 SQL 引擎即可读取表格或查找文件。
  • 高级过滤:数据文件通过分区和列级别的统计信息进行修剪,利用表格元数据进行优化。
  • 解决一致性问题:Iceberg 设计用于解决云对象存储中的最终一致性问题。
  • 兼容任何云存储,并且在 HDFS 中通过避免列出和重命名,减少了 NN(名称节点)拥堵。
  • 可序列化隔离:表格更改是原子的,读取器永远不会看到部分或未提交的更改。
  • 多个并发写入:使用乐观并发控制,并会在写入冲突时重试,确保兼容的更新成功。

开放标准

Iceberg 设计和开发为开源社区标准,并提供了规范,确保在不同语言和实现之间的兼容性。

Apache Iceberg 是开源的,由 Apache 软件基金会开发。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐