引言

师成师成· 更新于 2026-09-28· 阅读 4 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

文档

Apache Iceberg 是面向海量分析数据集的开放表格式。 Iceberg 通过高性能的表格式为 Spark、Trino、PrestoDB、Flink、Hive 和 Impala 等计算引擎引入了表的概念,其使用方式与 SQL 表完全一致。

用户体验

Iceberg 避免令人不悦的意外。模式演进切实可用,不会在无意间取消删除数据。用户无需了解分区知识即可获得快速查询。

  • 模式演进支持新增、删除、更新或重命名,且没有副作用
  • 隐藏分区可防止用户操作失误,避免导致结果静默错误或查询极慢
  • 分区布局演进可在数据量或查询模式变化时更新表的布局
  • 时间旅行支持使用完全相同的表快照进行可复现的查询,也便于用户轻松查看变更
  • 版本回滚允许用户将表重置到良好状态,从而快速纠正问题

可靠性与性能

Iceberg 专为超大表而构建。Iceberg 已在生产环境中使用,单表数据量可达数十 PB,即便如此巨大的表也无需分布式 SQL 引擎即可读取。

  • 扫描计划速度快——读取表或查找文件无需分布式 SQL 引擎
  • 高级过滤——利用表元数据,通过分区和列级别的统计信息裁剪数据文件

Iceberg 旨在解决最终一致性云对象存储中的正确性问题。

  • 适用于任何云存储,在 HDFS 上通过避免 list 和 rename 操作来减少 NameNode 压力
  • 可串行化隔离——表变更具备原子性,读取方永远不会看到部分或未提交的变更
  • 多写入方并发采用乐观并发控制,即使写入发生冲突也会重试,以确保兼容的更新最终成功

开放标准

Iceberg 的设计与开发目标是成为开放的社区标准,并提供了规范以确保跨语言和跨实现的兼容性。

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

评论

登录后参与评论

正在加载评论…