超越Hadoop、Spark的國產OLAP引擎!CyrexCube多維數據庫測試報告

Cyrex Cube是一个国产分布式OLAP引擎,由于使用C语言进行开发,具有极高的效率。

针对千亿级明细数据的多维数据集,Cyrex Cube理论上能够在10秒时间内完成对任何粒度数据的任何多维分析和即席查询。

Cyrex Cube的全部测试均在无缓存支持的情况下完成。

此次测试在一台16G内存8核CPU的CentOS机器上进行,进行的是Cyrex Cube的单worker节点测试。

数据模型是一个具有8个维度和两个度量值的多维数据集。

超越Hadoop、Spark的国产OLAP引擎!CyrexCube多维数据库测试报告

8个维度

超越Hadoop、Spark的国产OLAP引擎!CyrexCube多维数据库测试报告

度量值

8个维度明细成员数量的笛卡尔积为9亿8千万左右,度量值为两个,可以计算出整个数据集明细数据量为17亿,由于是内存计算,此时Cyrex Cube将占用13G左右的内存。

如果连同非明细成员计算,8个维度成员数量笛卡尔积为60亿左右,再与度量值数量进行相乘,整个多维数据集的全部数据量为120亿左右。

测试首先在应用端进行,应用端平台是Cyrex BI,是一个100%面向业务式的自助分析平台,Cyrex BI提供了完全的图形化操作界面,让无任何技术能力的业务人员也能轻松驾驭数据分析。

登录Cyrex BI后选择相应的多维数据集,可在左侧数据模型视图中浏览维度和度量结构。

随后,拖拽任意维度的任意粒度成员,放置到页面右侧多维查询结果表格的或任何位置(行位置、列位置、过滤条),并且可以随意的旋转表格进行行列互换,随意把任何维度在任何位置进行交叉组合,在任意非明细维度成员上进行向下钻取,所有的查询都可以在几秒钟内完成。

超越Hadoop、Spark的国产OLAP引擎!CyrexCube多维数据库测试报告

登录系统

超越Hadoop、Spark的国产OLAP引擎!CyrexCube多维数据库测试报告

多维分析01

超越Hadoop、Spark的国产OLAP引擎!CyrexCube多维数据库测试报告

多维分析02

超越Hadoop、Spark的国产OLAP引擎!CyrexCube多维数据库测试报告

图形预览01

超越Hadoop、Spark的国产OLAP引擎!CyrexCube多维数据库测试报告

图形预览02

超越Hadoop、Spark的国产OLAP引擎!CyrexCube多维数据库测试报告

图形预览03

在随后的自动化查询中,使用1000个MDX(多维查询表达式)进行随机查询,测试结果MDX的平均响应时间均在6秒以内。

服务器CPU核数的增加可以加快Cyrex Cube的查询效率。

此次测试中,进行一个粒度非常大的查询,响应时间在7秒左右,当使用4个并行线程同时进行查询时,每个线程的完成时间在9秒左右,8个线程并行时,每个线程完成时间在12秒左右。

超越Hadoop、Spark的国产OLAP引擎!CyrexCube多维数据库测试报告

并行测试结果统计

对于明细数据量达到千亿、万亿乃至更多时,可以采用Cyrex Cube的分布式方案进行解决。

Cyrex Cube在16台服务器(3台master节点,13台worker节点)上对明细数据量190亿的多维数据集进行过测试,其中每个worker承载的最大数据量不超过15亿。

master和worker节点组成一个树状结构。

超越Hadoop、Spark的国产OLAP引擎!CyrexCube多维数据库测试报告

百亿级数据支持架构

Cyrex Cube在分布式结构中,worker节点承担具体的聚合运算任务,master通过map-reduce算法将聚合任务分配给各个worker,随后进行汇总。

由于Cyrex Cube采用高效的C语言进行开发,并且每个master不承担具体的运算任务,所以Cyrex Cube在分布式结构下的响应效率与单worker节点情况几乎相同。

以64G内存8核cpu的Linux服务器为例,每台服务器上可以运行6个worker节点,每个worker承载10亿级数据,那么20台左右的服务器便能搭建一个秒级响应千亿级明细数据的多维分析平台。

超越Hadoop、Spark的国产OLAP引擎!CyrexCube多维数据库测试报告

千亿级数据支持架构(理论)


分享到:


相關文章: