2023-08-23 20:56:17 来源: 程序员客栈
“HTAP”作为数据库领域的当红炸子鸡,其热捧度逐年递增。特别是在随着国产化数据库浪潮逐渐替代原有数据库架构的进程中,业务系统中各类的复杂数据查询与在线交易交织的场景需求日益增多,使得业务对数据库HTAP的能力要求逐渐严格起来。
【资料图】
随着各大厂商的不断努力,市面上也涌现了一大批优秀的HTAP数据库产品。TDSQL很早就对外提供了HTAP能力,并在多行业场景应用中落地,很多小伙伴也都很关注TDSQL的HTAP架构到底是如何实现的,今天就好好跟大家说道说道。
一套“简单即可靠”的架构
在讨论这个问题之前,我们需要知道TDSQL 是什么产品?TDSQL 是基于腾讯自研内核TXSQL打造的企业级分布式数据库,在TXSQL的基础之上解决了透明分布式事务、一致性、高可用、扩容、性能等问题,同时做了大量内核工作,如线程池、主备的强同步优化、binlog优化、复制限速、大表删除、透明加密、审计、读写分离等。
但作为HTAP数据库而言,不同负载场景下的“隔离性”、高并发场景下TP与AP各自的极限性能、数据的“新鲜程度”,都是数据库设计过程中需要进一步考虑的问题。为此,TDSQL 在已经有着优秀的“在线交易处理内核能力”的基础上,秉承“简单即可靠”的设计理念,通过松耦合的方式扩展了一个全新的分析引擎。
下图即是TDSQL 全新的HTAP产品架构,TDSQL 在底层通过多个数据分片将数据表均匀分散在不同的存储节点中,并通过主从复制的能力实现数据高可用。
TDSQL 的SQL Engine负责接收用户的业务SQL,并在此基础之上实现分布式事务等相关能力。在行存数据节点中,数据均是以"行"的形式进行存储的,这种模式能够很好地兼顾数据库的扩展性和高并发的数据变更与查询,以支撑到超高并发的在线交易型业务。
那么在多表join、数据聚集、排序等复杂查询场景下又是如何实现的呢?前文中也有提到,TDSQL 在行存节点的基础之上扩展了一个分析引擎,因为TDSQL 是多分片的模式,分析引擎为每一个TDSQL分片(SET)启动一个列存的从库,然后自动同步对应的分片数据到列存从库中,最后由统一的MPP SQL Engine组件解析用户的复杂SQL,并生成MPP计划下推到各列存节点中执行,从而最终加速了复杂查询的执行效率。
当然分析引擎的能力肯定不仅仅是MPP 和列存,其中还包括了向量化的执行引擎、基于代价的优化器优化、数据压缩等各类关于分析型查询的能力加持。
TDSQL的优势
在这样一套“简单”的架构下,TDSQL 提供了哪些HTAP能力优势呢?
松耦合度行列混存架构(隔离性好)TDSQL最终采用了松耦合的部署模式,对同一份数据采用行存与列存分别存储,虽然增加了存储消耗,但这样做的好处是保证了在线交易性能又保证高速的分析能力。通过这种分散的部署方式确保了隔离性,避免互相影响。
分布式MPP计算引擎与向量化执行(性能优)因为TDSQL 是 shared nothing 的分布式架构,相对而言无论是竖向还是横向的扩容都能支持。并且分析引擎还扩展支持了全节点并行处理,与高效向量化执行引擎,能够支持数亿级数据join 场景下的超高性能。
高稳定性列式数据存储(稳定性高)底层列式存储是基于类LSM Tree引擎结构的实现,支持高压缩比的数据存储。因为LSM Tree 对数据的更新采用append的方式进行,后端会定期的compaction,而compaction 占用大量IO从而影响系统性能的稳定,所以我们对于LSM Tree的compaction 的机制进行了较大的优化和能力提升,能够支持 HTAP场景中存储的超高性能稳定性,在高数据变更负载情况下,查询性能依然波动较低。
可插拔引擎与可选择式加速(成本低)作为TDSQL 的一个分析引擎组件,可根据实际情况进行开启或关闭,并且同样支持按需指定对象进行分析加速,无需占用过多磁盘空间。
实时数据分析与查询(实时性高)TDSQL列存引擎的数据是实时从行存节点中进行同步而来。行存与列存数据默认异步同步模式,可达到毫秒级同步延迟。
统一访问入口,业务改造量小(易用性高)完全兼容和适配TDSQL架构与语法。对现有TDSQL集群升级简单,影响小,并且支持多种数据访问模式,可充分满足业务的实际需求,接入门槛低。
适用场景
那么当前的TDSQL HTAP 适用于什么业务场景呢?
超大数据规模的HTAP混合查询类业务在大型SaaS类业务中,用户规模大,不同用户以租户维度共用一套实例,并且伴随着数据量增大,在线数据更新也比较频繁。同时还需要对数据进行报告分析,实时为决策者提供详细报表,以供经营分析。
或者如广告业务推荐,业务后端需要利用数据针对不同客户情况进行广告推荐,需要大量复杂查询。
通过引入TDSQL HTAP的解决方案,可以使用分布式数据库的能力应对用户超高并发的在线交易业务,并且在某些混合复杂查询业务的场景下,通过分析引擎进行加速,以达到超高的执行和查询效率。
2020年,TDSQL助力“第七次全国人口普查”电子化高效推进,实现海量数据高速入库和海量数据的多维统计分析,支持了十亿级用户数据、七百万个终端和百万级峰值TPS(每秒事务处理量),平稳、高效支撑第七次全国人口普查工作完成。详情点击阅读:14亿人的大项目,拿下!一般流批一体的大数据架构实际上更适用于PB以上的超大数据集的在线和离线分析。但是无论怎么样,必然会涉及到时间同步的延迟性问题,以及多种的异构数据库产品,维护成本较高昂。
而采用TDSQL HTAP一体化的架构实现,可满足在一定量数据量级下的数据在线实时分析,通过在TDSQL基础上扩展资源,总体成本可降低80%,运维复杂度也极大的减少。
数据跑批归档与定时报表当客户场景有着大量数据密集型分析业务,如银行风控/贷款等业务场景中,业务决策者不仅需要实时查看业务报表,还伴随着超大规模数据并发读写,定时数据批量查询写入下游业务的大数据跑批,并且需要保证分析性能与交易数据完整性,要求既能满足超高线上TPS的交易业务,又能够同时满足实时分析的需求,两者不能互相影响。
通过引入TDSQL HTAP可提升:
分析时效提升:数据实时查询,几乎无延时。 分析性能:报表查询基本秒级返回,无需等待BI缓慢刷新,对比传统数据库性能提升210%。 成本降低:将原有的数据分散管理变为集中化数据管控和数据治理,降低维护成本。 数据降级存储随着业务规模的增长,业务数据规模逐步增长,为了确保在线交易性能,需要定时归档数据。而在归档后数据不能直接删除,需要合并查询输出报告或者留存。在此类场中对数据库吞吐性能要求高,且不能影响在线业务。
通过引入TDSQL HTAP可支持:
高效归档效率:随时支持动态数据停止同步,以及历史数据删除,效率高。 多级归档机制:支持列存压缩归档方案与落冷磁盘归档方案。 归档数据定时查询:完成归档后的数据依然支持超高速查询,不影响数据访问。结语
当然,本文仅简单介绍了一些TDSQL HTAP方面实现的能力和架构,详细的介绍在后续的文章中也会逐步提到,欢迎保持关注“腾讯云数据库”官方微信公众号,我们将为您分享更多价值内容。目前整体使用TDSQL HTAP中分析引擎的集群规模已经突破数万核心、存储容量达到10PB,支撑了数百家内外客户的生产环境作业。
欢迎更多用户体验全新的TDSQL HTAP解决方案,相信在实际的体验中会发现,无论是性能的提升还是能力的扩展都将是一场惊喜之旅。
﹀
﹀
﹀
HTAP大潮下,TDSQL的探索与实践
14亿人的大项目,拿下!
↓↓点击阅读原文,了解更多优惠