欢迎关注大数据技术架构与案例微信公众号:过往记忆大数据
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
过往记忆大数据

2024 年数据库回顾:一年综述

本文原文来自:Databases in 2024: A Year in Review // Blog // Andy Pavlo - Carnegie Mellon University

就像一颗子弹击中你的头顶,我回来了,要给你带来我关于数据库领域发生的事情的年度综述。是的,我曾经在OtterTune博客上写过这篇文章,但公司已经倒闭了(安息吧)。我现在在我的教授博客上发表这篇文章。

过去的一年有很多值得关注的事情,从十位数的收购、供应商在街上疯狂更改许可证,到最著名的数据库八旬老者挥霍现金招募大学四分卫来取悦他的新欢。

我向我的第一任妻子承诺,今年我会写得更专业一些。我还被告知,一些大学将我的年度博客文章作为他们数据库课程的必读材料。让我们看看这会怎么样。

这是我的数据库,我要按照我的方式授权!

我们生活在数据库的黄金时代。对于各种应用领域,有许多优秀的(关系型)选择。许多开源项目尽管由风险投资支持的盈利公司开发,但仍然是开源的。

但是,风险投资家想要回他们的钱,而且他们的陷阱已经满了,所以这些公司为他们的数据库管理系统(DBMS)提供云托管服务。然而,云计算使得开源DBMS变得棘手。如果一个系统变得太受欢迎,那么云供应商(如亚马逊)就会把它当作一项服务来提供,并比为软件开发付费的公司赚更多的钱。这种威胁就是为什么许多数据库公司转向更严格的源代码许可证,以防止云供应商转售他们的产品。MongoDB在2018年率先这样做,当时他们转向了服务器端公共许可证(SSPL)。

过去的一年,许可证变更方面可谓波澜壮阔,其中最引人注目的两个是Redis™和Elasticsearch。

Redis

Redis有限公司(公司)正朝着IPO的道路积极前进。最初成立于2011年的Redis实验室,他们在2021年获得了Redis商标的所有权(从其创始人萨尔瓦托·桑菲利波手中),并更名为Redis有限公司。在过去的几年里,Redis有限公司试图巩固对Redis生态系统的控制。该公司还试图摆脱系统主要用作内存缓存的观念,通过支持向量和其他数据模型来实现这一目标。

2024年3月,Redis有限公司宣布,他们将从系统原有的(非常宽松的)BSD-3许可证切换到双重许可证,包括专有的Redis源可用许可证和MongoDB的SSPL。公司在宣布收购Speedb(一个开源的RocksDB分支)的同一天宣布了这一变更。

对Redis许可证变动的反应迅速。在同一周内,基于原始BSD-3代码线的两个分支被宣布:Valkey和Redict。Valkey起初在亚马逊开始,但谷歌和甲骨文的工程师很快加入。仅仅一周后,Valkey项目在成为Linux基金会的一部分时反击了Redis有限公司,一些主要公司将他们的开发工作转移到了这个项目上。当Redis有限公司对它们心爱的商标调皮捣蛋,开始接管开源Redis扩展时,这并没有帮助他们树立良好的形象。

在2015年Bushwick Bill(安息吧)、Scarface和Willie D重聚的明显致敬中,Redis的创始人于2024年12月宣布,他正在与Redis有限公司管理层联系,寻求重返舞台,重聚Redis社区。

Elasticsearch

Elastic N.V.是支持领先文本搜索Elasticsearch DBMS的盈利公司。2021年,他们宣布转向Elastic许可证和MongoDB的SSPL的双重许可模式。同样,这是为了应对亚马逊Elasticsearch服务的日益突出,尽管该服务自2015年以来就一直存在。亚马逊对这个转变并不满意,宣布了他们的OpenSearch分支。

三年后,Elastic N.V.在2024年8月宣布,他们撤销了许可证变更,转而使用AGPL。他们的博客文章宣布了这一变更,引用了Kendrick Lamar的歌曲(例如,《Not Like Us》)。亚马逊不喜欢被称为数据库界的德雷克,于是在下个月宣布,他们将OpenSearch项目的所有权转让给Linux基金会。

