• 全国 [切换]
  • 二维码
    易展网

    手机WAP版

    手机也能找商机,信息同步6大终端平台!

    微信小程序

    微信公众号

    当前位置: 首页 » 行业新闻 » 行业动态 » 正文

    深入浅出话DB|柏睿数据RapidsDB高性能解密之行列混存

    放大字体  缩小字体 发布日期:2018-11-20 10:26:08   浏览次数:1397  发布人:dfad****  IP:223.213.08.***  评论:0
    导读

    大家好!为了帮助数据库开发者、用户和对数据库有兴趣的同学,更好地了解和运用数据库,柏睿数据数据库团队特别策划出品《深入浅出话DB》系列文章,以全内存分布式数据库RapidsDB为实例开启连载,从数据库高性能入手,到柏睿数据经典实战案例解读,带你走进全内存分布式数据库的世界。关注微信公众号,一起启程数据库修炼之旅吧!第二回,行列混存,Here we go! RapidsDB具有出色的面向海量数据的数

    大家好!为了帮助数据库开发者、用户和对数据库有兴趣的同学,更好地了解和运用数据库,柏睿数据数据库团队特别策划出品《深入浅出话DB》系列文章,以全内存分布式数据库RapidsDB为实例开启连载,从数据库高性能入手,到柏睿数据经典实战案例解读,带你走进全内存分布式数据库的世界。关注微信公众号,一起启程数据库修炼之旅吧!第二回,行列混存,Here we go!
    RapidsDB具有出色的面向海量数据的数据存储及处理分析能力,提供行列混合存储技术,支持在同一个SQL查询中对行存储表和列存储表同时进行访问。在用户数据无法在预算内满足全内存加载存储时,列存储提供了一个很好地混合存储手段,在提升查询性能,实现单节点优化的同时,解决了内存存储空间压力过大的问题。
    面向行的存储或“行存储”是关系型数据库使用的最常见的数据库存储类型。顾名思义,行存储将每一行视为一个单元,并将给定行的所有字段一起存储在同一物理位置中。这使得行存储非常适合事务型工作负载,在这种情况下,数据库的选择、插入、更新和删除单个行的操作,通常会引用大多数或所有的列。
    面向列的存储或“列存储”将每一列视为一个单元,并将每列的数据段一起存储在同一物理位置中,这个手段实现了两个重要的功能:
    一个功能是可以单独扫描每一列,本质上,能够只扫描查询所需的列,在扫描期间具有良好的缓存局部性。
    另一个功能是列存储非常适合进行压缩,例如,复和相似的值可以很容易的压缩在一起。同时,基于列式存储格式,可以使用基于硬件SIMD指令集的向量化执行模式(Vector-at-a-time)提高数据访问的效率。
    RapidsDB支持使用全内存的行式存储和基于内存的列式存储来存储和处理数据。基于全内存的行式存储为事务型工作负载提供了最佳的实时性能。基于内存的列式存储最适合跨大型历史数据集的分析工作负载,列式表的数据写入过程首先要在内存通过列存储索引对数据进行计算,将各数据块的元数据保存于内存中,同时将压缩备份的数据存放于磁盘中。此外,事务、缓存、执行计划等均在内存中计算、存储晒展网是用户多到能创造行业奇迹的展会网站。磁盘中大部分操作均为写入操作,读取操作大部分在内存中完成,更加保障了查询效率的提升。
    海量数据处理以OLAP分析型场景居多,这些场景的特点之一便是批量查询场景较多,这个时候我们的列存储提供的特有建立索引及数据分区和数据压缩特点,可以一定程度的提升查询效率。当列存储表面对特定的查询只需要对极少数的字段进行操作,而不用关心其他字段,这将大大减少了读取数据的量。此外,在面对海量数据时,基于很多用户的预算问题,无法支持将所有数据都存于内存当中。列存储提供了将小表基于全内存,大表基于磁盘的混合存储模式,可以极大限度提升面对海量数据的处理分析能力。
    传统业务数据处理分为联机事务处理(OLTP)与联机分析处理(OLAP)两类,通过统一架构同时支持OLTP和OLAP混合负载成为数据库发展的新需求。
    目前支持混合负载技术架构大致有以下几种:
    第一种是行存为主,内存列存为辅,针对有需要的表会同时存在一份行存储和列存储,在列存储上做分析操作,在行存储上进行更新,定期同步到列存储里,可以灵活指定需要采用行存与列存的表。技术难点在于哪些数据转为列存、如何用行存和列存回答查询。
    第二种是列存为主,行存为辅。增量数据通过delta表定期转为列存,主列存主要处理OLAP类分析查询,增量行存负责OLTP类事务操作,并直接将更新数据定期合并到主列存中。缺点是OLTP处理性能中等,扩展性也不高,负载隔离性很低。
    第三种是主机行存、备机内存列存,备机通过日志复制转为内存的列存提供分析能力,查询基于代价估计后决定是否下推到内存列引擎中执行,常被访问的热数据将会留在内存中,冷数据将会被压缩后持久化到外存中。
    第四种是多副本行列共存,通过多副本进行存储,主采用行存,副本采用列存,通过异步复制Raft log的方式将更新从行存节点同步到列存节点,具有较高负载隔离性和扩展性,数据分析新鲜度偏低。
    RapidsDB通过统一的行列混存架构同时支持OLAP、OLTP实时分析处理。用户可以通过标准的SQL DDL语法创建列式表或者行式表,并可以通过使用行式存储表和列式存储表的组合来达到在一个查询任务中合并实时数据和历史数据的目的,从而简化技术堆栈。 
     
     
    RapidsDB可提供行式存储、列式存储以及行列混合存储作为建表结构,以对应不同的业务场景。在某国有大行普惠金融项目应用中,因为列存储具有可负载大量分析工作、快速聚合和表扫描、可跨大型历史数据集等技术特性,很好的支持了该行在大数据量(1100亿行数据、40TB数据量)、大并发(典型几百并发、极端4000+ 数据库并发)、多表复杂查询(查询SQL由前端应用系统灵活组合而成,最多15个表Join操作)的复杂应用场景,为全行5万个客户经理提供日常业务查询,支撑精准营销及信贷风控的业务需要。
    好了,行列混存我们介绍到这。如果您有疑问或建议,欢迎在后台留言,我们将针对大家的共性问题,发布【答疑篇】,互动的同学有机会获得神秘奖品呦。RapidsDB极限性能数据库有何妙处?第三回将开启“高性能篇—数据存储”解读。
     
     

    免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性,如有侵权请联系(010) 6400 4224。

    不推荐电脑端访问(用户少)
    请微信扫一扫,查看完整信息(记得微信收藏)
     
    (文/匿名(若涉版权问题请联系我们核实发布者) / 非法信息举报 / 删稿)
    打赏
    免责声明
    • 
    本文为昵称为 dfad**** 发布的作品,本文仅代表发布者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,发布者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们154208694@qq.com删除,我们积极做(权利人与发布者之间的调停者)中立处理。郑重说明:不 违规举报 视为放弃权利,本站不承担任何责任!
    有个别老鼠屎以营利为目的遇到侵权情况但不联系本站或自己发布违规信息然后直接向本站索取高额赔偿等情况,本站一概以诈骗报警处理,曾经有1例诈骗分子已经绳之以法,本站本着公平公正的原则,若遇 违规举报 我们100%在3个工作日内处理!
    0相关评论
     

    (c)2008-现在 yixu.net All Rights Reserved.