To digitally transform the business, AI must be real-time. For AI to be real-time, we need real-time analytics.[1]
Hybrid transaction/analytical processing (HTAP) is an emerging application architecture that "breaks the wall" between transaction processing and analytics. It enables more informed and "in business real time" decision making. ——Defined by Gartner
背景篇-引言
OLTP 和 OLAP 从不同维度之间的对比关系如下所示: 对比维度OLTPOLAP一句话特征小事务众多的场景使用复杂查询来处理较大数据量的场景ACID强弱面向用户数据库操作人员决策人员、高级管理人员,数据库科学家、业务分析师和知识工作者使用场景金融(如银行、股票)、电商、旅行预订等商业智能(BI)、数据挖掘和气压决策支持应用程序基本操作主要为:insert, update, delete为主主要为聚合操作,窗口操作等为主操作数据范围通常读写数据量较小(数十条记录)通常读写数据量大(数百万条记录)主要衡量指标事务吞吐量(TPS)查询响应速度(QPS)响应时间要求实时性要求高,通常毫秒级实时性要求低,依赖于所处理的数据量,时间范围由小时,分钟秒级,亚秒级等数据源业务系统实时事务数据业务系统中的历史数据,事务型数据数据库表设计规范通常需要满足三范式(3NF)不作规范数据量/磁盘空间较小,MB~TB级较大,GB~PB级并发量需要支持大并发环境对并发量要求不高稳定性要求高要求高可用性(备份,恢复)完整的备份,恢复能力(全量,增量)主要按时间点进行备份/恢复,备份/恢复要求不高数据完整性要求强一致性要求数据完整性要求不高系统吞吐量,IOPS低高挑战1.高吞吐量,保证数据完整性,可靠性等;2.完整的生态工具,不同异构产品间协调使用难度;1.海量数据高效,低成本的数据存储;2.复杂查询高效处理;可靠性要求通常要求高可靠性:主备、同城灾备、异地灾备可靠性要求相对低,一般同城灾备读特性简单查询为主、每次查询只返回少量数据复杂查询为主、对大量数据进行汇总写特性1.随机、低延迟、小数据量;2.数据更新、删除频繁1.很少有更新、删除操作;2.大数据量批量、并行导入数据模型ER(实体、关系)星型或者雪花、星座数据粒度行级 record多表数据结构高度结构化、复杂,适合操作计算简单、适合分析数据字段动态变化,按字段更新静态、很少直接更新,定时添加、刷新数据返回值一般为记录本身或该记录的多个列一般为聚合计算结果随着时间的推移,越来越多的业务对于 AP 的要求越来越向着 TP 的指标看齐,例如:要求 AP 系统能够实时反映出当前 TP 系统中的实际数据。同时,AP 系统可以支持数据的更新等等。总之,TP 系统和 AP 系统之间的边界在业务层面和用户层面上也越来越模糊,市场上迫切希望能够出现一种新的架构或者称之为者解决方案,能够同时满足业务对于 TP 负载和 AP 负载的需求。因此,HTAP 的概念随之而诞生。2014年 Gartner 给出了 HTAP 的明确概念:Systems that can support both OLTP (On-line transaction processing) as well as OLAP (on-line analytics processing) within a single transaction.[4]
HTAP:HTAP概念引入的目的,定义,适用场景介绍,HTAP的商业驱动力——问题的源动力?
商业上的驱动力
当前市场上对于数据的处理方式越加的注重多种类型的负载混合进行,即对于用户或者业务端来说,有一个统一的处理逻辑或者架构。如对于广告计算,用户画像,分控,物流,地理信息等商业场景下,原有的处理方式为在海量的历史数据中通过 AP(分析型处理)数据库或者自建的大数据平台,完成对于历史数据的计算,然后将 AP 计算的结果作为 TP(事务型处理)的输入结构,完成对于实时计算需求。
因此,在原有的架构环境下,对于此类的应用需要部署两套环境分别应对 AP 和 TP 两类负载,从而造成整个架构变得复杂,中间涉及到的组件较多,无法及时将 TP 数据实时更新到 AP 系统中,从而影响 BI 等应用的时效性。
" 陈旧的报告、缺失的数据、缺乏高级分析以及完全缺乏实时分析对于任何需要新见解以在商业客户时代保持竞争力的企业来说都是一种无法忍受的状态。"[2]
架构1:异构架构模式
商业上的驱动力,其原动力来自业务端的需求,没有业务端的需求变化,不会导致商业上的驱动力,由于现在市场中无论是互联网企业还是其他传统型企业,在其早期业务的发展过程中通常会采用架构一的方式来往满足业务需求;但该种架构在后期的使用过程中存在着各种各样的问题,如 AP 模块和 TP 模块之间的数据同步问题,运维的问题等等,而着会导致巨大的运营成本。
随着业务需要的发展和数据库技术的发展,使得数据库产品同时具有处理 AP 和 TP 的能力,且在处理 AP 负载的时候并不会对 TP 负载造成太大的性能波动,更重要的一个特性是在 TP 数据和 AP 数据可以做到“准”(或者实时)实时更新。因此,基于数据库的此项能力,业务端即可将原有的 AP 处理模块及 TP 处理模块进行合并,统一的交由该数据库进行处理,从而可以简化业务系统的架构。
架构2:统一架构
HTAP 则为上述问题提供了另外一个解法和思路。将 AP 和 TP 的能力由统一的系统对外提供,由此构成的业务架构简单化,同时具有一定的扩展特性。产生 HTAP 用户侧的需求或者诉求如下:
"May the force be with you." ——Star War.
作为一个新技术产生的另外一个重要的来源:技术驱动力,这才是实现人们想象力的基石。下面我们从技术的发展角度来看看,推动 HTAP 发展的另一个重要的源动力:in-memory, scale-out技术使得我们的架构可以进行扩展,使得我们可以在一个架构内满足不同负载需要变为可能。列存技术的发展则是我们实现 HTAP 的基石,分层存储架构为我们在成本和性能之间找到了一个平衡点。
1. 列存技术