Iceberg

Open Table Formats

数据湖能够低成本保存大量结构化和非结构化数据,并将这些数据用于不同类型的分析工作负载,从商业智能报告到大数据处理、实时分析、机器学习和生成式人工智能(AI),以帮助指导更好的决策。

尽管有这些优势,但数据湖最初并非设计为具有类似数据库的功能。数据湖不支持原子性、一致性、隔离性和持久性(ACID)处理语义,而这些可能是我们有效地使用各种不同技术在数百或数千用户之间大规模优化和管理数据所需要的。

Architecture

数据湖不提供以下功能的原生支持:

  • 随着业务数据变化,高效地执行记录级更新和删除。

  • 随着表增长到数百万个文件和数十万个分区,管理查询性能。

  • 确保多个并发写入器和读取器之间的数据一致性。

  • 在写入操作中途失败时防止数据损坏。

  • 随着时间的推移演变表架构,而无需(或者部分)重写数据集。

这些挑战在流式数据摄取相关的场景中变得尤为突出

为了帮助克服这些挑战,Open Table Formats格式提供了额外的类数据库功能,简化了数据湖的优化和管理开销,同时仍然支持在诸如S3等成本效益高的系统上进行存储。

目前,我们可以选择三种Open Table FormatsApache IcebergApache HudiDelta Lake

使用Open Table Formats增强数据湖有以下好处:

  • 事务支持:为并发工作负载提供ACID保证。
  • 完整的架构演变:支持schema evolution,包括列和分区。
  • 支持多样化工作负载:允许使用多种工具从同一存储库访问数据。
  • 支持更新插入和删除:对CDC和GDPR合规性必不可少。
  • 数据正确性:确保数据完整性和审计变更。

下图描述了一个现代数据湖的参考架构: