HTAP数据库,即事务分析混合负载DB,已经成为一个流行的新数据库。这一概念不仅非常热门,而且也逐渐成为除OLTPOLAP之外越来越多数据库用户的新选择规范。但是,同时也存在一些现象:一是一夜之间,所有数据库都变成了HTAP数据库;二是除了可以同时承载事务和分析SQL”的模糊理解外,基本没有明确的定义。自然,HTAP的应用场景也是多种多样且不明确的。这些都导致了HTAP成为一个噱头的趋势。

1HTAP的定义

这里认为HTAP数据库要成为新的标准和规范,必须尽可能明确定义。实现这一目标最基本的原则是,它必须在技术上不同于过去的经典数据库(不仅仅是分布式的),它必须给客户的数字化进程带来创新和升级,这包括业务架构、应用架构、数据架构和技术架构。面对这一原则,其定义和界定可以继续讨论,但本文仅提出以下几点供参考:

(1) HTAP数据库在技术架构和设计目标上,不应该等同于经典的OracleMySQL,或者分布式的OracleMySQL类,因为如果经典的OracleMySQL可以看作是HTAP(能够同时承载事务和分析SQL”来衡量,肯定是),那么HTAP的定义就没有意义了;

(2 )/ kloc-0/的事务和分析任务的执行,应该是让用户透明使用,有互不影响的基础,而不是AP多了对TP影响大,TP多了对AP影响大,经典的OracleMySQL就是这样;

(3)HTAP不应该面向几个仓库的纯OLAP的需求。也就是说,其对企业数据架构的推广,不应以现阶段放弃数据仓库系统为目标;

(4) Modern HTAP数据库,应该是分布式数据库。

2HTAP应用场景

如前所述,HTAP数据库应该带来的是业务和架构的创新和提升,而不仅仅是替换或者性能提升。因此,本文认为HTAP的应用场景主要集中在以下两个方面:

(1)分析嵌入式OLTP(分析嵌入式OLTP)

有了HTAP数据库的能力,未来所有的事务型业务系统都应该在业务事务端,天生就有分析能力,不影响事务的性能和数据的一致性。比如风控、营销或者其他原本需要通过后台数据平台端的数据迁移和同步来完成的能力,有相当一部分可以迁移到业务系统端实时完成,成为业务系统的内部功能,使其完成一定程度的业务闭环,这必然是技术驱动的现代业务发展的重要方向。

未来的业务系统应按照这一标准进行设计,这对现代交易系统业务能力的转型升级具有重要意义。

(2)为核心的数据超市。

数据仓库系统大多为管理而生,应用很难享受到数据红利。在大多数企业中,花费大量精力构建数据仓库系统后,大部分业务系统和工作人员只能通过请求技术人员协助完成将数据导入业务系统两种方式来使用数据。这种应用与数据分离的现象,是现在大部分企业长期以来非常关注的痛点。

面对数据消费,在现有数据平台上构建基于使用管理的数据服务平台,即数据中心概念的正确解读,已经成为众多企业规划实施中的关键创新和升级应用之一。与数据仓库不同的是,它是为了存储和管理,而是让整个企业的用户自由选择和消费数据(准确的说是业务整理后的数据资产,这不是本文的重点,让整个企业享受数据红利。因此,这里称之为数据超市更为恰当。但是,抛开数据资产体系的建立等架构和模型的内容,要用什么样的数据库来托管这个超市呢?

面向数据消费的SuperStore不仅承载了来自整个企业的大量高并发面向服务的查询需求(QPSTP类型),还承载了大量探索性的统计分析需求(AP类型)。这个要求显然不是纯OLAP数据库或者OLTP数据库所能满足的,显然必须弹性分布。因此,在过去,相当多的数据服务平台是通过使用各种类型的数据库来设计的,以满足不同的需求。那么,HTAP数据库应该是这个场景的最佳选择。