HTAP 已死


本文翻译自:《HTAP is Dead》

这篇博客受到Jordan Tigani文章《Big Data is Dead》的启发。

旧时代的岁月(70年代)

上世纪70年代,一个关系型数据库可以完成所有任务。白天处理事务(OLTP),晚上生成报表(OLAP)。像Oracle V2和IBM DB2这样的数据库在同一系统上运行OLTP和OLAP,主要是因为数据集仍然可以装在几个磁盘上,而计算资源昂贵。

没有人称之为混合事务/分析处理(HTAP);它只是数据库而已。

重大分歧(80年代)

随着企业拥有更多数据,并提出更复杂的问题,数据库开始显示出它的局限性。

事务型和分析型工作负载是朝着相反的方向发展的。OLTP需要微秒级的插入和单行查找,而OLAP则需要全表扫描和大规模的聚合。这导致了持续的争用;分析型工作负载消耗I/O和缓存,这些资源对于低延迟的事务型工作负载来说是必需的,反之亦然。

解决方案是什么?隔离这些工作负载。到20世纪80年代初,这种“巨大分歧”已经开始出现。

存储的分离(90年代)

推动这种分歧的一个关键技术因素是存储架构。OLTP系统针对基于行的存储进行了优化(快速写入 + 点查询)。而OLAP系统则选择基于列的存储,以实现高效的扫描和聚合。

