Inceptor5.1-批处理分析数据库的进阶

Transwarp Inceptor是针对于批量处理及分析的数据库,被广泛应用于数据仓库和数据集市的构建。Inceptor基于Hadoop和Spark技术平台打造,加上自主开发的创新功能组件,有效解决了企业级大数据数据处理和分析的各种技术难题,帮助企业快速构建和推广数据业务。

这是Inceptor 5.1的架构图,与5.0版本相比,其中有两个模块发生了明显变化。一个是分步执行引擎中增加了向量化执行引擎Windrunner,另一处是在分布式列存中将Holodesk构建于新引入的存储架构Shiva。

除了功能的新增,Inceptor的性能也有提升,其中批处理性能平均提升20%,交互式分析性能提升40%。

本文将详细解读Inceptor 5.1的以上功能与性能改进。

向量化计算引擎

Inceptor5.1在执行层中引入了向量化执行引擎Windrunner,这是一种针对数据集市及实时数据仓库的高性能分布式计算引擎,可以高速地读取列式存储Holodesk,进行向量化的计算。

传统大数据执行引擎通常采用标量执行的方式,不足在于当处理数据比较密集的运算时,CPU用于计算的利用效率较低。

向量化执行引擎将一次一行的处理方式改变为一次一列,当构建于选用列式存储方案的系统中时可以充分利用CPU的计算能力,对于像OLAP这种数据较密集的计算场景实现大幅的速度提升。有效的将硬件的强大计算能力转化为软件生产力。

总体而言,Windrunner通过采用向量化的处理方式获得了以下特性:

通过批量的操作降低解析、传输等操作的开销。

借助数据向量化的特点,利用CPU SIMD指令集加速。

通过向量化算法提升系统并行化效率。

通过实现向量化算子来最终实现SQL编译模型。

Windrunner是Inceptor Engine的向量化实现,可以剖析热点计算、充分利用CPU特性完成热点代码生成,动态对SQL结构进行分析,基于向量化的思想选取高效的运行时行列对象模型,在提升性能的同时节省内存使用,有效加速交互式分析业务场景。

全新一代分布式存储框架

Inceptor 5.1内置自研全新一代存储框架Shiva,可以对接各种专用存储引擎(Holodesk,ES,LevelDB等),并兼顾存储系统各自特性,大幅提升存储的稳定性、运维能力以及高可用性。

开发Shiva的目的是为了向大数据处理系统提供一个高可靠、高性能、可扩展、可运维的存储框架,该框架提供统一的存储接口、事务接口,作为一套通用框架对接SQL引擎、事务引擎和计算引擎,从而避免各个存储引擎在高可用、接口抽象、运维等方面重复造轮子,使存储引擎团队专注于存储自身的开发工作。

Shiva只依赖本地文件系统,不依赖HDFS,因此有更好的存储性能。同时还基于Raft一致性协议的raft group保证高可用,提供高效的RPC通信,以及合并策略,有利于实现统一的分布式存储运维。

更快更可靠的列式存储

列式存储引擎Holodesk可以直接构建于Shiva之上,因而可获得由Shiva带来的高可用和多副本特性:通过Shiva管理Mestadata实现Holodesk的高可用;因Shiva提供分布式的存储管理,建立Holodesk多副本机制。

此外,开发人员对Holodesk本身从存储效率、处理速度以及功能也进行了优化:降低了索引列的开销,最高可以节省40%空间;提升了读表的性能;增加了对varchar2和char字段类型的支持;开始支持普通硬盘,而且在多块硬盘情况下,可以达到接近SSD的性能。

交互分析性能提升

Holodesk是提供交互式分析的关键利器,上面三方面改进都与Holodesk相关联,而正是它们的实现创造了交互式分析的性能提升:

首先引入了向量化的执行引擎Windrunner,支持Holodesk,兼容现有的SQL以及常用Operator和UDF,使OLAP交互式分析性能大幅提升。

其次实现了统一的高可用分布式存储框架Shiva,提供高性能,高可用,支持多种存储格式,实时写入与批量模式,提升Holodesk稳定性和运维能力。

最后是对Holodesk本身的优化,实现数据高可用,减少存储开销,增加读取性能。

通过实验发现,对于复杂分析类的业务,Inceptor所采用的Windrunner+Holodesk+Shiva组合能够达到对同类产品数倍的性能和稳定性优势。

在TPC-DS 1T测试中,同样以Holodesk为存储引擎的情况下,Windrunner相较于Inceptor 5.0使性能平均提升了34%,对于部分OLAP场景甚至实现了86%的提升。

离线分析性能提升

对于批处理,我们通过调整编译器的架构,提升了SQL的支持度,对各种复杂子查询提供更好的处理以及优化支持。同时开发人员改进了各类优化器的优化能力和语句执行逻辑,从而提高Inceptor 5.1在各种场景中的执行性能。

其中MBO、CBO、ISO三种优化器的主要改进如下:

基于物化的优化器(MBO)

开始支持对 insert statement启用物化优化功能;支持Cube增量构建,有效提高Cube实例化效率;可适用于更多的子查询优化。

基于成本的优化器(CBO)

采用新的统计信息收集算法,使收集统计信息的任务性能提高2~3X,精度提高80%以上;采用新的代价估算模型,在统计信息缺失情况下也可以进行基于成本的优化;增加对Outer Join的优化支持。

SQL过程间优化器(ISO)

可以更好的处理WITH AS在全局SQL中的优化。

通过性能的优化改进Inceptor批处理性能相较于5.0有明显提升,在TPC-DS 1TB测试中实现20%的性能提升,大幅领先其他计算平台。

结语

通过本文的介绍,此次Inceptor 5.1的变化主要体现在以下几点:

执行引擎增加了向量化的处理引擎Windrunner;

存储方面加入了存储框架Shiva构建全新的存储架构;

对列式存储引擎Holodesk的优化;

因实现1、2、3项内容实现的交互式分析加速;

批处理的性能优化。

这些改进使得Inceptor作为大数据分析型数据库与其他产品相比,在构建数据仓库、数据集市、实现数据分析方面更具竞争优势。

往期原创文章

大数据开放实验室由星环信息科技(上海)有限公司运营,专门致力于大数据技术的研究和传播。若转载请在文章开头明显注明“文章来源于微信订阅号——大数据开放实验室”,并保留作者和账号介绍。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171215G0US0700?refer=cp_1026

相关快讯

扫码关注云+社区