数据产品经理老曹,自从入职了这家初级规模的互联网公司,给大家带来了很多惊喜和意外。不仅从业务角度给大家普及数据产品知识,传播数据文化。还能在平时的生活中,通过日常接触到的数据产品入手,讲解背后的原理和逻辑,让大家触类旁通,更深入的了解和掌握数据产品知识。

最近,老曹带的数据产品经理小王,在构建大数据分析平台的时候,总是听研发说OLAP这个词,但是大数据里的OLAP到底是做什么的?他有点不清楚。于是跑到老曹身边,带着求知若渴的眼神,对老曹说:

“老曹,江湖救急啊,对OLAP这块我还有很多不懂的,我要想搭建一个业务的数据分析平台,OLAP这个词有太陌生了。老曹,你能给我讲讲嘛!”

老曹一听,这小伙越来越可以啊,主动学习的心态越来越好了,心中还是很满意的:

“小王,既然你这么爱学习,那我就给你好好讲一讲。”

数据产品经理小王:

“好啊好啊,快来讲一讲,我小板凳都搬过来了!!!”

老曹又把自己旁边的那块画布拖了过来,开始画了起来:

“说到OLAP,OLAP(OnLine Analysis Processing ,联机分析处理 ) 是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。在实际的商业分析中,OLAP联机分析更多的是指对数据分析的一种解决方案。”

数据产品经理小王:

“这个我知道,定义我已经百度了无数次了,赶紧接着往下说,接着讲!!!”

老曹笑一笑,娓娓道来:

“好吧,那我给你讲讲OLAP的原理和基本工作方法。

OLAP联机分析首先是把数据预处理成数据立方(Cube),并把有可能的汇总都预先算出来(即预聚合处理),然后在用户选择多维度汇总时,在预先的计算出来的数据基础上很快地计算出用户想要的结果,从而可以更好更快地支持极大数据量的及时分析。

OLAP联机分析最基本的工作就是对数据方(Cube)的操作,因此,首先让我们了解数据方(Cube)的维度层次划分和基本操作,并在此基础上,掌握应该从哪些方面考虑数据并构建出业务模型。为了方便大家的阅读理解,下面所有的举例分析都是基于图一数据方(Cube)的基础上进行的。

上面我画的这个就是一个数据方(Cube)。”

数据产品经理小王:

“数据方(Cube)这个有点意思啊,通过数据方我们可以在多个角度来看数据,接着讲!!!”

老曹在画板上抹去刚才写的东西,继续画起来:

“OLAP联机分析是从多维信息、多层次信息的角度,针对特定问题进行数据的汇总分析。因此,站在数据面的角度考虑,数据源需要满足如下层次划分:

  • 维度(Dimension):是用户观察数据的特定角度,是问题的一类属性,属性集合构成一个维度(时间维、地理维等)。举个例子:刚才那个图的数据方(Cube)中的季度维度和城市维度。

  • 维度的层次(Level):用户观察数据的某个特定角度(即某个维度)还可能存在细节程度不同的各个描述方面(时间维包括日期、月份、季度、年)。举个例子:刚才那个图的数据方(Cube)中的季度维度还可以进一步划分为月份的维度,月度还可以在日期的细节粒度进行描述。

  • 维度的成员(Member):即维度的一个取值,是数据项在某个维度中位置的描述,如“某年某月某日”是在时间维度上的位置描述。举个例子:2016年一季度是一个维度的成员。

  • 度量(Measure):多维数组的取值。举个例子:机票在2016年一季度上海市的出票量。”

数据产品经理小王:

“哇,原来还有这么多层次划分,涨知识了,我先记一下。”

老曹点点头,接着说:

“OLAP联机分析是在基于数据方(Cube)的基础上进行操作的。因此,站在分析的角度上,数据源需提供支持钻取(Drill-up和Drill-down)、切片(Slice)和切块(Dice)以及旋转(Pivot)等操作。

钻取:改变维的层次,变换分析的粒度。它包括向下钻取(Drill-down)、向上钻取(Drill-up)。

向上钻取是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数。举个例子:将北京、上海、广州等三个省市的机票出票量进行汇总来查看北上广一线城市的出票情况。

而向下钻取则相反,从汇总数据深入到细节数据进行观察或增加新的维度。举个例 子:将2016第一季度的出票量进行下钻,查看具体1月、2月、3月三个月的每月的出票量。

切片和切块:在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片,如果有三个或以上,则是切块。

切片是选定特定的值进行分析,在立方体(Cube)上的感觉就是选定一个维度后进行的平面切分,就像是一刀切。举个例子:只选择机票这个票种的销售数据,或者2016第一季度的数据。

切块是选择维度中特定区间的数据,或者某批特定值进行分析,在立方体(Cube)上的感觉就是挥几刀切出一块。举个例子:2016第一季度到2016第二季度的销售数据。

旋转:变换维的方向,即在表格中重新安排维的放置(如行列互换)。举个例子:数据方(Cube)中季度维度和城市维度的旋转互换。”

数据产品经理小王:

“嗯,那么数据产品经理在这个过程中,主要做什么呢?”

老曹补充说:

“嗯,当然有很多事情需要你做啦。

在实现数据方(Cube)的过程中,由于业务灵活多变,导致了构建的业务模型随之经常发生变化,而业务维度和量度一旦发生变化,研发人员需要把整个Cube(多维立方体)重新定义并生成,数据产品经理只能在此Cube上进行多维分析,这样就限制数据产品经理快速改变问题分析的角度,从而使数据分析平台成为死板的日常报表系统。

为了避免这一情况,数据产品经理在前期过程中,就需要理解数据并且构建出符合业务的多维数据模型,包括:

  • 源数据如何拆分到不同字段中?

例如如何把季度拆分到日期的格式,日期date拆分成yyyy-MM-dd这样的字段格式进行存储。

  • 哪些字段用于维度?

例如季度、城市、票种等都可以作为维度字段。

  • 哪些字段用于统计指标?

例如出票量、销售额这些都可以作为指标进行分析统计使用。

  • 使用什么样的规则来对数据进行聚合?

例如是进行简单的汇总,还是要进行一般的加减乘除,又或者更复杂的规则进行聚合。

  • 用户经常使用的组合查询是?

例如经常把季度和城市进行组合查询汇总,这些都需要提前考虑清楚。

  • 排序规则?

例如经常会按照出票量和时间等进行排序。“

数据产品经理小王:

“哇,终于搞明白啦,我先消化下。”

老曹赶紧乘胜追击,补充说:

“掌握以上几点以后,你会发现一旦多维数据模型建成后,OLAP联机分析并没有想象的那么复杂。大数据分析架构在这个巨大Cube的支持下,直接把维度和度量的生成交给数据产品经理 ,由数据产品经理自己定义好维度和度量之后,Hadoop会将业务的维度和度量直接翻译成MapReduce运行,并最终生成业务报表。”

数据产品经理小王点点头:

“嗯嗯,好神奇,我赶紧拿着小本本去学习消化下。”

点赞(10) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部