完美的 AI 存储:FACEBOOK 的 TRINO 和 NETFLIX 的 ICEBERG?

在解决大规模数据分析问题方面,很难打败超大规模企业。这就是为什么最初在 Facebook(现为 Meta Platforms)和 Netflix 开发的技术组合最终可能成为打造支持 AI 训练和其他应用程序的“Lakehouse”的完美组合。

毫不奇怪,每个构建高性能全闪存存储阵列或常用于 HPC 模拟和建模应用程序的并行文件系统的人都会试图说服您,他们的设备是用于存储训练 AI 神经网络所需的大量数据的最佳选择。

大型云服务商(尤其是亚马逊网络服务、微软 Azure 和谷歌云)都拥有对象和文件系统,可供您用于存储 AI 训练的原始数据,而 Snowflake 是具有 SQL 接口的云数据仓库的宠儿,在 AI 训练运行的底层存储层中赢得了一定的业务份额。

这些都不是特别开放的,而且本质上也不是混合的。它们和过去四十年里你可能购买的任何其他类型的存储一样都是专有的。我们并不反对专有技术,但它们确实限制了自由度,而且与使用开源工具相比,它们的成本几乎总是与它们的易用性成正比。

无论哪种方式,你都得付钱。

最好的答案可能是构建大量闪存阵列 - 或者从 Pure Storage、Vast Data、Dell Technologies 或您选择的 OEM 购买它们 - 并使用 Trino 和 Iceberg 的组合加载它们,这两者都是开源的并且都可以加载到任何云上的闪存实例上。

Trino 前身为 PrestoSQL,是 Facebook 2012 年推出的 Presto 项目的几个分支之一。Presto 是一个本机的分布式 SQL 引擎,旨在直接访问 Hadoop 分布式文件系统 (HDFS) 中存储的数据,在 MapReduce 数据分析时代,HDFS 风靡“大数据”。Presto 是用 Java 编写的,取代了 Hive SQL 到 MapReduce 转换器,后者由 Facebook 于 2008 年开源,为存储在 HDFS 中的非结构化数据提供 SQL 查询功能。(我们在 2020 年 6 月对 Presto 项目及其 PrestoSQL 和 PrestoDB 分支进行了深入研究。)当 Facebook 开放 Presto 时,它表示它的速度比 Hive 快 10 到 15 倍,这对任何试图将 SQL 添加到 HDFS 的人来说都是一个好消息。

PrestoDB 的优点在于它不依赖于 HDFS,实际上也不依赖于任何特定的数据库、数据存储或文件系统。它实际上是一个 SQL 抽象层,可以指向任何内容并用于查询任何内容 - 一个用于不兼容和分散数据源的联合层。PrestoDB 上有很多政治操纵,但最终出现了两家试图将 PrestoDB 商业化的公司:Ahana(我们在此处介绍过)和 Starburst(我们在那里介绍过)

Ahana 几年来一直坚持自己的业务,推动联合数据库的想法,并最终于 2023 年 4 月被 IBM 收购。Starburst 拥有多位 Facebook Presto 原团队成员作为联合创始人,已在四轮风险投资中筹集了 4.14 亿美元,目标是 Snowflake 用户,或多或少地表示他们付出太多,收获太少,并且把自己困在别人的数据仓库中。正如 Starburst 向我们解释的那样,这个想法是“没有数据仓库的数据分析”,这意味着您可以在数据所在的位置查询数据,然后将结果带回到缓存中,对于使用它的应用程序来说,这个缓存看起来像是一个 SQL 数据库。

这就是 Iceberg 以及 Starburst 促成的 Iceberg 与 Trino 的联姻,更重要的是,它为 AI 客户提供了商业级技术支持,帮助他们找到存储和访问 AI 训练数据的最佳方式。

Iceberg是由电影流媒体巨头 Netflix 专门设计的——我们还记得订购 DVD 并帮助淘汰 Blockbuster 及其不合理的滞纳金,小子们——以替代 Hive、Presto 和 Spark 内置的独特表格布局。2017 年创建它时的想法是提供一种一致的表格格式,可以在这些和其他数据分析工具下使用。Netflix 发布后不久,它就通过 Apache 软件基金会开源。Adobe、Airbnb、Apple、花旗银行、Capital One、Expedia、Google、LinkedIn、Lyft、Netflix、Pinterest 和 Stripe 都在使用 Iceberg。有趣的是,整个目的是创建一种可以直接用 SQL 查询的表格文件格式,而不必经过 Hive、Presto 和 Spark 这样的查询层。

但事实上,Iceberg 可以抽象存储在 HDFS 或 S3 中的对象集合和/或存储在 Parquet、Avro 或 Orc 格式中的文件集合,这使得它成为 Presto 等 SQL 查询引擎下的理想伴侣。Iceberg 将所有可以通过 SQL 查询的数据组成一个逻辑表,并具有关系数据库的 ACID 属性,而 Presto 是一个没有自己的原生存储格式的查询引擎。如果你想构建一个更传统的数据仓库,Trino 和 Iceberg 的搭配也是不错的选择。

最近,我们一直在询问很多存储供应商,应该使用哪种存储来驱动 AI 训练应用程序,我们也得到了很多答案。我们知道矢量数据库和图形数据库是热门话题,但我们也知道超大规模企业使用大量 Parquet 和 Avro 文件。在我们看来,拥有一个可以在联合数据库上运行的高级 SQL 驱动接口对于拥有数千到数万个数据库表并支撑数百到数千个应用程序的企业来说非常重要。这是针对实际企业应用程序进行 AI 训练的最私密的原材料。我们还认为,您需要较低级别的访问来提高速度和性能——可能像 Parquet 这样的。使用 SQL 从这些来源提取数据会降低性能,但它具有简单易用的优点。

Starburst 首席执行官 Justin Borgman 告诉The Next Platform:“你几乎描述了 Starburst 试图用 Trino 和 Iceberg 做什么。这正是我们对我们在人工智能方面试图扮演的角色的看法。我们希望成为访问层,我们希望为你提供训练模型所需的数据。模型的好坏取决于训练模型的数据。我们发现,特别是在企业客户领域,人们希望用自己的数据来训练模型。从他们的角度来看,ChatGPT 只是一个噱头——他们希望利用他们拥有的专有数据来训练模型,而这些数据通常存在于大型数据湖或各种不同的数据源中。因为我们可以访问所有内容,所以我们可以提供他们进一步开发人工智能程序所需的数据。”

当然,诀窍在于在选择训练数据时要非常谨慎。你需要足够的数据来进行训练,但你不必试图从每个关系数据源中抽取所有数据来训练用于特定任务的 AI 模型。在这种情况下,Borgman 说,拥有一个 SQL 接口来过滤数据行实际上是有益的。

此外,Iceberg 正在成为许多公司的首选格式,这意味着您可以使用 Trino 提取数据并将其存储回 Iceberg 表中,如果您想保留它以便以后更快地进行 AI 训练处理。

为此,Starburst 正在创建一个 Icehouse 发行版,将 Trino(实际上是商业版本,称为 Galaxy)和 Iceberg 组合在一起,并直接从 Starburst 提供对组合的支持。Galaxy 是一个完整的数据湖库实现,其中包括一个名为 Warp Speed 的索引和缓存层以及添加的其他安全和性能功能。

有趣的是:甚至 Snowflake 也开始在其云数据仓库中支持 Iceberg,原因大致相同,但此举可能会产生意想不到的后果。

“Snowflake 实际上已经开始谈论 Iceberg,并表示他们将启用查询此外部表的功能,”Borgman 解释道。“我们看到这种情况会这样发展:他们自己的现有客户基本上都在说我们要使用 Iceberg。这就是他们解锁自己的方式。我们希望他们能集体这样做因为现在这为他们创造了一个机会,让他们选择不同的分析方式,并希望利用我们的产品。”

Borgman 说,使用 Trino 和 Iceberg 构建数据湖的成本只是使用 Snowflake 构建数据湖的十分之一到二分之一。

对于那些想要获得 Iceberg 商业级支持的人来说,Netflix 的 Iceberg 创始人 Ryan Blue 和 Dan Weeks创办了一家名为 Tabular 的公司,该公司拥有几十名员工,主要专注于 Iceberg 中的数据采集、表格维护和基于角色的访问控制功能。但 Starburst 拥有 500 多名员工,负责 SQL 引擎和现在的 Iceberg。

Starburst 收购 Tabular 并让所有人都朝着同一个方向努力可能是合理的,但只要 Blue 和 Weeks 能够靠销售 Iceberg 的支持版本谋生,就没有理由这么做。如果有两家公司提供对 Iceberg 的支持,风险就会小一些。事实上,如果 Tabular 决定在其 Iceberg 发行版之上提供支持 Trino 层,那将是一件很有趣的事情。...


本站全部资讯来源于实验室原创、合作机构投稿及网友汇集投稿,仅代表个人观点,不作为任何依据,转载联系作者并注明出处:https://www.lvsky.net/208.html

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论