开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第三阶段):网站流量日志分析--数仓设计--本项目中数据仓库的设计(星型模型)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/695/detail/12199
网站流量日志分析--数仓设计--本项目中数据仓库的设计(星型模型)
分析的主题只有一个,叫做网站的流量日志,所以事实表只有一个,对应网站的流量数据,这时候肯定要有星座模型,剩下的星型、雪花。星型和雪花的区别在于雪花是在星型的模式上继续扩展,这里采用的是星型模型。
星型模型是一个事实表加多个维度表,维度表之间没有关联。确定模型之后,再确定维度表和事实表的数据从哪里来,首先第一个,事实表分析主题的度量,分析网站上面的日志,事实表就是网站上的数据,这时候对应着买点收集的原始数据,这时候会有一个小插曲,打开本地的目录,这里有收集到买点数据,
另外一个经过预处理之后得到另外一个数据,
这里所说的网站原始数据到底指的是原来非常原始搜集的数据还是指清晰处理完的数据,从经过预处理那一刻,成功开始可以说第一个图的数据可以把它称之为原始数据,未处理之前的,告别历史舞台。因此事实表的数据所对应的清晰完之后原始网站数据,事实表确定之后,维度表在企业当中往往是根据业务相关的,从哪些角度分析,哪些维度分析,是不是跟业务相关,要分析 A ,还是要分析 B ,还是要分析 C,要结合事实表的情况根据业务决定。
比如在项目当中,网站当中数据有一些字段,里面有 IP 、用户的信息、时间、请求的页面,响应码、来源终端信息等等。要分析哪些维度应该是要涵盖事实表当中,比如分析当天网站访问情况天气情况,天气晴朗是多少,温度是多少,肯定分析不出来,因为没有关联。维度表在企业当中往往跟业务直接相关。
时间维度怎么分析,网站访问情况,分析一下一天是上午来的多还是下午来得多还是晚上来的多,每个小时的访问情况怎么样,一个月当中哪个星期来得多,什么阶段来的多,这些完全是跟时间相关的;再比如说分析访问的地域维度,大家都来访问,到底北京来得多还是上海来得多,还是哪里来的多,完全与访问地域相关,怎样去判断访客来自哪里,数据当中有 IP ,IP 如果说对方不是用代理,可以用 IP 去查相关的地域信息,所以说低维度也是分析的角度。
还有按照终端类型分析,终端分析搜索网站通过手机或者电脑,再或者安卓或 ios ,通过谷歌浏览器,360浏览器或者其他浏览器,这些都是跟终端相关的,在数据当中恰好也有终端字段叫做 use agent,使用谷歌浏览器版本还有网站的栏目。
因此要明确一点维度表是从哪些维度开展的,往往跟右相关,但是有前提,维度表一定要跟事实表相关联,包含它。
本项目模式设计:
直接确定项目当中,本项目中模块设计,因为项目中只有一个分析主题:网站的流量日志情况,因此对应的事实表只有一个:网站流量日志。
本项目采用星型模型,有了星型模型之后确定事实表和维度表,第一个事实表就对应着数据预处理完之后的原始网站访问情况,维度表通常要结合业务去分析维度,但是确定分析的维度要严谨确定,事实表中就这些字段,分析下订单的一天或者访问网站天气预报,就没有天气的记录,所以说要根据业务分析维度,但要求要和事实表关联上,如果不能关联上分析将没有意义,要以能够涵盖事实表为基本标准,
举例,给事实表是过去半年的数据,时间恰好就在一月到六月范围内,
如说接下来给时间2017到2018,因为它们两之间没有关系,分析肯定分析不出来,想一个场景给19年的数据拿18年的数据关联,肯定分析不出来,第二个如果说只涵盖一点也是有问题,虽然它们产生了交集,这只能分析出来交集的部分,其他数据没有交集还是分析不出来,给予这样一个分析的标准才能够涵盖事实表为基本标准,不要求大于,至少两边要相等,所以维度表很灵活,通常跟业务决定,不是随便决定,要跟事实表相关。
接下来以时间维度为例,确定了表当中的模型之后直接导入即可,还有一个问题,在数据预选当中还有个点击流模型,这里会产生局部的小问题:点击流模型数据算什么类型的表?
是事实表还是维度表,点击流模型数据把用户的访问行为按时间先后顺序算成一条线,构成持续访问的轨迹,说是事实表有点勉强,说是维度表更加勉强,因此在这里特别强调一点叫做点击流模型既不是事实表也不是维度表,而是一个业务模型数据,可以称之为事实表的业务延伸。点击流模型是为了分析一些指标业务的方便而扩展出来的业务模型。