巨杉湖仓一体技术解读|列存+微分区优化,分析性能10倍提升

数据分析性能的提升对于离线计算尤其重要,SequoiaDB基于统一数据源的分析能力,充分激活客户的离线数据,通过列存+微分区优化技术将原有行存性能显著提升10倍。

巨杉数据库深耕金融银行业,聚焦于从“数据湖”到“湖仓一体”的技术架构,已经在超过100家金融银行客户生产环境规模化上线。得益于巨杉数据库引擎级多模的能力,SequoiaDB通过安装Sequoia-Spark计算实例,基于行存获得了高效的分析能力。在某头部国有保险集团的银保监报送、财务纳税申报、反洗钱、车险理赔、健康保单等分析业务中,相比于某传统数据库,SequoiaDB有6-98倍的性能提升。


对比行存,列存在分析场景更具优势

然而DBA同行都知道,行存在读取数据时,会存在一个固有的“缺陷”,比如所选择查询的目标即使只涉及少数几项属性,但由于这些目标数据埋藏在各行数据单元中,数据库必须读取每一条完整的行记录,使得读取效率大大降低。在海量数据背景的分析场景下,行存引擎更显得有些“吃力”。

而列存引擎在海量数据查询分析的场景中,可以只读取与查询目标相关的列,效率对比行存大幅度提升。列存在查询过程中能够尽量减少无关IO,避免全表扫描,且无需维护索引(每一列都能作为索引),会最大可能地降低查询响应时间,更适合解决“湖仓一体”架构下“实时数仓”的分析场景需求。


巨杉推出列存引擎,分析性能提升3-10倍

巨杉数据库一直坚持自主研发,坚持以客户为中心,为了解决客户的实时数据分析需求,巨杉引入全新的列存存储能力,并通过SequoiaDB的引擎级多模能力,将数据统一存储在分布式存储底座中。通过列存,我们可以在相同的表上实现更高的压缩率,分析性能得到大幅度的提升。

在某客户实际的典型查询场景中(1亿条数据记录),使用全字段进行查询(85个字段),在同等配置的情况下测试,对比原有SequoiaDB行存,Sequoia-Spark计算实例直接使用SequoiaDB列存获得了3-10倍的分析性能提升。


微分区优化,性能提升不止步

我们特别分析了列存在不同分区以及不同存储文件大小时对性能的影响,本着平衡变更操作带来的数据膨胀和提升操作性能的目的,实现了微分区的优化。再通过结合SequoiaDB自研的统计信息服务,根据查询条件更好地过滤掉不需要的微分区文件,从而避免不必要的数据访问。这些优化带来的性能提升在IO处于瓶颈的场景下尤为明显,例如在只返回count(*)的场景下,我们可以直接使用统计信息从而避免数据扫描。通过测试,我们可以看到,微分区可以有效提升3倍以上的处理性能。


结语

在列存和微分区优化的加持下,SequoiaDB能大幅度提升数据分析师的实时查询分析效率,也能够在很多批量分析和数据加工的场景下满足客户的需求。未来,巨杉数据库将继续不断创新,打造更加安全、稳定、可靠的数据库系统,深耕数据沃土,释放全量数据价值,持续助力金融行业客户信息化创新。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章