安迪的观点:这些混乱似乎只是因为许可证,但请记住,数据库领域的金钱巨大。而这仅仅是两个系统!我甚至没有讨论Greenplum在九年后悄悄地关闭了他们的开源仓库,转向专有。但是人们没有注意到,因为没有人愿意再运行Greenplum。我所知道的唯一一个做出类似开源逆转的DBMS是Altibase在2023年。

我要直言不讳:我不喜欢Redis。它速度慢,它有假事务,它的查询语法是个怪物表演。我们在CMU的实验发现,Dragonfly的性能数据要令人印象深刻得多(即使只有一个CPU核心)。在我的数据库课程中,我用Redis查询语言作为一个不要做什么的例子。尽管如此,我对Redis有限公司被亚马逊淹没的困境表示同情。然而,该公司高估了构建一个像Redis这样简单系统的门槛;它远低于构建一个功能齐全的DBMS(例如,Postgres),所以有几个替代方案可以替代原版的Redis。他们在社区中不会容忍这样的姿态。

Elasticsearch的故事与Redis相同,只是他们在情节上走得更远:公司宣布许可证变更,竞争对手创建一个开源分支,然后公司恢复到开源许可证,反响平平。

请注意,与其他做出类似举措的系统相比,Redis和Elasticsearch受到的反弹更大。当MongoDB、Neo4j、Kafka或CockroachDB宣布许可证变更时,并没有主要的努力去分叉它们。CockroachDB甚至在2024年再次更改其许可证,以使大型企业开始付费。这不能是因为Redis和Elasticsearch的安装基础比这些其他系统大得多,因此,由于MongoDB和Kafka的安装数量同样庞大,所以有更多的人对变更感到不满。在Redis的例子中,我只能认为人们认为Redis有限公司在不公平地从别人的工作中获利,因为公司的创始人并不是系统的原始创作者。对Redis源代码库的分析还显示,DBMS的相当一部分贡献来自公司外部(例如,腾讯,阿里巴巴)。这种“偷来的勇气”是HashiCorp在2023年更改Terraform许可证时受到愤怒的原因。

这些许可证变动背后的核心问题是开源独立软件供应商(ISV)在数据库市场中的长期生存能力。云供应商是拥有无限资金的巨头。如果一个开源DBMS起飞,他们将开始托管它,并比ISV赚更多的钱。或者他们会将您的DBMS的线协议作为现有DBMS的前端添加,就像AWS在2024年3月为他们的Timestream DBMS添加InfluxDB v2协议支持一样。然后他们可以成为前述Bushwick Bill的女朋友,向你开枪,就像当AWS宣布他们的新Valkey兼容服务比Redis兼容服务便宜30%时那样。

更新2025-01-01:我之前说过AWS在现有的Timestream DBMS之上添加了InfluxDB v2协议。而不是仅仅复制协议,AWS正在与Influx Data合作提供一个托管的InfluxDB v2 DBMS服务。更新2025-01-01:我错过了ScyllaDB在2024年12月宣布他们将关闭开源(AGPL)版本的DBMS,并使企业版本“源可用”的消息。

Databricks与Snowflake的帮派战争继续

Databricks和Snowflake之间仍然没有爱意。这场战斗是一场经典的数据库战争,已经蔓延到街头。两家公司之前的查询性能之争已经扩展到数据管理的其他领域,变得更加昂贵。

Databricks在2024年3月打响了第一枪,当时他们宣布花费1000万美元构建了具有1320亿参数的开源LLM DBRX。Mosaic团队负责开发DBRX模型,Databricks在2023年以13亿美元收购了它。一个月后,Snowflake也来到同一个角落,使用他们的北极开源LLM(具有4800亿参数)点燃了战场。Snowflake吹嘘他们只花了200万美元来训练他们的模型,而在“企业”任务(如SQL生成)上胜过DBRX。你可以看出Snowflake最关心的是打击Databricks,因为他们的公告显示其他LLM(如Llama3)比他们做得更好,但他们强调他们比DBRX更好。一位AI研究人员对Snowflake在分析中如此关注DBRX而不是其他模型感到困惑;这个人不知道这两个数据库竞争对手已经付出了多少血汗。

