Apache Iceberg 最近已成为大规模数据集事实上的开放表标准,拥有一个蓬勃发展的社区,并得到许多领先数据基础设施供应商的支持。但为什么 Iceberg 会成为首选格式?在涉足Iceberg之前,你应该了解些什么?
Iceberg 是一种高性能表格式,为大规模数据分析带来了 SQL 表的可靠性和简洁性。它的生态系统发展迅速,拥有来自 Apache Spark、Trino 和 Apache Flink 等引擎以及 Snowflake、Amazon、Dremio 和 Confluent 等供应商的强大工具和支持。就连 Databricks 也在 Iceberg 上下注,斥资超过 10 亿美元收购了 Tabular,这家初创公司由 Iceberg 的一些联合创建者共同创立。
要理解为什么开放式表格格式最近吸引了如此多的关注,不妨考虑一下当今企业数据环境的复杂现实。尽管我们喜欢谈论云数据湖和云数据仓库等现代解决方案的优越性,但这些技术并不是孤立存在的。相反,大多数大型企业由多个供应商提供的不兼容数据存储和数据应用程序拼凑而成。
我们是如何走到这一步的?
在线交易OLTP数据库曾一度是存储和分析数据的主流架构。后来,数据仓库OLAP系统取代了这些数据库,它们可以提供更高性能的分析,但成本高昂且难以扩展。后来,数据湖出现了,它提供了一种将结构化和非结构化数据汇集到单一位置的方法。
数据湖的一大优势是在一个架构中提供单一、统一的数据池,将存储与计算解耦,从而使数据湖的扩展具有成本效益。Apache Parquet 是一种开源列式存储格式,它的广泛使用通过高效的数据压缩和编码方案进一步降低了存储成本。
但正如我们所知,现有的技术习惯于固步自封,这意味着许多这些架构在同一企业中并存。现在,Iceberg 已经崛起,因为它提供了一种优雅地弥合这些不同世界的方法。
大多数企业所面临的技术复杂性问题并不一定是决策失误造成的,在过去的几年里,并购激增,这往往导致同一公司内存在不同的技术平台。人性也是一个原因: 一个工程师团队可能热衷于 Databricks,而另一个团队可能喜欢 Snowflake,这可能是因为在前一家公司的良好经历,这些准宗教式的执着会让企业数据架构变得更加复杂。
无论原因如何,这些支离破碎的环境都会造成数据访问和数据管理问题。数据团队通常希望将来自不同系统的数据整合起来,无论这些数据存储在哪里,而不兼容的系统使得这种做法既不现实,成本也很高。他们可以将所需的数据集复制成不同的格式,以便访问,但这是一个成本高昂的解决方案,而且数据副本很少能长期保持最新。
Iceberg 为何能拔得头筹?
Iceberg 在技术上并不一定优于其他开放文件格式-- Iceberg 工作组所做的一切都在众目睽睽之下,可以被其他项目复制。但 Iceberg 是一个真正的开放标准,已获得 Confluent、亚马逊、Snowflake 和 Databricks 等大公司的支持。Iceberg 并不是唯一能吸引大量用户和行业支持的格式,但它确实做到了,而且很好地实现了自己的目标。
如果你的组织正在使用 Iceberg ,你可以插入任何 Iceberg 兼容的处理引擎,并完成引擎通常会处理的任务,如在引擎下实时更改文件或压缩表格以获得更好的读取性能。Iceberg 将数据和数据层(包括存储、管理和优化)与写入、查询和更新数据的处理引擎完全分离。
Iceberg 最出色的地方在于,它能让你将数据管理与查询和处理引擎分开。它可以作为 “无头数据架构 ”的一部分,数据既可以作为表,也可以作为流,你可以使用其中之一(或两者)进行分析、操作,以及进行中间的所有操作。 Iceberg 提供了一种可靠、被广泛采用且性能优秀的技术,无论什么样的用例,都能确保数据易于编写、发现和使用。
有待完善的工作
虽然 Apache Iceberg 有很多优点,但它并不是开箱即用。如果你选择自己实施该技术,而不是使用托管服务,你将需要从头开始构建一些东西。
Iceberg 缺乏一些基本的维护功能,而其他一些商业或托管服务则具备这些功能。例如,它缺乏数据压缩、过期世界快照和其他日常维护需求的开箱即用功能。API 是存在的,也是 Iceberg 的一部分,但它们需要由开发者构建和管理。(请注意,Tabular 的价值主张之一正是提供这种功能,希望未来能看到更多 Iceberg 服务提供同样的功能)。
Iceberg 不包括处理安全和管理的打包方式,因此开发者需要将其集成,以便向希望使用它的处理引擎提供许可。
Iceberg 元数据目录还没有一个公认的标准。Snowflake 最近将其 Polaris 目录开源,而 Databricks 收购的 Tabular 则提供了自己目录的开源版本。但目前仍没有明确的 Iceberg 目录事实标准。
在由 OLTP、OLAP 和数据湖配置组成的复杂环境中,Iceberg 的承诺在于它能让混乱变得有序,让数据在任何地方都能被访问,而无需创建脆弱的一次性连接。尽管开放表格式易于集成并得到广泛支持,但它还不是即插即用的。不过它仍然在不断走向成熟,并为弹性数据战略奠定了基础,使其能根据业务需求进行灵活调整和扩展。
作者 Adam Bellemare 是 Confluent 技术战略部的技术专家。
4000520066 欢迎批评指正
All Rights Reserved 新浪公司 版权所有