复杂查询性能弱,只读分析引擎来帮忙

图片

导语

随着当今业务的高速发展,复杂多表关联的场景越来越普遍。但基于行式存储的数据库在进行复杂查询时性能相对较弱。

在复杂逻辑越来越高频的需求下,这怎么解决呢?这就促使了开发者在实现过程中将一些复杂逻辑变成了分批次的从数据库中取出数据,然后在业务中使用代码去处理的独特现象。或者使用一些数仓产品来去承载此类业务,但是这样子的做法自然就导致了业务架构复杂,逻辑臃肿等诸多问题的发生。

那么到底如何在数据库中解决这些问题呢?腾讯云数据库 TDSQL-C 推出了只读分析引擎功能,通过扩展的只读实例结合列式存储与计算优化的方案可轻松应对一切复杂查询场景,从容处理在业务中的慢 SQL。

只读分析引擎简介

只读分析引擎是 TDSQL-C MySQL 版支持的全新功能,此功能基于 LibraDB 引擎实现,通过只读实例提供服务。其可插拔式的引擎设计可以实现灵活的创建以及销毁,同时为用户提供海量数据处理与高效实时的复杂分析能力。使用只读分析引擎,业务完全无需维护复杂的 ETL 组件,直接开启只读实例即可轻松享受处理复杂查询场景下的极致性能。

图片

高速分析引擎 LibraDB

不同于TDSQL-C MySQL版原生基于 Innodb 引擎升级改造的 TXSQL引擎,LibraDB 引擎是一款自研的列式存储与计算引擎。Innodb引擎能在读写实例和只读实例中选择使用,但是 LibraDB 引擎只能在只读实例中被选择。

LibraDB 引擎支持以非常低的执行时延从海量数据中完成复杂查询分析,让您的业务分析系统可以及时高效地获取到有用的信息。LibraDB 引擎支持向量化引擎、大规模并行执行等针对分析类查询的加速特性,无论是在超大表的多表 JOIN、数据聚合和排序,还是复杂嵌套 SQL 等查询场景,LibraDB 引擎都能提供出色的性能体验。更加详细关于 LibraDB 引擎的计算能力文章可参考:LibraDB 计算引擎设计与思考(技术干货丨TDSQL 列存引擎 LibraDB 计算模型的设计与思考)

灵活开关的分析引擎

只读分析引擎兼容 MySQL 协议和语法,用户无需修改业务代码,可直接将复杂的查询语句放置于只读分析引擎中执行,同时亦可根据业务的实际情况选择是否开启只读分析引擎,并且在无需分析加速的时候,可随时关闭只读分析引擎,以达到控制成本的目的。

实时列存数据加载能力

通过只读分析引擎内置的数据加载组件,可快速将 TDSQL-C MySQL 版中的数据加载至只读分析引擎中。同时在完成数据加载后,亦可实时同步在读写实例中对数据的所有变更,使行列数据变得实时一致。另外,针对传统列式存储在高并发数据UPDATE与DELETE的场景中数据变更低效的问题,LibraDB 引擎也提供了在高并发数据更新场景下的列式存储能力,可以支撑实时的数据同步,以达到数据实时同步的效果。

指定数据加载能力

作为传统的只读实例而言,所有的主库数据均需要同步到从库中。但是对于只读分析引擎而言,可以支持指定对象加载到分析引擎中,而不是一定要求所有的对象。用户可以指定需要使用只读分析引擎加速的库表,或者有数据分析价值的库表加载到只读分析引擎中进行数据分析,灵活控制只读分析引擎所占用的磁盘大小。

图片

超高数据压缩率

基于列式存储的结构,提供超高数据扫描性能的同时,还能够同时提供至少 50%的压缩率,大幅度降低存储的成本。

完善的云上托管能力

无需运维复杂的 ETL 逻辑,无需关心数据库的后端运维,通过全托管的产品设计,让您获得开箱即用的数据分析能力体验。同时,通过全面监控功能,从 TXSQL 到分析引擎,从链路层到存储层,精心筛选出核心指标,为您去繁化简,让您能迅速通过关键指标了解实例健康情况,为业务系统的使用提供有效的优化指引。除此之外,您还可以自定义阈值告警,提前防范可能出现的异常情况。

适用场景

只读分析引擎旨在为用户提供实时的高性能数据分析,以帮助用户解决自行构建 ETL 工具同步数据的复杂运维难题。通过只读分析引擎的功能,用户可以轻松地一键化地构建数据分析实例,以作为业务决策的依据,充分发挥数据的价值。

报表分析、实时看板

面向企业内部分析和管理者的报表系统,可以及时、实时地查看到业务系统线上的运行情况;或者面向业务运营的数据分析业务。此类业务场景中的查询 SQL 复杂,且查询模式不固定,需要较高的吞吐,同时线上数据较多,使用只读分析引擎可满足业务在此类场景下的实时性与高性能。

用户画像、行为分析

在广告业务、游戏运营场景下,经常会需要针对用户行为、用户画像进行深度分析,分析后的结果用于实时的经营决策。此类场景数据量大、需要及时返回数据分析结果,查询 QPS 较高,使用只读分析引擎,用户可以在此类场景中快速获得需要分析的数据,用于用户行为分析,以作为精准推送相关业务的决策依据。

实时数据仓库

在电商大促订单的数据分析、物流行业的运单分析、金融行业的绩效分析、指标计算、直播质量分析、广告推送分析、智能驾驶舱、探针分析场景下亦可使用只读分析引擎以获取超高的复杂查询性能。

大数据对账、批量计算

在一些在线业务中,特别是与金钱有关的业务场景中需要定时对数据进行统计合并的对账计算,在传统的行式数据中进行数据批量计算对账效率低,资源消耗高。无法快速的达到业务预期。通过借助只读分析引擎的超强并发计算能力可以以极高效率的完成业务需求。

未来展望


只读分析引擎本期即将在云原生数据库 TDSQL-C MySQL版中正式开启内测,后续只读分析引擎亦会在云数据库 MySQL 等 MySQL 系列产品中陆续上线。使用相关产品的伙伴可敬请期待。