在公开的LLM大战如火如荼之际,Databricks和Snowflake之间的另一场战争在幕后悄然展开,争夺目录。在2010年代的大部分时间里,Hive的HCatalog一直是数据湖上的事实目录系统。Iceberg和Hudi分别在2010年代末由Netflix和Uber推出,成为由风险投资支持的初创公司支持的顶级Apache项目。这些系统提供了一个元数据服务,用于跟踪文件并支持在对象存储(如S3)上新数据的交易性摄取。Databricks拥有一个名为Unity的专有目录服务,与他们的DeltaLake平台配合使用。Snowflake在2022年宣布了他们与Iceberg支持的表的初步集成。然后在接下来的几年里,他们扩大了对Iceberg的支持。然后,他们考虑收购Tabular,即Iceberg背后的主要公司,以便与Databricks的Unity和DeltaLake竞争。据说Snowflake即将以6亿美元的价格达成交易。但是Databricks闯入了派对,并斥资20亿美元收购了Tabular。Databricks在Snowflake首席执行官的主题演讲中宣布了这次收购,当时他正在宣布他们在2024年6月推出的新的开源Polaris目录服务。接下来的一周,Databricks继续猛击Snowflake,宣布他们将Unity目录开源。简直是谋杀。

安迪的观点:这场数据库之战有趣的地方在于,它不仅仅是关于原始性能数字。这不像20世纪90年代Oracle与Informix的枪战,那时他们主要是在炫耀更快的查询延迟。确实,当Informix起诉Oracle(后来不得不撤回诉讼)时,这场战斗也不仅仅局限于基准测试,因为Oracle挖走了一些顶尖的Informix高管。后来,世界发现Informix首席执行官伪造了公司的账本,夸大收入数字,以便在与Oracle的竞争中看起来更好,不得不在联邦监狱里待上两个月。

相反,Snowflake与Databricks之间的战斗已经扩展到数据库周围的生态系统。也就是说,它是关于人们用来将数据输入数据库的基础设施,以及他们在那上面使用的工具。用于分析查询的向量化执行引擎现在已经成为一种商品。Databricks和其他所有的OLAP供应商都在遵循Snowflake 2013年的架构设计,最初是基于Snowflake一位联合创始人的博士论文。现在重要的是生活质量方面(这些方面很难货币化并与竞争对手进行比较)、与其他工具的兼容性以及AI/LLM魔法。

至少Snowflake和Databricks之间的竞争对消费者有利。这种激烈竞争意味着更好的数据产品和技术(例如,Snowflake的Polaris现在是一个Apache项目),并最终(希望)降低价格。这不像之前Oracle和SalesForce首席执行官之间的斗殴,那时是两个有钱人在他们昂贵的会议上互相抨击。

把 duck 塞进一切

就像Postgres是新运营数据库的首选一样,DuckDB已经成为某人想在数据上运行分析查询的首选。Pandas此前一直占据着DuckDB的王位。鉴于DuckDB的疯狂可移植性,有许多努力将其嵌入到对OLAP工作负载支持不佳的现有DBMS中。今年,我们看到了四个不同的扩展,将DuckDB嵌入到Postgres中。

第一个公告是在2024年5月发布的,当时Crunchy Data宣布了他们的专有桥梁,将Postgres重新连接,将OLAP查询路由到DuckDB。他们后来宣布了扩展版本的扩展,以利用DuckDB的地理空间功能加速PostGIS查询。

2024年6月,ParadeDB宣布了他们的开源扩展(pg_analytics),该扩展使用Postgres的外部数据包装器API调用DuckDB;他们之前在早期版本(pg_lakehouse)中使用DataFusion,但切换到了Duck。

然后,在2024年8月,下一个DuckDB-for-Postgres扩展(pg_duck)问世。该扩展的源代码托管在DuckDB实验室GitHub组织下。因此,这是Postgres官方认可的DuckDB扩展。最初的公告宣称这个项目是MotherDuck、Hydra、微软和Neon之间的合作。据称,后两者因为开发控制的争议而被踢出了局,类似于Arabian Prince离开NWA。现在仓库只将其列为MotherDuck和Hydra之间的共同努力。

