蓝盟IT外包,加速400倍,解密PolarDB  HTAP实时数据分析技术

发布者:上海IT外包来源:http://www.lanmon.net点击数:1616

蓝盟IT小贴士,来喽!
PolarDB  MySQL是为云而生的数据库系统,不仅是云上的OLTP场景,许多顾客都对PolarDB提出了实时数据分析的性能需求。 这个PolarDB技术团队提出了in-memorycolumnindex(imci  )的技术方案,取得了在复杂的分析查询场景中得到的数百倍的加速效果。
本文论述了IMCI背后的技术路线思考和具体方案的取舍。 PolarDB  MySQL列存储分析功能不久将在Alibaba云(阿里巴巴云)上线,敬请期待。
MySQL生态HTAP数据库解决方案
MySQL主要是针对OLTP型场景设计的开源数据库,开源社区的研发方向侧重于增强事务处理能力,如提高单核性能/多核可扩展性/可用性关于优化程序处理子查询的能力、高性能操作员的HashJoin、SQL的并行执行等处理大数据量复杂查询所需的能力,由于社区设置了较低的优先级,MySQL的数据分析能力发展缓慢
随着MySQL发展成为世界上最流行的开源数据库系统,用户存储大量数据并运行重要的业务逻辑,因此对这些数据的实时分析日益增加。 如果独立的MySQL无法满足您的需求,用户将需要更好的解决方案。
1 MySQL专用AP数据库的块构建方案
专用的分析型数据库产品选择很多,一是使用两个系统分别满足OLTP型和OLAP型的需要,在两个系统之间通过数据同步工具等进行数据的实时同步。 此外,用户还可以自动将TP负载路由到MySQL,将分析负载路由到OLAP数据库,并添加proxy层,以屏蔽APP应用层的基础数据库部署拓扑。
这样的体系结构具有灵活性。 例如,可以为TP数据库和AP数据库分别选择最佳方案,从而完全隔离TP/AP负载。 但其缺点也很明显。 首先,必须维护技术上两种不同技术体系的数据库系统。 其次,由于两种系统处理机制的不同,上下游数据的实时一致性也非常困难。 另外,由于同步延迟的存在,下游AP系统中保存的大多是过时的数据,不能满足实时分析的需要。
2基于多副本的分布式设计方法随着互联网兴起的许多新数据库产品都与MySQL协议兼容,因此成为了MySQL的替代方案。 这些分布式数据库产品大部分采用分布式Share  Nothing方案,其中心特征之一是使用分布式一致性协议确保单个partition多拷贝之间的数据一致性。 由于一个数据在多个副本之间完全独立,因此可以轻松地以不同的格式存储在不同的副本中以满足不同的查询负载。 典型地,它从TiDB4.0开始,像TiDB一样,是单个raft组中的一个副本,使用TiFlash响应基于AP的负载,并使用TiDB的智能路由功能自动选择数据源。 由此,一系列的数据库系统可以同时服务OLTP型负载和OLAP型负载。
该方法在许多Research和工业领域的工作中被借鉴和使用,越来越成为分布式数据领域一体化的HTAP事实标准方案。 但是,要应用该方案,用户需要迁移到对应的NewSQL数据库系统,并且经常会出现兼容性问题。
3一体化矩阵混合存储方案
比多拷贝Divergent  Design方式更先进的是,同时应对TP型和AP型负载,同时在同一数据库实例中采用矩阵混合存储的方式。 这是以前的商业数据库Oracle/SQL  Server/DB2等采用的方案。
甲骨文在2013年发布的Oracle  12C上,发布了数据库内存套件。 其最核心的功能是In-Memory  Column  Store,通过提供矩阵混合存储/高级查询优化(实体化式、联合组)等技术来提高OLAP的性能。
微软在SQL  Server  2016 SP1上开始提供列存储索引功能。 根据负载特性,用户可以灵活使用纯存储、纯列存储、矩阵混合表、列存储索引等多种模式。
IBM在2013年发布的10.5版(Kepler  )中添加了DB  2蓝光加速组件,将列数据存储与内存计算和数据跳过技术相结合,从而进行分析
三家领先的商业数据库供应商同时采用矩阵混合存储和内存计算技术路线。 这有一个底层的技术逻辑。 也就是说,列存储的I/o效率(压缩、数据跳过、列裁剪)和CPU计算效率) Cache  Friendly很好,所以要想最大限度地提高分析性能,必须使用列存储,列存储中的索引在矩阵混合存储体系结构中,行索引和列索引在处理随机更新时存在性能差距,需要通过DRAM的低读写延迟来弥补列存储更新效率的低下。 因此,在低延迟在线事务处理和高性能实时数据分析的两大前提下,将矩阵混合存储与存储器计算相结合是唯一的方案。比较上述三种方法,从数据块组合方法到分布式设计方法再到一体化矩阵混合存储,集成度更高,用户体验也更好。 但是,对实现内核工程的挑战也一个比一个大。 基本软件的作用是把复杂性留给自己,把简单性留给用户。 因此,一体化的方法符合技术趋势。
双极性DB  MySQL  AP能力的进化
PolarDB  MySQL的能力堆栈与开源MySQL相似,比TP长,但AP的能力弱。 因为PolarDB提供了高达100TB的单实例存储能力,同时其事务处理能力远远高于用户自制的MySQL。 因此,PolarDB用户往往在一个实例中存储大量数据,并对这些数据执行复杂的聚合查询。 PolarDB的一次写入即可读取多个数据的体系结构允许添加只读RO节点来执行复杂的只读查询,从而避免了分析查询对TP负载的干扰。

文/上海蓝盟 IT外包专家

IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部