5月29日, DataFunSummit——多维分析架构峰会“HTAP 引擎论坛”如约而至,本论坛由腾讯云数据库技术总监李跃森老师出品。同时,论坛上,腾讯云数据库高级工程师陈再妮带来了主题为“TDSQL在HTAP领的探索与实践”的演讲分享,以下为分享回顾。
所有节点对等 可通过任意节点查询或者加载数据 不存在性能瓶颈和单点风险
1
一、分布式数据库TDSQL-PG简介
第一个是业务特征,如果业务满足这些特征,那TDSQL-PG是非常适合的——在数据量上,OLTP超过1T,OLAP场景数据量超过5T;并发连接数超过2000,峰值业务100w/s;需要在线水平扩展能力;此外还需要同事兼顾OLTP以及OLAP的HTAP场景;并且需要严格的分布式事务保证; 第二个是业务的场景,TDSQL-PG在HTAP场景、地理信息系统,以及实时高并发、数据库国产化等场景也是很好的选择。
1
二、TDSQL-PG HTAP能力介绍
OLAP 以及 OLTP 业务访问的是同一份数据; 资源隔离,保证 OLAP 业务不影响 OLTP 业务的性能; 可以针对 OLTP 以及 OLAP 业务做不同的优化。
在集群的 coordinator 节点提供 OLTP 以及 OLAP 两个平面视角。 OLTP 业务运行在 datanode 主节点上,OLAP 业务运行在 datanode 节点的备节 点上,二者的数据同步采用流复制的方式来进行。 内核优化器会根据查询所在的平面选用对应的优化器。 OLTP 以及 OLAP 平面针对不同的负载采用合适的存储格式。
按行存储格式,数据按照逻辑顺序相同的方式来来进行文件存储,一行中的所有列数据按照顺序存储在物理磁盘上,这种格式的好处很明显——如果同时访问一行中的多列数据时,一 般只需要一次磁盘 IO,比较适合 OLTP 类型的负载。 按列存储格式,表中的每列数据存储为一个独立的磁盘文件,比如例子中,“姓名”, “部门”,“年龄”……每列中的数据都为一个独立的数据文件,这种格式在一次需要访问表中少数列时相比行存能够节省大量的磁盘 IO,在聚合类场景下尤其高效,因此多用在 OLAP 类系统中。
第二种是透明压缩。这种压缩方式是直接使用包括zstd和gzip直接进行压缩,这种压缩对数据的存储内容没有明确的要求,可以对任何的信息进行压缩。通过数据压缩,可以把数据的体积大幅度减少,一方面减少用户的使用成本,另一方面可以在大量查询分析的时候减少IO访问量,提升我们的查询效率。
TDSQL-PG全并行分为三个层级:
第一层节点级并行:所谓节点级的并行是,系统拿到一个查询之后,会把查询分发给各个不同的DN,通过DN之间分片区的查询来完成节点级并行;
第二是进程级并行:执行器拿到分配后把算子并行化,即尽量使用允许更多CPU资源来完成查询工作,通过多CPU方式提升查询的效率;
第三层是指令级并行:包括对于CPU的特殊指令、SMD指令等,通过简单的算术运算或者求值,以及通过指定值的优化和并行来提升查询效率。
TDSQL-PG 通过这三层并行去满足复杂查询、实时计算的高性能要求。
1
三、TDSQL-PG最佳应用实践
1. 微信支付
- End -
更多精彩
每天数亿次的交易,这套架构怎么抗住的?
怎么做好“硬核”的事?
↓↓更多惊喜点这儿~