htap数据库是什么
HTAP是混合型关系数据库,是能同时提供OLTP和OLAP的混合关系型数据库。HTAP数据库有:1、广义的HTAP数据库;2、狭义的HTAP数据库。其中广义的HTAP数据库是能在关系数据模型上进行OLTP时具有强一致性保证,并融合分布式能力从而具有高扩展性。
HTAP,全称为Hybrid transaction and analysis processing,即混合事务和分析处理。HTAP是混合型关系数据库,是能同时提供OLTP和OLAP的混合关系型数据库。
1、广义的HTAP数据库
在关系数据模型上进行OLTP时具有强一致性
OLTP,联机事务处理,是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理。强调数据库内存效率,强调内存各种指标的命令率,强调并发操作。例如银行交易,可能同时有几十人在办理业务,在保证业务能正常办理的前提下,速度还要快。
融合分布式能力从而具有高扩展性以内存型主列存为基础结合增量行存支持HTAP
主列存主要处理OLAP类分析查询,增量行存负责OLTP类事务操作,并直接将更新数据定期合并到主列存中。此类系统因为以列存为主,所以OLAP的性能很高,OLTP处理性能中等。分布式HTAP数据库业界代表性系统是SAP HANA。以分布式架构支持混合事务与分析处理。
其分布式行存为主存储,列存为行 存的副本,主节点在处理事务时写入日志,并异步式地向其他节点发送最新日志,通过分布 式协议进行事务处理。其中,有部分节点会被选为列存节点,负责加速复杂查询。此类系统面向OLTP和OLAP的扩展性都很高。分布式HTAP数据库业界代表性系统是TiDB。
2、狭义的HTAP数据库
指采用行列混存或行列转化技术来同时支持事务能力和分析功能
- 行存为主,内存列存为辅。针对有需要的表会同时存在一份行存储和列存储,在列存储上做分析操作,在行存储上进行更新,定期同步到列存储里,可以灵活指定需要采用行存与列存的表,也可以系统运行时更改表特性。主要难点为哪些数据转为列存、如何用行存和列存回答查询,代表系统为Oracle;
- 主机行存、备机内存列存,备机通过日志复制转为内存的列存提供分析能力。代表系统为MySQL HeatWave,分析型查询由系统查询引擎基于代价估计后决定是否下推到内存列引擎中执行,常被访问的热数据将会留在内存中,不常使用的冷数据将会被压缩后持久化到外存中;
- 多副本行列共存,通过多副本进行存储,主采用行存,副本采用列存。代表性系统为TiDB,行存数据存储在TiKV中,列存数据存储在TiFlash中,行存和列存松耦合,通过异步复制Raft log的方式将更新从行存节点同步到列存节点,列存节点不参与Raft协议的日志提交和leader选举等分布式事务,具有较高负载隔离性和扩展性,数据分析新鲜度偏低;
- 列存为主,行存为辅。增量数据通过delta表定期转为列存,主列存主要处理OLAP类分析查询,增量行存负责OLTP类事务操作,并直接将更新数据定期合并到主列存中。此类系统因为以列存为主,所以OLAP的性能很高,且增量行存直接与列存连接,数据分析的新鲜度也很高。但缺点也很明显,就是OLTP处理性能中等,扩展性也不高,负载隔离性很低,代表系统为SAP HANA,主列存通过压缩、向量执行和OLAP多维分析等技术进行查询加速,同时利用CPU多级缓存机制优化事务处理。
拓展阅读
HTAP应用场景是什么?
HTAP带来的,应该是业务与架构的创新与提升,而不仅仅是替换或者性能的提高。由此出发,本文认为HTAP的应用场景主要集中如下两个方面:
- 分析能力内嵌的业务系统(Analytic-Embeded OLTP)
有了HTAP的能力,未来的交易型业务系统,都应该在业务交易侧,就天生拥有分析的能力,并且不影响交易的性能与数据的一致性。
如风控、营销或者其它原来需要在后台数据平台端通过数据迁移与同步才能完成的能力,相当一部分,可以迁移到业务系统侧实时完成,成为业务系统内在的功能,使其本身就能完成一定程度的业务闭环,这必然是技术驱动现代业务发展的重要方向。未来的业务系统应该以此标准来设计,这对现代交易系统的业务能力改造与升级有很大的意义。
- 以“用”为核的数据服务超市(Data SuperStore)
大多数的数据仓库(Data Warehouse)体系,都是为“管”而生的,应用很难享受到数据的红利。绝大多数的企业,在花大量精力建立了数据仓库(Data Warehouse)体系后,业务系统与人员大多只能通过“请求技术人员协助完成”及“把数据导到业务系统来”两种方式来使用数据,这种应用与数据分隔的现象是大多数企业过去很长一段时间及至今都极为关注的痛点。
面向数据消费,在现有数据平台之上,建立以“用”为核,以“管”为基的数据服务平台,即数据中台这一概念的正确解释,已经成为很多企业规划与实施的重点创新与升级应用之一。它不同于Data WareHouse是为了存与管,而是为了让全企业的用户能将数据(准确讲是面向业务整理后的数据资产,因不是本文重点,这里不作赘述)当作超市的商品一样自由选择与消费,从而让全企业享受到数据的红利,因此,这里认为称之为数据服务超市(Data SuperStore)更为恰当。
然而,抛开数据资产体系建立等架构与模型层面的内容不说,应该用什么样的数据库来承载这个SuperStore呢?
面向数据消费的 SuperStore,即要承载来自全企业的大量、高并发的服务型查询需求(QPS的TP型),也要承载大量探索型的统计分析需求(AP型),这种要求显然不是纯OLAP数据库,也不是纯OLTP数据库能满足的,显然又必须是弹性分布式的。因此,过去相当多的数据服务平台,都是采用多种类型数据库,组合满足不同需求来设计的。那么,HTAP数据库,就应该是该场景的优异选择。