过去一段时间,数据库圈有个很热的词“HTAP”( H ybrid t ransactional/ a nalytical p rocessing)。
有不少数据库厂商拿这个概念在进行营销,例如 StoneDB ,宣传是云原生的 HTAP 数据库产品。
从概念上讲,HTAP 数据库的本意是结合TP(在线事务)和 AP(数据分析)的处理,让一个数据库就拥有这两种能力。
然而,传统的 OLTP 关系型数据库就没有 AP 能力么?
很显然,并不是。
所有的传统关系型数据库,如 Oracle、MySQL、Microsoft SQL Server 等,都有 AP 的处理能力。
结论1: 从概念上讲 HTAP 是一个彻彻底底的伪命题。
上次在某群讨论这个话题的时候,网易杭州研究院执行院长汪源的说法很是认同:
是的,如果真有所谓的 HTAP 数据库,那么业界最成功的案例应该就是 MySQL 主从架构的 HTAP 数据库。
无 ETL 烦扰,秒级同步,使用广泛,简单易懂。
肯定有同学会说:MySQL 的 AP 能力很弱!达不到业务的需求。
没错,你说的很对。
但请你说出一个 AP 数据库可以满足所有业务的需求?
是不是也没有?单一的 AP 数据库都不到,谈什么 HTAP 数据库呢?
结论2: 不存在一种 HTAP 数据库,可以满足业务所有的 AP 需求,只能是部分。
那 HTAP 是不是用户的真正需求呢?他们是否希望有一个独立数据库可以即完成 TP 又完成大部分 AP 的工作呢?
最近发现 AWS 上的一个帖子,有用户提问 AWS 是否有推出 NewSQL 或 HTAP 的数据库计划?
用户的提问也蛮专业。例举了 TiDB、Vitess、YugaByte,MySQL Heatweave 结合了 TP 和 AP 能力,同时也省去不同数据库之间的 ETL 代价,是否 AWS 也有这样的计划?
AWS 的回答:没有。
AWS 的答复也相当专业,也值得好好解读。
首先, AWS 90-95% 的需求来自于客户 ,而不是一堆数据库专家 YY 的各种需求。目前没有接到用户这样的需求,所以没有这样的计划。
是 AWS 没有研发能力做所谓的 HTAP 数据库么?
显然不是。是没有客户需求。
然后,AWS 解释道 NewSQL 主要在于 Scale-Out(横向扩展)能力。如果你有 Sacle-Out 的需求可以使用 Aurora Multi-Master 功能。
然而,AWS 特别指出 Aurora 单节点就可以有 10W TPS 的能力,已经能满足大部分业务的需求。
这也与我前面的文章 ,观点出奇的一致。
接着,AWS 谈到 HTAP 数据库。如果用户有 AP 的需求,则可以使用 AWS 的 DMS (Data Migration Service)同步数据到 Redshift 去处理。
AWS 的潜台词是如果你觉得 ETL 很麻烦,不用担心,我帮你做好了。AP 能力直接用 Redshit 即可。
总结来说,AWS 目前没有收到来自客户这样的需求。如果你有需求,可以使用 Aurora + DMS + Redshit 完成。
如果实在不满意,可以去 AWS Marketplace 去看看有无第三方 HTAP 或 NewSQL 数据库的选择。
结论3: AWS 用户没有迫切的 HTAP 数据库需求 。
这些年我们见证了不少关于数据库的“新概念”。无一例外,都没有成功。
NoSQL 数据库厂商说,关系型数据库们太老了,要什么 SQL 解析器?影响性能。要什么关系型,直接文档存储就好。
NewSQL 数据库厂商们说,关系型数据库们太老了,做不好 Scale Out 横向扩展的功能,性能跟不上。
HTAP 数据库厂商们说,关心型数据库们太老了,只能 TP、AP 二选一,我们什么都能做。
Cloud Native Database 数据库厂商们说,关心型数据库们太老了,数据放在云上才是新时代数据库该有的样子。
TiDB 曾说他是 NewSQL 数据库,接着说他是 HTAP 数据库,现在他又说自己是 Cloud Native Database。
总结:中国不缺世界级优秀的数据库开发人员,而是真正了解 用户 ,想做 成 事情的人。
以上。