Databases in 2024: A Year in Review // Blog // Andy Pavlo - Carnegie Mellon University
发表于:2025年1月1日
过去一年发生了许多事情,从十亿美元级别的收购案,到厂商在许可证变更上的“街头乱舞”,以及最著名的数据库界八旬老人花重金招募大学橄榄球四分卫以取悦新欢。
我答应我的第一任妻子,今年要写得更专业些。我还被告知,一些大学将我的年度博客文章列为数据库课程的必读材料。看看这次会如何吧。
往期文章:
这是我的数据库,我想怎么授权就怎么授权!
我们正处于数据库的黄金时代。有许多优秀的(关系型)数据库适用于各种应用领域。许多数据库是开源的,尽管它们由获风投支持的盈利公司开发。
但风投投资是为了回报,他们想要满满的收益。所以,这些公司通常会推出基于云的数据库托管服务。然而,云服务让开源数据库变成了一门棘手的生意。如果某个开源数据库系统变得太流行,那么云厂商(比如 Amazon)就会直接将其作为服务提供,并从中赚取比开发这些软件的公司更多的钱。这种威胁促使许多数据库公司更改其源码许可证,以防止云厂商转售其产品。MongoDB 是最早这样做的公司之一,他们在 2018年改为 Server Side Public License (SSPL)。
过去一年,许可证变更引发了许多动荡,其中最引人注目的两个案例是 Redis™ 和 Elasticsearch。
Redis
Redis Ltd.(公司)正在积极准备 IPO。公司最初以 Redis Labs 的名义于 2011 年成立,并在 2021 年更名为 Redis Ltd.,当时他们从 Redis 的创建者(Salvatore Sanfilippo)手中收购了 Redis 商标,而这位创建者是由 Redis Labs 提供资金支持的。过去几年,Redis Ltd. 试图巩固对 Redis 生态系统的控制,并力图摆脱 Redis 仅仅是一个内存缓存工具的印象,增加了对向量和其他数据模型的支持。
2024 年 3 月,Redis Ltd. 宣布将系统从原本非常宽松的 BSD-3 许可证切换为双重许可证模式,即专有的 Redis Source Available License 和 MongoDB 的 SSPL。同一天,他们宣布收购了 Speedb,这是 RocksDB 的一个开源分支。
Redis 改变许可证的决定迅速引发了强烈反弹。同一周内,两个基于原始 BSD-3 代码的分支项目被宣布:Valkey 和 Redict。Valkey 起初由 Amazon 发起,但很快 Google 和 Oracle 的工程师也加入其中。仅仅一周后,Valkey 项目加入了 Linux 基金会,多家大公司也将开发资源转向了这个项目。Redis Ltd. 的形象进一步受损,因为他们利用 Redis 的商标控制开源扩展的行为被广泛批评。
在 2024 年 12 月,Redis 的创始人宣布他正在与 Redis Ltd. 的管理层联系,希望能“回归”,重新团结 Redis 社区。这显然是在向 Bushwick Bill(RIP)、Scarface 和 Willie D 于 2015 年重组时致敬。
Elasticsearch
Elastic N.V. 是支持领先文本搜索数据库 Elasticsearch 开发的盈利公司。2021 年,他们宣布切换到双重许可证模式(Elastic License 和 MongoDB 的 SSPL),这是为了应对 Amazon Elasticsearch 服务的崛起,尽管该服务早在 2015 年就已推出。Amazon 对此并不买账,并宣布推出 OpenSearch 分支。
三年后,Elastic N.V. 在 2024 年 8 月宣布再次变更许可证,改为 AGPL。他们在博客文章中引用了 Kendrick Lamar 的歌词(例如《Not Like Us》)。Amazon 对此非常不满,被比喻为“数据库界的 Drake”。随后在 9 月宣布将 OpenSearch 项目的所有权转交给 Linux 基金会。
Andy 的看法
这些许可证的争端看似琐碎,但别忘了,数据库领域涉及巨额资金。这仅仅是两个数据库系统的例子!我还没有提到 Greenplum 悄悄关闭了其开源代码库,转为专有模式,结束了九年的开源支持。但没有人注意到,因为几乎没有人愿意主动运行 Greenplum。唯一能让我想起同样放弃开源的数据库系统是 2023 年的 Altibase。
坦白说,我并不喜欢 Redis。它速度慢,有伪事务,其查询语法更是令人抓狂。我们在 CMU(卡内基梅隆大学)的实验表明,Dragonfly 的性能远超 Redis,即使是在单核 CPU 下。在我的数据库课程中,我用 Redis 的查询语言作为反面教材。然而,我对 Redis Ltd. 被 Amazon 压制的处境表示同情。但 Redis Ltd. 似乎高估了构建像 Redis 这样简单系统的技术门槛。与构建像 Postgres 这样功能全面的数据库系统相比,Redis 的进入门槛显然低得多,因此社区对他们的这种姿态并不买账。
Elasticsearch 的故事与 Redis 类似,只不过它们的剧情发展得更快:公司宣布更改许可证,竞争对手创建开源分支,最后公司不得不改回开源许可证,收获的是冷淡的反响。
许可证变更背后的更大问题
Redis 和 Elasticsearch 遭遇的反弹比其他更改许可证的系统更大。例如,当 MongoDB、Neo4j、Kafka 或 CockroachDB 改变许可证时,并没有形成类似的分叉浪潮。CockroachDB 甚至在 2024 年再次修改了许可证,以迫使大型企业付费。
Redis 和 Elasticsearch 的用户基数并不比这些其他系统大得多,因此不会因为用户数量更多而导致更多反弹。对于 Redis,我认为部分原因是人们认为 Redis Ltd. 不公平地从他人工作中获利,因为该公司的创始人并非系统的原始创建者。对 Redis 源代码库的分析显示,系统的大量贡献实际上来自公司外部(例如腾讯、阿里巴巴)。这种“窃取荣耀”的行为也是 HashiCorp 在 2023 年更改 Terraform 许可证时引发愤怒的原因。
这些许可证变更反映了开源独立软件供应商(ISVs)在数据库市场中的长期生存问题。云厂商是拥有无限资金的巨头。如果一个开源数据库系统大获成功,他们会开始托管该系统,并赚得比 ISV 更多的钱。或者,他们直接将数据库的协议作为前端,连接到现有的系统上,比如 AWS 在 2024 年 3 月为其 Timestream 数据库添加了 InfluxDB v2 协议支持。
AWS 随后推出了与 Valkey 兼容的新服务,其价格比与 Redis 兼容的服务便宜 30%。这就像 Bushwick Bill 的女朋友朝他眼睛开了一枪一样(指 AWS 窃取市场的方式)。
更新(2025-01-01):我之前提到 AWS 在 Timestream 数据库上添加了 InfluxDB v2 协议。实际上,AWS 与 Influx Data 合作,推出了 InfluxDB v2 的托管服务。
更新(2025-01-01):我遗漏了一条新闻:ScyllaDB 在 2024 年 12 月宣布将其开源版本(AGPL)停用,并将企业版本改为“源码可用”模式。
Databricks vs. Snowflake 的竞争继续
Databricks 和 Snowflake 之间的竞争依然激烈。这场“经典数据库战争”已经从性能对比扩展到数据管理的其他领域,而且变得更加昂贵。
LLM(大型语言模型)之争
2024 年 3 月,Databricks 率先出招,宣布花费 1,000 万美元开发了一款名为 DBRX 的开源 LLM,拥有 1,320 亿参数。这个模型由 Mosaic 团队主导开发,而 Mosaic 是 Databricks 在 2023 年以 13 亿美元收购的公司。
一个月后,Snowflake 发布了 Arctic,这是一款拥有 4,800 亿参数的开源 LLM。他们声称训练这款模型只花费了 200 万美元,并在“企业任务”(例如 SQL 生成)中优于 DBRX。你可以看出 Snowflake 的意图,他们在声明中提到其他模型(例如 Llama3)在某些方面表现更好,但重点突出他们比 DBRX 更强。这表明 Snowflake 更关心对 Databricks 的直接竞争。
一位 AI 研究员对 Snowflake 的分析表示困惑,为什么他们如此关注 DBRX,而不是其他模型。这位研究员显然不了解这两家数据库竞争对手之间积累的“血海深仇”。
数据目录(Catalogs)之争
在公开的 LLM 竞争之外,Databricks 和 Snowflake 的另一场战争在幕后展开,围绕数据目录系统展开。
在 2010 年代的大部分时间里,Hive 的 HCatalog 是数据湖中的默认目录系统。Netflix 和 Uber 分别在 2010 年代后期推出了 Iceberg 和 Hudi 作为替代方案,并逐渐成为 Apache 的顶级项目。这些系统为对象存储(如 S3)提供元数据服务,并支持新数据的事务式摄取。
Databricks 拥有一个名为 Unity 的专有目录服务,适用于其 DeltaLake 平台。而 Snowflake 则在 2022 年首次宣布支持 Iceberg 表,并在随后的几年中不断扩展对 Iceberg 的支持。2024 年,他们计划收购 Iceberg 背后的主要公司 Tabular,以 6 亿美元的价格与 Databricks 的 Unity 和 DeltaLake 竞争。
然而,就在 Snowflake CEO 准备在 2024 年 6 月的大会上宣布这一消息时,Databricks 突然出手,以 20 亿美元抢先收购了 Tabular。同一天,Snowflake 的 CEO 正在大会上发表主题演讲,介绍他们的新开源 Polaris 数据目录服务。Databricks 的这一举动无疑是“踩在 Snowflake 的脸上”。
一周后,Databricks 再次出招,宣布开源 Unity 数据目录系统。这简直是“直击要害”。
Andy 的看法:关于这场数据库大战
这场数据库竞争与以往的数据库战争(例如 1990 年代 Oracle 和 Informix 的竞争)有所不同。当时的竞争主要围绕性能指标,比如查询延迟的快慢。而 Snowflake 和 Databricks 的竞争则超越了性能,扩展到数据库生态系统的建设上。
具体来说,这场竞争不再只是关于谁的查询引擎更快。数据分析型查询的矢量化执行已经成为一种通用技术(commodity)。事实上,Databricks 和其他 OLAP 厂商基本都在遵循 Snowflake 2013 年的架构设计,而这个架构本身来自 Snowflake 一位联合创始人的博士论文。
当前的重点已转移到数据库周边的基础设施上,也就是用户如何将数据导入数据库,以及如何使用工具处理这些数据。这包括一些难以货币化的质量提升功能、工具兼容性,以及 AI/LLM 的“魔法”。
尽管如此,Snowflake 和 Databricks 的激烈竞争对消费者来说是件好事。这种竞争的强度意味着更好的产品和技术(例如 Snowflake 的 Polaris 项目现在已成为 Apache 项目),并最终(希望)带来更低的价格。这与过去 Oracle 和 SalesForce CEO 的互怼不同,那只是两个富豪在昂贵的大会上互相嘲讽。
DuckDB 的全面崛起
正如 Postgres 已成为启动新操作型数据库的默认选择,DuckDB 也逐渐成为运行分析型查询的默认选择。在此之前,Pandas 曾占据这一位置。而 DuckDB 的强大便携性使得许多数据库系统开始尝试将其嵌入到自身之中,以弥补 OLAP(在线分析处理)工作负载支持的不足。
2024 年 DuckDB 的集成扩展
-
Crunchy Data:2024 年 5 月,Crunchy Data 发布了一个专有桥接扩展,将 Postgres 的 OLAP 查询重定向到 DuckDB。他们之后还扩展了该插件,以利用 DuckDB 的地理空间功能加速 PostGIS 查询。
-
ParadeDB:2024 年 6 月,ParadeDB 发布了一个开源扩展(pg_analytics),通过 Postgres 的外部数据包装器(Foreign Data Wrapper,FDW)API 调用 DuckDB。在此前的版本中,他们曾使用 DataFusion(pg_lakehouse),但后来切换到了 DuckDB。
-
DuckDB Labs:2024 年 8 月,DuckDB 官方发布了一个名为 pg_duck 的扩展,由 MotherDuck 和 Hydra 合作开发。尽管 Microsoft 和 Neon 起初也参与了开发,但由于开发控制权的争议,这两家公司后来退出了合作。
-
pg_mooncake:2024 年 11 月发布的 pg_mooncake 是最新的 DuckDB 扩展,与其他扩展不同,它支持通过 Postgres 将数据写入 Iceberg 表,并提供完整的事务支持。
Andy 的看法:为什么 DuckDB 崛起?
大多数 OLAP 查询并不访问太多数据。根据 Fivetran 对 Snowflake 和 Redshift 的查询追踪分析,查询扫描的数据中位数只有 100 MB。对于如此少量的数据,单个 DuckDB 实例就足以应对大多数查询。
DuckDB 的便携性和便利性是其在 Postgres 社区中迅速普及的原因。尽管 ClickHouse 自 2016 年以来已存在,但直到最近才变得像 DuckDB 一样易于使用。这些 DuckDB 扩展为用户提供了进入更广泛数据生态系统的单一入口,无需分别安装不同的扩展来访问 Iceberg 或 S3 数据。DuckDB 可以为你处理所有这些需求,使组织无需昂贵的数据仓库即可获得高性能分析功能。
Postgres 对扩展和插件的支持令人印象深刻。自 1980 年代以来,Postgres 的设计目标之一就是可扩展性,支持新的访问方法、数据类型以及操作。我们研究发现,Postgres 的扩展生态系统是所有数据库管理系统中最广泛和多样的。然而,Postgres 缺乏扩展间的安全机制,这可能导致扩展相互干扰并引发错误行为。
与早期为 Postgres 添加列式存储的项目(如 Citus 和 Timescale)不同,DuckDB 同时解决了列式存储和矢量化查询处理的问题。
随机事件汇总
2024 年数据库领域还发生了许多值得注意的独立事件,以下是一些简要总结:
重要发布
-
Amazon Aurora DSQL:
AWS 推出了类似 Spanner 的分布式数据库,但目前公开信息不多(见 Mark Brooker 对数据库架构的讨论)。关键理念包括分布式日志服务(传言该服务可能基于已停用的 QLDB)和基于时间戳排序的 Time Sync。这一公告表明“Aurora”这一品牌在数据库领域的强大影响力,因为 AWS 选择用这个名字命名这款新数据库,尽管它似乎与现有的 Aurora Postgres RDS 产品没有共享代码。 -
CedarDB:
Umbra 是目前世界上最先进的数据库之一,由全球顶尖数据库系统研究员 Thomas Neumann 开发。然而,Thomas 更愿意留在大学,一边在 Clickbench 排行榜上保持领先,一边避免烦人的客户问题。他的顶尖博士生分叉了 Umbra 的代码,并将其商业化为 CedarDB。 -
Google Bigtable:
最有趣的部分是,这个曾在 2000 年代末引领 NoSQL 运动的数据库,在 2024 年开始支持 SQL。 -
Limbo:
Turso 一直在开发 SQLite 的 libSQL 分支,但在 2024 年,他们宣布完全用 Rust 重写 SQLite。他们在公告中指出 SQLite 的价值不仅在于其代码本身,还在于其极高的测试标准,确保它在各种环境下运行无误。这也是为什么 Limbo 的开发团队与由前 FoundationDB 成员创立的一家确定性测试初创公司合作。有关 FoundationDB 的测试更多信息,可参考他们在 2020 年 CMU-DB 的演讲。 -
Microsoft Garnet:
这款键值存储系统是 Microsoft Research 之前开发的 FASTER 系统的继任者。Garnet 支持 Redis 协议,提供查询间并行性、内存外数据库支持以及真正的事务能力。如今,Redis 已经不应该是任何人的首选了。 -
MySQL v9:
在 MySQL v8 发布六年后,团队推出了 v9。但人们很快发现,当数据库包含超过 8,000 张表时,它会崩溃。我对这个新版本的功能清单并不感到兴奋。Oracle 似乎将所有时间和精力都放在了其专有的 MySQL Heatwave 服务上。虽然 MySQL 仍被广泛使用,但行业的关注度已经转移到 Postgres 上。 -
Prometheus v3:
自上一个主要版本发布以来已经过去了七年。如今有许多兼容的替代方案,原始的 Prometheus 对某些组织来说可能已不是最佳选择。
收购
-
Alteryx → 私募股权:
我从未遇到过使用 Alteryx 的人,对此没有特别看法。 -
MariaDB → 私募股权:
希望收购 MariaDB Corporation 的私募股权公司能清理这个烂摊子。有关 MariaDB 问题的分析,请参考我去年对这个“垃圾堆”的总结。 -
OrioleDB → Supabase:
如果你是领先的 Postgres ISV(独立软件供应商),收购 OrioleDB 是合情合理的。Postgres 的前端非常强大,但其存储架构已经过时,而 OrioleDB 解决了这个问题。 -
PeerDB → ClickHouse:
提供更好的 ETL 工具,将数据从 Postgres 提取到 ClickHouse。这是 ClickHouse Inc. 的明智之举。 -
PopSQL → Timescale:
他们买下了一个高质量的 SQL 编辑器界面。这是一个用户体验上的改进。 -
Speedb → Redis Ltd.:
见前文讨论。他们可能会利用 Speedb 来实现 Redis 的数据落盘功能。不过,Speedb 的开发人员从未详细解释他们在 RocksDB 分支中做了哪些改进(或者我没找到相关信息?)。Mark Callaghan 最近对 Speedb 和 RocksDB 的比较可能会提供一些线索。 -
Rockset → OpenAI:
这是一个大新闻,但遗憾的是,Rockset 在 2024 年 9 月关闭了其数据库即服务(DBaaS)。Rockset 拥有一支优秀的工程团队,其中许多顶尖的数据库工程师来自 Facebook。不过,我从未喜欢过他们的数据库系统,因为其索引中存储了三份数据副本,占用太多空间。 -
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:获得 1,200 万美元 A 轮融资。
- TigerBeetle:获得 2,400 万美元 A 轮融资。
此外,还有 CedarDB、SpiralDB 等公司的融资,但金额尚未公开。
关停
-
Amazon QLDB:
如果连 Amazon 都无法从区块链数据库中赚钱,那就没人能做到。是的,我知道 QLDB 不是一个真正的 P2P 区块链系统,但它已经足够接近了。 -
OtterTune:
我、Dana 和 Bohan 在这个研究项目和初创公司上几乎奋斗了十年,现在它已经结束了。我对某家公司在最后阶段对我们的处理方式感到失望,因此禁止他们从 CMU-DB 招聘学生。他们知道自己做了什么。
我还要特别表扬 Andres Freund,他在 2024 年于微软从事 Postgres 工作时发现了 xz 压缩库的后门。这次攻击是一个长达两年的行动,目的是将恶意代码注入这款在计算领域广泛使用的重要压缩库中。尽管这个后门的目标是 SSH 而不是直接针对 Postgres,但这再次证明了为什么数据库工程师是世界上最优秀的程序员之一。
Andy 的看法:
Databricks 连续第二年在数据库领域的融资中遥遥领先,完成了一笔令人瞠目结舌的 100 亿美元 J 轮融资。这是在 2023 年 5 亿美元的 I 轮融资和 2021 年 16 亿美元的 H 轮融资之后的最新成绩。与前几轮融资不同,这次资金主要用于回购员工股票,因为一些员工对 Databricks 不可避免的 IPO 一再推迟感到不耐烦。
卡内基梅隆大学数据库组(CMU-DB)有多位校友在 Databricks 工作,其中包括一位曾经排名第一的博士生。我知道他们中的一些人正焦急地等待 Databricks 的 IPO,以决定他们接下来的职业规划。
即将到来的一年将是许多数据库初创公司实力的试金石。没有人愿意成为下一个 MariaDB Corporation,因此许多公司正在等待 Databricks 带动的市场浪潮后再选择 IPO。2025 年可能的利率下降也许会为一些两年前已筹得大额资金的数据库公司(如 CockroachDB、Starburst、Imply、DataStax、SingleStore、Firebolt)打开更多融资机会。其中,唯一的亮点是 dbtLabs,据我所知,他们的表现非常出色。
另外,可以参考2024 年发布的新数据库管理系统列表(Database of Databases)。
Larry Ellison 的传奇 2024 年
你知道谁在今年迎来了 80 岁生日吗?那就是传奇人物 Larry Ellison!他再次证明了自己是个拒绝安于现状、不受束缚的人。
首先,Larry 在 2024 年的诸多商业运作中,推动自己成为全球第三富豪。3 月份,由于 Oracle 股票大涨,他在一天内赚了 150 亿美元。随后,他在 7 月以 60 亿美元收购了派拉蒙影业,又以 2.77 亿美元买下了一家棕榈滩度假村。所有这些都仅仅是他一年壮举的“开胃小菜”。
更令人惊讶的是,Larry 在 2024 年最重要的成就,居然是帮助密歇根大学橄榄球队招募了一名顶级四分卫。他捐赠了 1,200 万美元给密歇根大学的助推计划,帮助这名球员从路易斯安那州立大学转学到密歇根大学。这一消息震惊了整个体育和商业界。
更大的谜团在于与他一同出现在新闻中的“Jolin”是谁。最终,媒体确认这名女子是 Larry 的新妻子 Jolin Zhu(朱可人),这是 Larry 的第六任妻子。
Andy 的看法:
我对 Larry 在过去一年中取得的成就感到无比自豪。他以从未完成大学学业而闻名,也与密歇根大学没有任何先前的联系。然而,仅仅因为他生命中的挚爱大约十年前曾就读于密歇根大学,Larry 就挥笔写下了一张区区 1,200 万美元的支票(约占他净资产的 0.0055%),创造了奇迹。我告诉 Larry,这件事对我来说尤其意义重大,因为我的一位曾经排名第一的博士生现在是密歇根大学计算机科学系的教授,并且是他们著名数据库组的一员。
更令人惊喜的是,Larry 再次坠入爱河!在当今社会,找到那个特别的人对许多人来说是一件困难的事情。交友应用一片混乱,相亲活动令人尴尬,而如今如果你没有自己的孩子却在游乐场附近徘徊试图认识单身家长,那会被认为不合时宜。更糟糕的是,当你以为终于找到了对的人,却发现对方不常洗袜子,或者喜欢在冷麦片上加辣酱时,一切都会崩塌。
正因如此,大家都认为 Larry 在 2010 年与第四任妻子、浪漫小说家 Melanie Craft 离婚后,再也不会结婚了。等到 2020 年他与第五任妻子 Nikita Kahn 离婚后,许多人再次告诉我,Larry 不可能再走进婚姻殿堂。但我比他们更了解 Larry,而 Larry 也用事实证明了我的判断是正确的——他悄悄地迎娶了第六任妻子 Keren Zhu!
总结与展望
Andy 的总结
我本来打算以“这是三年来我第一次不是在新年夜感冒中度过”作为开头来庆祝这篇文章的完成。但不幸的是,我的亲生女儿传染了我 COVID-19,所以现在我正躺在床上。不过,我在 2024 年 9 月打了加强针,现在也服用了 Paxlovid,所以我应该会没事的。
让我感到遗憾的是 OtterTune 的倒闭。这是一个我与 Dana 和 Bohan 合作了近十年的研究项目和初创公司。尽管如此,我从中学到了很多,也有幸与许多杰出的人才共事。我非常感谢 Intel Capital 和 Race Capital 一直支持我们到最后。我希望很快就能宣布我们下一家初创公司的消息(提示:它与数据库有关)。
与此同时,我很高兴能够全职回到卡内基梅隆大学。我与 Jignesh Patel 正在进行一些“非常酷”的研究项目,希望能在新的一年里有所成果。此外,我还期待在新学期教授一门关于查询优化的新课程。我需要想办法提高我的“学术数据”,因为 2024 年 9 月,Wikipedia 删除了我的个人页面,原因是引用次数不足。
最后,我要向 DJ Mooshoo 表示支持,他目前正被关押在库克县监狱。我们希望能在 2025 年让他重获自由。
特别感谢
我还想感谢 ByteBase 因他们的文章《2024 年数据库工具回顾》。在过去几年里,他们曾经多次发邮件,询问是否可以将我的年度数据库文章翻译成中文并发布在他们的博客上。今年,他们等不及我完成这篇文章,就自己写了一篇基于相同标题和主题的“山寨版”文章。