HTAP数据库技术的现在和未来
本文根据王义成在【第十三届中国数据库技术大会(DTCC2022)】线上演讲内容整理而成。
讲师介绍
【嘉宾介绍】王义成:腾讯云 数据库总经理,深耕数据库领域10余年,数据库技术专家工程师。从事过数据库研发、数据库管理员以及云数据库产品经理多项工作。作为腾讯云数据库核心人员参与国产数据库TDSQL系列产品的自主研制与设计,带领团队持续用核心技术帮助企业完成数字化转型和业务创新。
本文摘要:随着云计算和企业业务的高速发展,HTAP技术受到行业内越来越多人的关注。在DTCC2022中国数据库技术大会上,腾讯云数据库总经理王义成带来了“HTAP数据库技术的现在和未来”的主题演讲,介绍了腾讯云在HTAP领域的思考和未来的发展规划,本文整理自该主题演讲。
分享大纲:
1. 什么是HTAP数据库?
2. HTAP 解决的问题
3. HTAP实现思路
4. 腾讯云数据库的选择
以下为演讲正文:
什么是HTAP数据库?
传统数据库OLTP和OLAP其实是一种泾渭分明的状态,用传统的OLTP数据库实现在线交易处理,TP数据库要保证数据的正确性包括整体的ACID特性,冷热数据分明,数据量相对较小,需要保证点查询的效率,也需要实现高并发、点查询、窄表的模型,最关键的一点是要保证增删改查数据的实时性。
传统数据库通过ETL工具将OLTP数据库的数据同步到OLAP数据库,在AP分析库中涉及大量数据的分析与计算,可能高达上百TP或者数十TP的数据,但是业务响应并发度并没有那么高,是在相对范围查询,数据量会非常大,复杂关联查询聚合宽表模型比较多,实时性要求比较低。数据库发展多年以来都是这种TP和AP泾渭分明的状态,很少有一款数据库支持两种业务场景,毕竟业务属性或者数据存储状态不一样。
HTAP数据库是最近几年兴起的一个概念,图中是Gartner对HTAP的一个定义,混合事务和分析型处理是一种新兴的应用程序架构,可以打破事务处理和分析之间的壁垒,让决策或者效能更加明确、实时。但是应用程序的架构并不是一个产品形态,HTAP不是一个产品,应该是一个技术演进方向或者应用程序架构的状态。
HTAP解决的问题
这些年,数据量持续暴增,互联网、IoT、智能制造等发展带来数据的爆发式增长,云计算的发展让数据汇聚变得更容易。HTAP的出现是为了满足降本增效的需求,原来一套OLTP数据库、一套OLAP数据库是两套系统,运维成本和人力成本将是双倍,用户体验较差,对接成本也非常高。数字经济的发展要求数据库有更高的及时性和准确性,数据要素的价值越来越高。
以前传统的应用场景,正常交易后隔一天或者几个小时以后再去做分析,现在数字经济发展起来,用户转账之后行为分析马上就会出来,在电商买一个东西以后人物模型需要实时计算出来,实现千人千面的实时推送。数字经济时代,互联网行业已经发生了实时需求的变化,未来传统行业也会发生这样的变化,原来TP和AP泾渭分明的状态,并不能适用于未来市场和客户的需求。
HTAP实现思路
如果HTAP是一个应用程序架构或状态,数据库怎么实现HTAP?我们认为数据库通过充分发挥硬件能力以满足应用高性能、低成本数据存储与查询需求的技术集合来实现HTAP。
想要将HTAP的应用架构或者Gartner定义的应用程序架构运用好,关键要看硬件的演进,可以看到云的发展带来基础设施逐渐升级,计算层面从最早的虚拟化技术到容器,架构越来越轻。另一方面,存储容量变得“无限”大,相比于十年前开始应用云的时候,现在一个单独的RAM存储已经扩展到原来的十倍,云的基础设施为整个应用架构带来了升级。
实际上软件和硬件还要做一些相应的磨合和整合,随着CPU、摩尔定律逐渐失效,硬件无法做到18个月性能整体提升1倍,再发展下去就会彻底失去CPU摩尔定律的特点。目前100GB网络在很多大型客户都实现了普及,RDMA在大型云厂商基础环境实现了普及,再过三到五年,RDMA基础环境也会变成普及的状态。未来内存容量会变得更大,频率提升会较慢。其实硬件的演进会助推HTAP数据库层面的应用架构走向成熟,也会让HTAP成为一个比较基础层面的演进。以前的硬件环境需要把TP和AP分开,随着云基础设施的普及,以及新硬件不断推出,未来可以逐渐向HTAP的应用架构形态演进。
而具体到数据库角度来看,HTAP的技术形态应该做什么?TP比较看重高并发、行存、事务、结构化,AP看重吞吐、列存、计算。通过统一化、标准化和平台化的能力将事务处理能力和分析能力直接整合到一套数据库,让数据库具备这种应用架构设计的HTAP能力,这就是数据库向HTAP演进的大方向。
HTAP作为一款新技术形态架构,会带来很多优势。首先为用户带来统一的技术栈,不管是协议层面还是基础层面,都要实现更优的用户体验,让业务的研发成本更低。其次是带来统一的数据,不管是行存、列存单独存储,还是行存、列存放到一起,数据都无需搬迁。然后是统一的运维,一套班底、一套系统,一个运维管理界面解决AP和TP负载同时存在的需求。统一云平台,让上手门槛更低。而站在使用角度来看,HTAP能够更实时,因为是一套系统,可以实现实时数据分析,包括即时策略和响应市场。此外,HTAP能带来更低的成本,把原来的行存OLTP和列存OLAP整合在一起,即使今天有些HTAP产品形态行存、列存还要单独存储,但是HTAP都可以极大节省计算和管控的资源成本。HTAP还可以滋生Serverless DB形态,实现随用随计费,实现更低的成本。HTAP的技术其实也可以实现更高规模的数据处理,突破传统的瓶颈达到主流的PB级别,基本实现存储近乎无限的扩展能力,以及计算无缝计费的弹性。
腾讯云数据库的选择
我们将HTAP定义为新型应用架构,腾讯云把HTAP技术理念放在不同的产品为客户提供服务。目前,腾讯云在三大产品系列都具备HTAP的能力:
首先是国产化场景下主推的TDSQL,在很多国有大行、保险等金融机构都实现了国产化替代落地。TDSQL经过腾讯云内部十几年的积累和打磨,有效支撑了微信、QQ和财付通等业务。TDSQL兼容MySQL和PostgreSQL协议,支持无限扩展。融合了HTAP的应用架构特点,底层做数据分片,计算层面有OLTP优化,可以根据负载需求自动选择使用行存节点处理还是列存节点处理。
腾讯云第二个HTAP应用程序架构的数据库产品是云原生数据库TDSQL-C,TDSQL-C是典型的云原生分布式数据库,采用存算分离架构,日志即数据库,通过日志在网络间传输,跨存储再去做相应的数据库引擎封装,实现存储层面实质回放。TDSQL-C可以为用户提供ServerlessDB,真正实现极致弹性扩缩容,实现极致TCO。TDSQL-C采用云原生架构,能够利用最新的硬件技术为用户提供产品服务。TDSQL-C兼容标准的开源协议,采用Shared Storage架构。HTAP形态需要在计算层面实现内存置换以实现HTAP能力的用户访问,TDSQL-C是一个典型的将HTAP应用程序架构运用到云原生数据库上的案例。
腾讯云第三个具有HTAP架构形态的产品是缓存数据库KeewiDB,KeewiDB是腾讯云自研的兼容Redis协议的NoSQL数据库,具有数据持久化、分布式、多种一致性等特性。KeewiDB为用户提供极致的性能,热数据提供Redis级吞吐,冷数据比 RocksDB 高2-5倍,水平堆叠到亿级吞吐。拥有更低的成本,实现缓存+存储的一致性解决方案,打破原来客户单一使用Redis作为内存或者缓存使用的单一应用场景,降低开发和运维复杂度,KeewiDB具备良好的HTAP能力。
总结来看,HTAP是一个良好的应用程序架构,能够更好地解决今天数字化转型过程中的一些特定需求,为了用户运维的便捷性,以及满足业务降本增效的需求,腾讯云一直将HTAP的应用程序架构应用到王牌数据库产品中,HTAP已经成为腾讯云数据库自带的附加能力。