数据湖仓库的未来:解析 Apache Iceberg

我们知道,今天的数据管理正在发生完全的变化。几十年来,企业依赖数据仓库,以适当的方式存储信息。它们是结构化的、受管理的,并且可以快速提取信息,尽管本质上昂贵且不灵活。相比之下,数据湖更加高效,可以存储大量数据,无论其结构如何。然而,数据湖屋架构的出现结合了数据湖和数据仓库的优点。湖屋模型允许保留数据湖提供的灵活性,同时整合数据仓库的可靠性、治理和性能。

为大规模数据分析而创建的最著名的开源表格式是Apache Iceberg。Iceberg站在这一转型的最前沿,提升了湖屋架构中数据的价值。此外,Iceberg为数据湖面临的许多问题提供了解决方案,包括模式演变、ACID事务、数据一致性和查询性能。

这篇博客文章是探索Apache Iceberg及其在现代数据架构中角色的三部分系列的第一部分。在这篇文章中,将重点讨论以下主题:

  1. 从数据仓库到数据湖的演变
  2. 与传统方法相关的挑战
  3. Apache Iceberg如何解决这些局限性

本系列的后续文章将深入探讨Iceberg的架构,并探讨查询在Iceberg表中的工作原理。

简要总结:数据湖从数据仓库的演变

多年来,企业一直依赖数据仓库,它们是分析的中心基础。数据仓库作为一个集中式存储库,旨在捕获来自不同来源的结构化数据,以便高效生成报告和洞察。如今,数据仓库实现了快速的查询性能,同时具备强大的治理机制,使其成为可靠且结构良好的工具。

然而,随着数据量的增加,组织遇到了新问题。

  1. 由于高计算和存储费用,存储成本不断增加
  2. 严格的模式强制执行,使得集成半结构化或非结构化数据变得困难
  3. 对人工智能和机器学习工作负载的支持有限

作为解决方案,公司开始利用数据湖。这样做使企业能够在廉价存储介质(如Amazon S3、Azure Data Lake Storage、Google Cloud Storage和Hadoop分布式文件系统)中保留原始数据、结构化数据和非结构化数据。

数据湖的好处包括以下因素:

  1. 在特定云环境中降低存储成本
  2. 使用新型数据格式,如非结构化、半结构化甚至结构化数据
  3. 增强人工智能和机器学习应用的使用

尽管具有这些优势,数据湖也带来了新问题,比如:

  1. 缺乏治理和架构导致数据集不一致。
  2. 索引和全表扫描的低效利用使查询性能变慢。
  3. 缺乏ACID事务使得在多用户环境中确保数据完整性变得困难。

数据湖屋的出现

数据湖屋将数据湖的可扩展性和经济优势与数据仓库的生产力、可靠性和事务特性结合在一起。这是一种现代设计范式。

数据湖屋的主要优点包括:

  1. 以更低的价格同时满足存储和处理功能
  2. 通过ACID事务实现高效的数据控制
  3. 在不影响现有查询的情况下修改架构 – 架构演进
  4. 通过时间旅行功能检索表的先前版本

这些功能的引入促成了现代表格式的开发,如Delta Lake、Apache Hudi和Apache Iceberg。这些结构使数据湖能够像数据仓库一样运作,同时由于引入了结构化元数据层,依然保持灵活和非结构化。在这些表格式中,Apache Iceberg已成为一个领先的选择,为希望过渡到数据湖屋架构的组织提供了强大的解决方案。

Apache Iceberg:数据湖屋的游戏规则改变者

什么是表格式?

使用表格格式可以有效地管理存储在数据湖中的大量信息。它包含了一些功能,包括:

  1. 将数据结构化为表格,以便进行有效的管理和查询。
  2. 高效地删除和更新数据,以及更改模式。
  3. 通过更改元数据来改善查询响应时间的性能。

与Hive等其他传统表格式一样,以基于目录的存储为基础的表格构建方法意味着表格是从某些文件目录的内容中构建的。然而,这种方法创建了性能瓶颈,因为查询引擎必须在执行查询之前通过整个目录进行过滤。

从Hive发展到Iceberg

Hive表格格式旨在解决早期结构化数据湖的问题。目的是让用户使用类似于Apache Hive和Presto中使用的SQL查询将数据集组织成表格。但是,Hive格式存在重大缺点:

  1. 由于缺乏ACID事务,不同来源的并发写入导致不一致性。
  2. 由于元数据管理效率低下而执行昂贵的法律文件列表操作。
  3. 由于手动优化分区挑战而引起的查询速度缓慢。

Apache Iceberg如何解决这些挑战

Apache Iceberg 是一种现代的表格格式,消除了 Hive 带来的问题,同时提供 ACID 事务、模式演变以及在数据湖中执行查询时的快速性能。

Apache Iceberg 的重要优势包括:

  1. 保证可靠数据更新和一致性的 ACID 事务。
  2. 能够穿越时间并查询历史数据快照。
  3. 模式演变,允许添加、重命名或删除列而不会破坏现有查询。
  4. 自动优化分区策略的分区演变。
  5. 通过高效管理元数据,减少不必要的文件扫描,实现更快的查询执行。

最后的话

随着 Apache Iceberg 的出现,数据管理发生了巨大变化。它使得公司可以以一种经济高效且高度可扩展的方式过渡到数据湖仓库的方法,而无需牺牲性能。很明显,随着 Apache Iceberg 的发明,分析已经发生了转变,其使用量不断增加。请关注本系列的最后一篇文章。接下来两篇博文的重点将转向:

  • 第二部分:Apache Iceberg 的架构,包括数据、元数据和目录层。
  • 第三部分:Iceberg 中查询的机制,包括读写、时间旅行和查询优化方法。

Source:
https://dzone.com/articles/the-future-of-data-lakehouses-apache-iceberg