当前位置: 首页 > 科技观察

你真的了解Htap吗?

时间:2023-03-12 20:49:14 科技观察

HTAP是目前数据库领域最受关注的词,也是我们被误解最多的词。曾经一个企业的IT主管跟我说,如果选择HTAP数据库产品,是不是连数据仓库都拆了,以后只有在线交易系统和大数据平台做。这其实包含了对HTAP的巨大误解。HTAP=OLTP+OLAP,上面的公式是真的吗?今天我们就简单了解一下传统的OLTP和OLAP是什么样子的。以上是传统的数据仓库架构,传统的事务域和数据仓库域是分离的。大量的在线交易系统都是先将数据拷贝到发帖源层的ODS中,再通过ETL工具加载到数据仓库中。同时,数据仓库也会存储一些外部数据,甚至是一些外购数据。存储在数据仓库中的高价值数据经过处理形成一系列的数据集市供业务系统使用。在这种架构中,在线交易和数据分析是从两个完全不同的负载中分离出来的,避免了相互干扰。但是这种架构最大的问题是ETL的延迟比较大,很多需要及时分析的业务无法保证。因此,缩短在线交易系统与数据仓库之间的延迟非常重要。Oracle公司推出了一套基于准实时ETL产品ODI的解决方案。生产系统采用ORACLE的事务型数据库模式,通过ODI捕获生产系统的变化,通过定义的转换规则准实时进行ETL操作,以ORACLEOLAP模式将数据复制到数据仓库。上述优化方式虽然可以解决部分数据仓库的延迟问题,但无法满足一些对实时性要求较高的业务。因此,在线交易系统中支持比较强大的数据分析功能的需求应运而生。这个需求就是HTAP计算模式。但是聪明的朋友可能也看出来了,这种HTAP计算并不等同于在线交易+数据仓库业务。因为如果我们要把一个企业的高价值数据全部存储在一个数据库中,就可以达到替代数据仓库的目的。而且这样的设计会让单个数据库变得过于沉重。一旦这个数据库出了一点问题,就可能影响到整个企业的业务,这是我们不能承受的。企业需要的HTAP能力不需要完全覆盖数据仓库业务,只需要完善核心业务需要的在线分析能力即可。因此,HTAP数据库中需要存储的是OLTP系统本身的数据,以及从外部提取的一些分析需要的高价值数据。上图是不是看起来简单很多,但是这种简化的业务需求实现起来并不容易。这是因为TP系统运行稳定,高并发,低延迟,多为通过索引访问,大量写操作的小业务。对于并发写入量大的表,尽量减少不必要的索引;而AP系统运行高度随机和资源密集型操作,其中大部分需要并行扫描大表,以及持续时间较长的基于读取的分析服务。读写操作之间会相互影响。对于大量的写操作,索引越少越好,而对于大量的读操作,索引越多越好。AP运行的临时资源开销可能会导致TP业务时延出现规律性抖动,使TP业务无法承受。TP业务往往需要访问一个表的多个字段来实现复杂的业务逻辑,所以行存的性能最好。AP业务经常扫描分析某一列的数据,所以如果数据按列存储,性能会更好。这些服务之间的矛盾使得在数据库中承载混合HTAP负载变得非常困难。事实上,我们的OLTP系统真的需要HTAP工作负载吗?答案是否定的。大多数OLTP系统只需要一定的批处理负载来处理一些复杂的数据。在一个设计良好的OLTP系统中,通过定期自动汇总数据、物化视图等,可以大大减少高开销的AP工作负载。只有极少数系统确实必须具有复杂的准实时OLAP需求。至于AP的实时性要求,大部分问题都可以通过更实时的数据复制和ETL来解决。此外,分布式SQL引擎的效率、OLTP/OLAP的资源隔离和抗干扰措施、数据存储格式、大规模集群管理、读写副本的使用、主副本切换带来的性能抖动等都会影响到系统性能。影响数据库的HTAP能力。.既然HTAP负载不是业务系统必须追求的,那为什么我们随便看到一个分布式数据库总是说我们是一个HTAP数据库呢?这其实和分布式数据库的发展历史是分不开的。分布式数据库刚出现的时候,主要是针对高并发的OLTP写服务。因此,这些数据库产品的多表关联和复杂分析功能非常薄弱。分布式数据库厂商也在不断优化自己的产品,努力提升自己在这方面的能力。于是,为了标榜自己的技术优势,大家展开了HTAP能力的军备竞赛。即便如此,如果有一款HTAP能力很强的数据库产品出现在我们面前,对于用户和软件开发者来说,绝对是一件好事。这将丰富我们的管理系统和交易系统的功能。对于某些行业的业务系统,可能会推动业务发生革命性的变化。比如,能源行业多年来一直提倡源-网-芯-储交互。由于我们的数据处理能力不足和不及时,导致我们在电力生产、用电、储能、调度等方面的数据不能得到及时的处理和分析,大大降低了能源的综合利用。目前,电力是一种不能大规模储存的资源,供电侧产生的电能必须均衡消耗,否则多余的电能要尽快消耗掉,用电时某一个地方网络不足,只有拉断电才能保证整个网络上的电力均衡。当电力侧发电量过大,或电力需求过大,供电不足或电力调度不及时,造成一定程度的电力缺口时,电网将因以下原因解体失衡。2013年,洛杉矶大停电或之前的2010年德州大停电悲剧将重演。我国近年来没有出现过类似情况,说明我国大电网调度运行水平很高。然而,这种高水平并不意味着它非常有效。我们的电网调度非常依赖相对稳定的电源,比如火力发电。水电、光伏、风能等清洁能源的不稳定性将大大增加电网调度的难度。因此,我国弃风弃光比例一直高于西方发达国家。为实现碳中和目标,增加清洁能源供给势在必行,因此源、网、核、储互动能力的提升十分重要。准确及时的数据采集和数据分析是提高源-网-芯-存交互效率的关键。必须提高电能表采集频率(欧洲最先进的电网计量已实现5分钟全采集,而我们目前的主流水平是重点电表仅15分钟间隔采集一次),提高数据交换水平与发电企业合作,对气候、社会热点、制造业增长、对外贸易等数据进行更广泛的采集、处理和分析,逐步提高电网调度规划水平。从目前的电力采集系统到大数据平台的数据复制延迟一天来看,几乎不可能完成这个任务。具有强大HTAP处理能力的数据库是解决这一计算问题非常关键的IT基础设施。这是一个非常现实的HTAP计算场景。遗憾的是,我们在为这个场景选择数据库产品的时候,并没有找到一款能够应对这个业务场景的国产数据库产品。在其他行业,也可以找到很多这样的计算场景。在提高企业效率、降低企业成本的业务创新中,这种需求也会增加。因此,数据库产品开发HTAP能力非常重要。只是我们国内数据库的HTAP能力建设还处于起步阶段。目前国内大部分数据库可以提供的HTAP能力,大部分都可以通过业务系统优化来规避。在真正对HTAP有强烈需求的场景下,我们的产品支撑能力还是略有不足。