到2000年代中期,这种分离已经成为行业标准。数据库先驱迈克尔·斯托纳布勒(Michael Stonebraker)在他的论文《One Size Fits All:An Idea Whose Time Has Come and Gone》中标志着这一转变,该论文发表在ACM Digital Library上(https://dl.acm.org/doi/abs/10.1145/3226595.3226636)。数据库开始分裂成专门的引擎。

OLTP 和 OLAP 都放弃了 SQL(2000–2010 年代)

横向扩展推动了 OLTP 和 OLAP 之间的距离进一步拉大。

早期的分布式 OLTP 数据库(如 MongoDB 这类 NoSQL 引擎)完全摒弃了 SQL 和分析能力。在分析领域,我们看到了 MapReduce 和数据湖架构(Hadoop/HDFS)的采用:以牺牲传统关系型数据库的严格一致性为代价,换取巨大的吞吐量。

意想不到的和解(2010 年代)

在 2010 年代,两种不同的数据库运动逐渐兴起:

1. NewSQL(Spanner、CockroachDB、Vitess)。OLTP 应该保持基于 SQL。
2. 云数据仓库(Redshift、Snowflake)。OLAP 应该运行在具有更强一致性保证的 SQL 系统上。

从表面看,这些系统服务于完全不同的工作负载。但在底层,它们有很多共同点:分布式、MPP 风格的执行,以及 SQL。孤立来看,OLTP 和 OLAP 系统已经收敛于许多相同的架构原则。唯一一个大的不同点是:存储引擎。

我们问自己:如果可以将行存储引擎和列存储引擎结合到一个数据库中,会怎样?

没错,就是 HTAP (2014)

2014年,Gartner 引入 术语 HTAP(混合事务和分析处理):下一代数据库架构。

目标是缩小操作系统和分析系统之间的差距。这对于新兴的工作负载,如定价、欺诈检测和个人化,都是必要的。即使在企业层面,决策者也希望获得实时数据。早期的 HTAP 系统展示了这是可以实现的。不过,大部分情况是如此。

SingleStoreDB 结合了内存中的行存储、基于磁盘的列存储以及向量化执行引擎——在一个系统中支持快速扫描、查找、过滤、聚合和更新。随着时间的推移,我们发现,在现代硬件的支持下,仅列存储就可以处理大量OLTP风格的查询,包括点查找和低延迟的访问模式。

TiDB 采取了不同的路线,将其TiKV行存储与基于ClickHouse的独立列式引擎相结合——保持数据的两个副本以服务两种工作负载。

所以,这样应该就是全部了,对吧?70年代的数据乌托邦,唉,终究还是落空了。

云数据仓库是2020年代的唯一赢家

云数据仓库显然胜出。NewSQL运动停滞了……HTAP呢?它从未获得应有的关注。尽管有真正的技术进步,但它仍然处于预产品市场契合状态。

1. 替换一个人的OLTP系统真的非常困难。 请相信DBEngines的说法:Oracle和SQL Server仍然分别排在第1和第3位。

2. 大多数工作负载并不需要分布式OLTP。 硬件变得更快且更便宜了。单台性能强大的机器就可以处理大多数事务型工作负载。Cursor和OpenAI都是由单台Postgres实例驱动的。你完全没问题。

3. 云原生架构更倾向于共享磁盘,而不是共享无磁盘。 虽然NewSQL系统需要快速的本地存储(甚至需要内存持久性),但云平台则更倾向于对象存储和弹性计算。

4. OLTP和OLAP由不同的团队负责。 OLTP由产品工程团队负责;OLAP属于数据团队。激励机制很少一致。没有人因为“整合堆栈”而被晋升。

你的数据栈构成了HTAP数据库(今天)

云技术也开始推动从紧密耦合的数据仓库向基于对象存储的模块化数据湖转变。

在试图摆脱传统数据仓库/数据库的模式时,数据团队开始自行构建定制系统。这些系统由“最佳组件”构成:

1. OLTP系统和流处理器作为WAL
2. 开放表格格式如Iceberg作为存储引擎
3. 查询引擎如Spark和Trino用于执行
4. 实时系统如ClickHouse或Elastic作为索引

即使在今天解耦的数据栈中,需求依然不变:在最新的交易数据上实现快速的OLAP查询。这现在通过一系列流式管道、云数据湖和实时查询层的网络实现。

它仍然是HTAP;但通过数据库的组合而非整合来实现。这归结为诸如:

1. 如何将WAL应用到我的存储引擎上? AKA: 如何高效地从OLTP系统将数据同步到数据湖?

2. 我能否在我的数据湖上构建一个低成本的索引,并保持同步? AKA: 如何将实时数据摄入到湖中?或者如何使用Postgres或Elastic功能查询湖中的数据?

我们当前的HTAP挑战归根结底是让湖仓成为实时准备的系统。

在花费了我最好的10年时间,先是创立,然后是拯救之后,HTAP作为一种数据库已经死了。

但让精神继续存在。


相關推薦

2022-12-02

“在权威人士质疑 OpenStack(世界第四大开源项目)是否已死之际,OpenInfra 基金会测得生产中的 OpenStack 内核数量达到前所未有的 4000 万个。核心服务(Nova、Neutron、Keystone、Glance 和 Ironic)的采用率仍然很高,但随着运营商发展

2022-02-23

GNOME Project 近日宣布 Clutter 库正式退役,这个用于 GNOME Shell 并且是 GTK3 的核心库曾在 2006 年为 Linux 带来了基于 OpenGL 的硬件渲染。 Clutter 是一个用于渲染 UI 的图形库,最初由 OpenedHand 负责开发。其首个版本于 2006 年发布

2023-05-30

MINIX 操作系统大约的确已经死了。 Minix 原来是荷兰阿姆斯特丹的 Vrije 大学计算机科学系的 Andrew S. Tanenbaum 教授所开发的一个类 Unix 操作系统,全部代码共约 12,000 行,起初是为给学生讲解操作系统的运作细节而开发。 Linu

2022-04-01

微软曾于去年 5 月份,Internet Explorer 11 桌面应用程序将于 2022 年 6 月 15 日退役;同时将从某些 Windows 10 版本中淘汰 Internet Explorer 11,将其替换为基于 Chromium 的 Microsoft Edge。Edge 中包含有一个 IE 模式,以兼容依赖 IE11 的网站和应

2021-12-20

Apache Log4j 的 2.0-alpha1 到 2.16.0 版本存在新的漏洞 CVE-2021-45105 ,此漏洞评分 7.5 ,且在刚发布的 Log4j 2.17.0 (Java 8) 中得到了修复。如果把安全公司 Praetorian 发现的第三个信息泄露漏洞也算进去,这应该是 Log4j 的第四个漏洞了。

2021-12-17

官方解释Blazor现状,表示已不再维护Blazor,求开发者别用了 Blazor允许您使用c#而不是JavaScript构建交互式web UI。 Blazor应用由可重用的web UI组件组成,这些组件使用c#、HTML和CSS实现。客户端和服务器代码都是用c#编写的,允许您共

2022-09-24

构能够管理复杂性,因此能够成为更多用户的选择。在 HTAP 已经成为行业主流的今天,PingCAP 依旧以简单、实时的体验,持续引领 HTAP 风向。在七年的发展历程中,PingCAP 形成了一个助力客户成功的新范式,借助“自主开源 + 持

2023-07-15

iDB 持续不变的设计理念。从解决 MySQL 分库分表问题,到 HTAP 架构、云原生,再到 TiDB Serverless 数据库,都是该理念的延伸。经过多年发展,TiDB 目前已经拥有三大产品家族:一是面向企业级市场的 TiDB 企业版,服务于企业级关键

2023-08-03

a 云数仓场景下的数据存储与计算项目和通过一体化实时 HTAP 数据库 StoneDB 进行 MySQL 国产化数据库替代项目。     作为数字重庆建设生态企业和重庆市“满天星”行动计划企业之一,石原子科技将以实际行动,为数字

2022-11-17

层解耦”架构、多主多写、基于IMCI(内存列存索引)的 HTAP、Serverless 等功能已是全球首创或业内领先的技术。从 PolarDB 发布以来,它在技术和商业化上都获得了迅猛发展,如今已经成为阿里云数据库产品家族中最闪耀的产品。

2022-12-20

户数在不断增长,而 Atom 的使用者日益减少。 虽然 Atom 已死,但因为它而开发的 Electron 框架继续被众多应用程序广泛使用。Atom 项目创始人 Max Brunsfeld 则推出了 Atom 精神续作——用 Rust 语言开发的 Zed。

2025-05-20

往更长,平均长度是以往的两到三倍。 问:关于“谷歌已死”的说法,其实类似的论调早已多次出现。这一次,争议的焦点转向了AI对搜索体验的重塑。许多人将Gemini独立App拿来与ChatGPT和Meta AI做横向对比。数据显示,截至3月

2023-02-16

前行 | 一文带你回顾 StoneDB 的 2022 年 哪篇论文宣布了 HTAP 数据库的诞生?| StoneDB学术分享会#5 列存引擎 Tianmu 如何实现 Delete?| StoneDB 研发分享 #3 StoneDB 首席架构师李浩:如何选择一款 HTAP 产品? 子查询优化之 Semi-join 优

2022-02-22

看过上一篇文章《还有人记得 Linux 之前,那个理想又骄傲的 BSD 吗?》的读者都知道, BSD 是 Unix 最重要的一个开源分支,这一本该坐上“开源头把交椅”的操作系统家族承受了一场足以记载史册的浩劫。  时间倒回二十年前