HTAP是什么HTAP(Hybrid Transaction and Analytical Processing)数据库,也称混合型关系数据库,是能同时提供OLTP和OLAP的混合关系型数据库。在互联网浪潮出现之前,企业的数据量普遍不大,特别是核心的业务数据,通常一个单机的数据库就可以保存。那时候的存储并不需要复杂的架构,所有的线上请求OLTP和后台分析OLAP都跑在同一个数据库实例上。随着互联网的发展,企业的业务数据量不断增多,单机数据库的容量限制制约了其在海量数据场景下的使用。
因此在实际应用中,为了面对各种需求,OLTP、OLAP 在技术上分道扬镳,在很多企业架构中,这两类任务处理由不同团队完成,同时部署的OLAP和OLTP通过ETL进行衔接。为了提升OLAP的性能,需要在ETL过程中进行大量的预计算,包括数据结构的调整和业务逻辑处理。这样的好处是可以控制OLAP的访问延迟,提升用户体验。但是,因为要避免抽取数据对OLTP系统造成影响,所以必须在日终的交易低谷期才能启动ETL过程。
这样一来, OLAP与OLTP的数据延迟通常就在一天左右,习惯上大家把这种时效性表述为T+1。其中,T日就是指OLTP系统产生数据的日期,T+1日是OLAP中数据可用的日期,两者间隔为1天。这个时候我们会发现,这个体系的主要问题就是OLAP系统的数据时效性,T+1太慢了。随着大数据时代互联网的高速发展,商业决策更加注重数据的支撑,大量应用要求对海量数据进行实时更新和查询,这都要求OLAP系统更快速地反映业务的变化。另一方面,企业需要维护不同的数据库以便支持两类不同的任务,管理和维护成本高。
因此,能够统一支持事务处理和工作负载分析的数据库成为众多企业的需求。在此背景下,由 Gartner 提出的 HTAP成为希望。基于创新的计算存储框架,HTAP 数据库能够在一份数据上同时支撑业务系统运行和 OLAP 场景,避免在传统架构中,在线与离线数据库之间大量的数据交互。HTAP=OLTP+OLAP?我们了解了OLAP 数据库和 OLTP 数据库之后,我们再来考虑:HTAP=OLTP+OLAP,是这样吗?我们来仔细考虑考虑,OLTP系统多为行存储,主打高并发、低延时和高稳定性,能够实现复杂的查询操作以秒钟级的响应,适合经常写入的小型业务;而OLAP主要用于大规模的复杂查询,持续时间很长,性能开销极大,主要以读取内容为主,且依赖丰富的索引,常常按列存储;如果他们部署在一起,OLAP的临时查询开销可能会影响OLTP的写入延时,另外很多OLTP数据库在执行OLAP业务时,仍然需要将行存数据转储到列存表中,这样也会大大的影响业务执行效率。现实情况是,对HTAP的需求,日常还是以OLTP为主,但也需要对数据进行加工,以保证偶尔的OLAP工作负载,这里说的OLAP场景并不是真正意义上的OLAP,它只为了提升在OLTP系统中执行复杂查询的性能。所以大部分的HTAP并不完整包含OLAP的完整功能,且他们的OLAP功能整体比较弱,只是满足偶尔提取一些需要用于分析的少量数据。在实际的使用过程中,很多企业为了实现HTAP,是花了不少代价的。选型过程中功能需要考虑的因素包括:数据存储格式、SQL引擎的效率、OLTP/OLAP的资源隔离与防干扰措施、数据有几份备份、如何避免大型集群产生数据沼泽等等。
可以说综合性能和成本来考量,对于很多企业,HTAP并不能是OLAP的替代方案。如何满足当今的OLAP业务在大数据不断高速发展的时代,当您的企业发现传统的数据库已经不能满足业务需求,需要选型OLAP或者HTAP来解决OLAP需求时,重要考虑哪些影响数据使用的因素呢?SQL能力:是否具备完善的SQL标准和ACID特性,支持对接和兼容常用的开源组件,来保障用户轻松实现不同数据基础设施的平稳迁移。实时性:在瞬息万变的商业社会,要尽快的做出决策需要进行实时的数据分析和数据服务。正如我们刚才分析的,HTAP要兼容OLAP和OLTP场景,往往很难保证全量数据T+0实时性。高并发:在需要大量使用高并发OLAP的场景,HTAP如何满足;同时,还需要考虑高负载运行时对OLTP业务的影响。扩展能力:当计算和存储需要扩展时,不同的架构的数据库会有不同的扩容方式,相对而言,存算分离的数据库可以自由增减计算和存储资源,按需付费节约成本。
按照上述的参考,您在选型OLAP或者HTAP时,如果希望获得支持存算分离、分布式事务处理、SQL 兼容性、云化弹性供给、Hadoop 生态、性能优化等关键特性的解决方案,以此来助力企业实现降成本、提性能、全融合的大数据建设目标,建议选择Snowflake、Databricks、OushuDB 这一类云原生数据平台,它们突破了传统 MPP 和 Hadoop 的局限性,实现了上述的存算完全分离,计算和存储可部署在不同物理集群,并通过虚拟计算集群技术实现了高并发,同时保障事务支持。近两年,国内也诞生了全实时 Omega 架构的湖仓一体,甚至可以完成全量数据 "T+0"的流处理和实时按需查询,摆脱了"T+1"的传统痛点,强大的云原生OLAP也有效解决了HTAP面对海量数据管理的问题。