Apache Iceberg简介
Apache Iceberg是用于大型分析数据集的开放表格格式。Iceberg通过使用高性能的表格格式,将表格添加到Spark、Trino、PrestoDB、Flink、Hive和Impala等计算引擎中,就像操作SQL表格一样。
用户体验
Iceberg避免了令人不愉快的惊喜。模式演化工作正常,并且不会意外地取消删除数据。用户无需了解分区即可获得快速查询。
- 模式演化支持添加、删除、更新或重命名操作,并且没有副作用。
- 隐藏的分区可以防止用户错误导致静默不正确的结果或极慢的查询。
- 分区布局演化可以根据数据量或查询模式的变化来更新表格的布局。
- 时间旅行功能可以实现使用完全相同的表格快照进行可重现的查询,或者让用户轻松查看更改。
- 版本回滚允许用户通过将表格重置为良好状态来快速纠正问题。
可靠性和性能
Iceberg专为大型表格而构建。在生产环境中,Iceberg被用于单个表格可能包含数十PB的数据,甚至这些庞大的表格也可以在没有分布式SQL引擎的情况下进行读取。
- 扫描计划很快-读取表格或查找文件不需要分布式SQL引擎。
- 高级过滤-使用分区和列级统计信息以及表格元数据来修剪数据文件。
- Iceberg旨在解决最终一致性云对象存储中的正确性问题。
- 适用于任何云存储,通过避免列表和重命名操作减少HDFS中的名称节点拥塞。
- 可串行化隔离-表格更改是原子的,读取者永远不会看到部分或未提交的更改。
- 多个并发写入器使用乐观并发性,并将重试以确保兼容更新成功,即使写入冲突。
开放标准
Iceberg被设计和开发为一个开放的社区标准,具有规范以确保跨语言和实现的兼容性。
Apache Iceberg是开源的,并在Apache Software Foundation进行开发。