星型模型这么设计,1亿数据探索分析在笔记本上性能提升30%!

浏览: 1904

Smartbi高性能解决方案

概要

在DELL燃7000笔记本电脑上(i5-7200u),对亿级事实表&维度表的探索式分析,平均响应性能从11.9秒优化到8.9秒,提升程度约25%,这一切归功于Smartbi+Vertica的高性能自助分析解决方案!

难点

星型模型又称Star-schema,是一种数据库的建模(组织数据)的方式,它与三范模型3-NF的知名度等高。由于这类模型都是以“事实表”为核心,围绕几个维度表,所以非常形象的被称为“星型”。

Smartbi高性能解决方案

在没有牺牲空间换时间(OLAP)的数据分析场景下,这样的建模方式非常有利于数据更新,因为维护事实表的增量以及事实表和维度表的数据一致性比较快速,或者说ETL的时间窗口比较小。但其对于查询类型的分析应用,却需要消耗大量的“关联”运算,这是比较消耗CPU的,因此在很多大数据量的数据仓库系统中,往往其查询性能并不好。

更具挑战的是,在需要提供自助探索的分析平台上(比如Smartbi的透视分析以及Tableau等),业务人员无法预料的会动态生成各种查询请求,从技术的角度说就是SQL没有规律,任何字段都可能是where条件、group分组以及计算字段,这就导致索引等传统DBA的手段毫无用武之地。

干货

关注过Smartbi公众号的同学可能知道,Smartbi在7月份与Vertica进行了战略合作,基于这个新一代列式MPP数据库发布了“高性能自助分析解决方案“,在随后9月的workshop中提供了1个亿级的星型数据模型和22个性能测试案例。

 

普通笔记本对1亿数据做探索分析,你疯了!

效率不再如蜗牛,如此提升最轻松!

 

通过在个人笔记本电脑对V201709版星型模型做了性能测试,平均响应时间为11.9秒,感受还是差强人意。22个测试案例的结果如下,单位为秒:

Smartbi高性能解决方案

笔记本电脑型号燃7000,配置如下,只不过操作系统为了安装Vertica改成了linux:

Smartbi高性能解决方案

这个配置和价位是非常亲民的吧,尤其这颗CPU在牙膏厂(Intel)的产品里根本排不上号。

言归正传,最近研究了一下Smartbi的这个星型数据模型,对其做了2项调整工作,第一是将3个维度表的关联字段改成了整型(当然首先是在维度表增加了车型、姓名、城市的整数编号,其次是在事实表增加这3个字段),第二是对事实表按年份进行了分区

同样按照22个案例进行了测试,就得到了25%的性能提升,达到8.9秒,结果棒棒的!

Smartbi高性能解决方案

具体来说,前3个测试案例是对事实表3个字段的分组求和,不涉及任何优化的内容,所以没有什么改变,甚至由于随机性的误差还有一些下降。从第四个开始,2个优化手段开始发挥作用,平均提升更大(30%)。

既然此次优化用了2个手段,那么它们各自有多大贡献呢?(懒得重新测)

Smartbi高性能解决方案

将测试案例的三类对比来看,因为”同比计算“和”条件汇总“都用到年份作为条件,我们暂且可以认为它们更能体现按年做分区的优化作用,这里它们分别提升了27%和32%,比普通的全表汇总提升的21%更有效果,就认为有5%-10%的提升吧。

另外从这个图可以看到,以前同比计算的平均性能比全表汇总明显要慢,但优化后基本差不多了,都在11秒左右。而按年条件汇总的平均性能从6秒提升到4秒,真的是非常优秀了!

总结

只有用列式数据库,才可能降低大数据量分析对IO的硬性要求,使得采用笔记本做数据分析成为可能。但能把1亿数据量的星型模型玩转自助分析的,目前也就是Smartbi+Vertica,最后给Smartbi透视分析的同环比计算、分组字段和自由钻取点个赞,以后有空再继续挑战这个任务!

推荐 0
本文由 大麦 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册