各位数据的朋友,大家好,我是老周道数据,和你一起,用常人思维+数据分析,通过数据讲故事。
接下来,我们准备讲一系列的奥威BI软件的内存计算在各种分析场景中的应用。在正式开讲之前,我先简单说一下,内存计算是什么,内存计算有什么作用。
1、内存计算是什么?
大家都知道,BI软件的主要技术原理是从数据源(如数据库或EXCEL)中获取数据,然后进行必要计算,再将结果展示出来。而这些计算,有两种方式来实现,一种是在后台将结果计算好,前端只是展示;另一种则是在前端完成计算并展示。
前一种的后台计算部分需要专业的IT开发人员才能做到,而后一种的前端计算呢?早期的计算是通过函数。有EXCEL经验的人都知道,EXCEL里有很多的函数来实现各种各样的计算,这种场景下,对于使用者的要求仍然是非常高的,同时,大家也会有一种感受:在EXCEL中计算是基于单元格。当有很多行的数据量时计算的效率是很低的。
那怎么做到既可以在前端0代码0函数,又可以高效计算呢?随着计算机硬件资源中内存资源的成本快速下降,基于内存计算的技术也应运而生。
内存计算:在内存中实现批量的计算。
2、内存计算有什么作用?
从计算机的原理来说,CPU是计算核心,但计算的数据总要有地方存贮,效率最高的存贮区域就是CPU的缓存,因为它离CPU最近,但CPU的缓存太小,目前CPU的缓存仍然是以M来计量,所以,基本上想用也用不了。而次佳选择就是内存了,内存可以用G甚至T来计量,足够大,又足够快。再次之才是硬盘。硬盘虽然空间更大,但存取太慢。所以内存计算就是最大限度的减少与存贮在硬盘上的数据库的交互,让大量的数据计算在内存中完成。原理很简单,但最终能实现还是得益于内存硬件容量、性能的大幅提升,以及成本大幅的降低。
举例说明:
假设我们要做一个销售收入的同比分析,通常需要看到当期的销售收入,然后还要看到去年同期的销售收入,然后再根据这两列来计算增长率。
传统情况下:需要IT小强在后台通过复杂的存贮过程计算得到这三列,然后再将结果查询出来。
基于内存计算:则只需要智能的生成不同的时间条件,分别将当期收入与去年同期收入加载到内存中,然后在内存中进行增长率的计算,最后在前端展示相应的结果。
大家可能会感觉,这好像没什么区别啊。计算的逻辑肯定是一样的,真正区别在于如果不用内存计算,当小丽想做某个同比分析的报表时就必须找IT小强,而小强可能需要半天的功夫才能完成;如果用内存计算,小丽自己就可以完成了,拖拽一下,秒级响应。
你如果是小强,你虽然希望每天都看到小丽水汪汪的大眼睛,但你愿意一天到晚不停的做报表吗?你如果是小丽,你希望一有想法就得去找强哥,还得等上半天吗?
我们接下来要讲的内存计算包括:
同比环比:这是最为常见的分析方式,适用于任意指标。
期初、期末:常用在分析科目余额,库存余额,应收余额中。
本年累计+同比:常用在分析关键经营指标,比如本年累计收入或本年累计收入同比。
近期筛选:比如想分析近12个月或近30天的销售收入趋势。
排名+同环比:比如想知道每个业务员的销售排名,还想知道与去年同期或上期对比,排名是升是降?
TOPN或TOPN%:比如想知道客户销售TOP10,或产品销售TOP80%。
占比+TOP占比:比如想知道每个区域的销售占比,或者看TOP10城市的销售占比。
累计占比:比如想按质量原因来制作帕累托图。
跨表计算:比如从销售中取销售金额,从库存中取库存余额,进行销售与库存的相关性分析。
内存计算再计算、排序与筛选:比如想知道哪些产品连续三个月销量持续下降?
老周道数据,和你一起,用常人思维+数据分析,通过数据讲故事,我们下一讲再见!