最新的DuckDB扩展在2024年11月发布,名为pg_mooncake。Mooncake与其他三个扩展不同,因为它支持通过Postgres将数据写入Iceberg表,并提供完整的事务支持。

安迪的观点: 大多数OLAP查询不会访问那么多数据。Fivetran分析了Snowflake和Redshift的跟踪数据,发现查询扫描的数据量中位数仅为100MB。这么少的数据意味着单个DuckDB实例足以应对大多数查询。

DuckDB的便利性和可移植性是其在Postgres社区中流行的原因。尽管ClickHouse自2016年以来就存在,但直到最近(参见这篇讨论2018年部署ClickHouse步骤的博客文章),它还没有像DuckDB那样容易运行。这些DuckDB扩展是将用户带入更广泛数据生态系统的单一入口点。用户不再需要安装单独的扩展来访问Iceberg中的数据和S3中的数据。DuckDB可以为您处理所有这些。它使组织能够在不需要昂贵数据仓库的情况下获得高性能分析。

Postgres对扩展和插件的支持令人印象深刻。自1980年代以来,Postgres的原始设计目标之一就是可扩展性。其意图是轻松支持新的访问方法和新的数据类型以及对这些数据类型的操作(即对象关系)。自2006年以来,Postgres的“钩子”API。我们的研究表明,与所有其他DBMS相比,Postgres拥有最广泛和多样的扩展生态系统。我们还发现,DBMS缺乏保护措施意味着扩展可能会相互干扰并导致错误行为。

早期的项目(例如Citus、Timescale)只为Postgres添加了列式存储,这只是解决了部分问题。列式数据格式改善了从存储中检索数据的能力。然而,如果DBMS仍然使用面向行的查询处理模型(例如Postgres),那么它无法充分利用这些格式。使用DuckDB提供了列式存储和向量化查询处理。

这里很可能有一个涉及大象的turducken笑话,但我不会说出来,因为我不想被大学解雇或再次被缓刑。

随机事件

去年数据库领域发生了很多一次性事件,您可能已经忽略了它们。以下是它们的简要总结:

发布:

Amazon Aurora DSQL 目前还没有太多关于AWS如何实现他们新的“类Spanner”DBMS的公开信息(参见Mark Brooker关于DBMS架构的讨论)。关键思想是分布式日志服务(传言它是基于现已不存在的QLDB)和时间同步的时间戳排序。但这一公告显示了“Aurora”这个名字在数据库世界中的品牌认知度有多高,因为AWS将其用于这个看似与其旗舰Aurora Postgres RDS产品没有任何代码共享的新DBMS。CedarDB Umbra是由世界上最伟大的数据库系统研究员(Thomas Neumann)编写的最先进的DBMS之一。但是Thomas满足于留在他的大学研究Umbra,舒适地位于Clickbench排行榜的顶部,而不必担心烦人的客户。这就是为什么他的顶尖博士生分叉了他的代码并将其商业化作为CedarDB的原因。Google Bigtable 这个公告唯一有趣的部分是,2000年代后期NoSQL运动的前先锋现在在2024年支持SQL。Limbo Turso一直在研究SQLite的libSQL分支,但他们在2024年全力以赴,宣布了SQLite的完整重写版,使用Rust编写。在他们的公告中,他们正确地指出,SQLite的价值不仅仅来自其代码,还来自确保其在任何地方都能正确运行的疯狂测试工程。这就是为什么Limbo开发人员与一家由前FoundationDB人员创办的确定性测试初创公司合作的原因。有关此测试的含义,请参阅FoundationDB在2020年CMU-DB演讲中的更多信息。Microsoft Garnet 这个键值存储是微软研究院令人印象深刻的FASTER系统的继任者。它与Redis兼容,并支持查询间并行性、大于内存的数据库和真实事务。如今,Redis不应该是任何人的首选。MySQL v9 在MySQL v8发布六年后,团队在2021年发布了v9。但是人们很快发现,如果数据库中有超过8000个表,它就会崩溃。我对这个新版本的功能列表感到失望。Oracle正在将其所有时间和精力投入到其专有的MySQL Heatwave服务中。MySQL仍然被广泛使用,但兴奋感已经不复存在。每个人都转向了Postgres。Prometheus v3 自从最新的Prometheus主要版本发布以来已经有七年了。现在有这么多兼容的替代品,以至于原始的Prometheus可能不再是某些组织的最佳选择。

收购:

Alteryx → 私募股权 我从未遇到过使用Alteryx的人,我对它们没有意见。MariaDB → 私募股权 希望购买MariaDB Corporation的私募股权人士能够清理这个烂摊子。参见我去年关于MariaDB垃圾场的分析。OrioleDB → Supabase 如果您是领先的Postgres ISV之一,那么这次购买是有意义的。Postgres有一个很好的前端,但存储架构过时了。OrioleDB解决了这个问题。PeerDB → ClickHouse 更好的ETL工具,将数据从Postgres中提取出来并放入ClickHouse。这是ClickHouse公司的一个明智之举。PopSQL → Timescale 他们为自己购买了一个漂亮的SQL编辑器UI。这是生活质量的提高。Speedb → Redis Ltd. 参见上面的讨论。他们可能会使用Speedb来允许Redis将数据溢出到磁盘。Speedb的开发人员从未解释过他们在RocksDB分支中做了哪些更改和改进(或者我找不到?)。参见Mark Callaghan最近对Speedb与RocksDB的比较。Rockset → OpenAI 这对公司来说是重大新闻,但不幸的是,他们不得不在2024年9月关闭DBaaS。Rockset拥有一个伟大的工程团队,其中一些是Facebook最好的数据库工程师。我只是从来不喜欢他们的DBMS在索引中存储三份您的数据的方式。Tabular → Databricks 再次参见上面的讨论。Iceberg是标准(抱歉Hudi);甚至Amazon S3现在也支持它。Polaris的采用将如何发展以及他们是否能够在长期内保持兼容性还有待观察。Verta.ai → Cloudera 我猜Cloudera还活着?Warpstream → Confluent 用golang重写Kafka,但然后让它溢出到S3。我为Warpstream团队感到高兴,但Confluent本可以自己做这件事。

融资:

Databricks - $100亿美元J系列DBOS - $850万美元种子轮LanceDB - $800万美元种子轮SDF - $900万美元种子轮SpiceDB - $1200万美元A系列TigerBeetle - $2400万美元A系列CedarDB、SpiralDB等还有一些其他的融资,但这些金额尚未公开。

死亡:

Amazon QLDB 如果亚马逊不能弄清楚如何在区块链数据库上赚钱,那么没有人可以。是的,我知道QLDB不是真正的P2P区块链,但它足够接近了。OtterTune Dana、Bohan和我在这个研究项目和初创公司上工作了近十年。现在它死了。我对一家特定公司在最后如何对待我们感到失望,所以他们永远被禁止招募CMU-DB的学生。他们知道他们是谁以及他们做了什么。

我还想特别赞扬Andres Freund在2024年为微软工作的Postgres中发现xz后门。这次攻击是一场为期两年的活动,旨在将恶意代码注入一个广泛用于计算的重要压缩库。尽管后门针对的是SSH而不是直接针对Postgres,但这是另一个例子,说明为什么数据库工程师是世界上最好的程序员之一。

Andy的观点: Databricks连续第二年在数据库领域筹集的资金超过了其他所有公司,筹集了令人讨厌的100亿美元J系列资金。这是在他们2023年的5亿美元I系列和2021年的16亿美元H系列之后。不同的是,这次的资金是为了从对其不可避免的IPO感到不耐烦的员工手中购买股票。CMU-DB有几位校友在Databricks工作,包括一位前排名第一的博士生。我知道他们中的一些人正焦急地等待Databricks的IPO,然后再决定下一步该做什么。

即将到来的一年将是许多数据库初创公司的实力测试。没有人想成为下一个MariaDB Corporation,因此有几家公司正在等待Databricks的浪潮,然后自己进行IPO。在即将到来的一年中,利率下降可能会为几家两年多前筹集了大量资金的公司(例如CockroachDB、Starburst、Imply、DataStax、SingleStore、Firebolt)提供额外的资金。这群人中的一个突出者是dbtLabs,我听说他们正轻松地取得成功。

无法停止,不会停止

你知道谁在今年迎来了80岁生日吗?传奇人物拉里·埃里森!我们再次看到,他是一个拒绝安定下来或被关进盒子的人。首先,拉里将自己推上了福布斯亿万富翁排行榜,成为世界第三富有的人。在2024年3月,甲骨文股票上涨如此之多,以至于他在一天之内赚了150亿美元。现金充裕的拉里在2024年7月去购物,以60亿美元的价格为他唯一的儿子(第三任妻子)购买了派拉蒙影业公司。然后他决定通过以2.77亿美元购买棕榈滩度假村来放松。这些举措都在一年内发生,而且都是数据库支付的。但与拉里在2024年取得的最重要成就相比,这些都是微不足道的。

我们所有人都在2024年11月的中夜被Larry Ellison的新闻警报唤醒时感到惊讶。头条新闻大肆宣扬拉里如何帮助密歇根大学橄榄球队招募首屈一指的大学四分卫。该校此前宣布,这名球员将从路易斯安那州立大学转到密歇根大学。他们的新闻稿中包含了对“拉里和他的妻子乔林”帮助招募工作的奇怪致谢。记者们很快证实,这位“拉里”就是独一无二的拉里·埃里森!拉里为助威活动贡献了1200万美元,以资助最佳四分卫搬到密歇根。

这个故事中更大的谜团是这个“乔林”是谁。调查人员找到了拉里观看网球比赛时旁边一位戴着密歇根帽子的女士的老照片。两周后,一个主要新闻机构在凌晨5:30(我的警报又响了)爆出这位女士的身份是乔林(Keren)朱,并确认她是拉里的新妻子。

Andy的观点: 我为拉里在过去一年取得的成就感到骄傲。他以著名没有从任何大学毕业而闻名,且与密歇根大学没有事先联系。然而,因为他生命中的挚爱十年前去了密歇根,拉里通过写一张区区1200万美元的支票(约占他净资产的0.0055%)创造了奇迹。我特别告诉拉里,这对我意义重大,因为我以前的头号博士生现在是密歇根大学计算机科学系的教授,他们有著名的数据库小组。

更神奇的是,拉里又恋爱了!在当今世界,太多人难以找到那个特别的人。约会应用程序一片混乱,速配活动很尴尬,当你自己没有孩子的时候,在操场上闲逛以结识单亲父母被认为是不礼貌的。然后,当你以为你终于找到了合适的人,却发现他们不定期洗袜子或将热辣酱倒在冷麦片上时,一切都会崩溃。这就是为什么在拉里2010年与浪漫小说家梅兰妮·克拉夫特(第四任妻子)离婚后,所有人都告诉我拉里再也不会结婚了。在他们2020年与尼基塔·卡恩(第五任妻子)离婚后,他们也是这么告诉我的。但我知道得更清楚,拉里与Keren Zhu(第六任妻子)的秘密婚姻证明了我是对的!

结论

我本来计划开始这篇文章,炫耀这是我三年来第一次在纽约庆祝新年时没有生病。但后来我的亲生女儿给了我COVID,所以我因此而病倒了。我在九月接受了加强针注射,他们给了我Paxlovid,所以我会活下来。

我对OtterTune的死感到失望。但我学到了很多东西,并与许多杰出的人一起工作。我非常感谢Intel Capital和Race Capital一直支持我们到最后。我希望不久能宣布我们的下一个初创公司(提示:它是关于数据库的)。

与此同时,我很高兴能回到卡内基梅隆大学全职工作。Jignesh Patel和我有一些很棒的研究项目,我们希望在即将到来的一年里完成。我还期待着这学期教授一门新的查询优化课程。我需要弄清楚如何提高我的统计数据,因为在2024年9月,维基百科因为引用不足而删除了我的文章。

我们继续支持在库的DJ Mooshoo,他在库县被关押。我们希望在2025年将他解救出来。

本博客文章除特别声明,全部都是原创!
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【2024 年数据库回顾:一年综述】(https://www.iteblog.com/archives/10225.html)
喜欢 (0)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!