无处不在的数据
在互联网时代的浪潮中,数据驱动业务已成为业界的共识.在数据贫乏的年代,流行的是粗放型经济,大部分的决策用的都是拍脑袋大法.在人工智能早已写进小学课本的今天,使用数据进行精准决策成为主流.用户在网络世界的每个动作,都对应着数据库里的一条甚至多条数据.浏览、点击、搜索、收藏、下单、分享.......这些行为背后,都是成堆的数据.通过分析这些数据,可以刻画用户的偏好、发现产品的缺陷、洞察市场趋势,后面的故事你们都懂的.终极奥义就是提升用户体验(资本利益最大化).
数据分析与数据仓库
数据分析能有什么原则呢?Excel处理数据谁都会,麻烦点的用Python呗.在业务体量初步增长的阶段,数据量较少,用excel就足够了.不过数据多了就hold不啦,得上数据库了.Python擅长数据处理是众所周知的,一个pandas搞定所有,再加上可视化工具包便可打遍天下无敌手,毕竟数据科学一哥的名号可不是吹的.昨天去水果店里买黄瓜,店老板还在看7天精通python数据分析的网课呢.但是毕竟不是人人都是数据分析师啊,数据的结果要想直观及时的呈现给业务同学同时又不让他们抓狂的话,还是收好Python脚本吧.
前面提到过, 公司发展的初步阶段, 数据量较小,用excel或者临时脚本分析业务数据已经足够.但是当公司数据积累到一定程度之后,对数据分析的维度和指标要求越来越高, 同时脚本处理数据时间太长, 就需要上数据仓库了.数据仓库,顾名思义,就是将数据收集并存储起来,将各种来源的数据,按照业务逻辑进行加工,当老板们需要使用数据的时候,直接从数据仓库里面取就可以了,不用再临时跑脚本.当其余部门需要使用数据的时候,也不用各种拼凑,直接从数据仓库里面提取他们需要的数据.
那么数据分析和数据仓库有什么关系呢?简单来说,数据仓库为数据分析提供基础数据,而数据分析挖掘出的有价值的数据分析方法(业务口径),也会回流到数据仓库,沉淀为新的维度或着指标,两者相辅相成.只有数据分析而没有数据仓库,分析数据的准备过程会痛苦不堪,而且由于每次取数的口径不同,会导致分析出来的数据有差异,可信度不高.只有数据仓库而没有数据分析,则无法实现数据驱动业务的目的.
关于数据仓库,在阿里巴巴大数据之路中有很好的介绍,根据阿里集团大数据建设的经验,讲解了数据仓库建设迭代的历程.另外一本书数据仓库工具箱,详细的介绍了维度建模理论在数据仓库中的使用.
维度建模-星型模型
维度建模是一门很实用的理论,但要讲好它是在不易,本文仅介绍维度建模中常用的星型模型以及它在数据分析中的使用.
下图是一个星型模型,中间的表我们称为事实表,记录现实世界中的操作,比如用户的一次浏览行为或者用户的一次购买行为.四周与事实表相连的表称为维度表,用于存储事实表中实体的属性,如事实表中有客户id,客户维表中则存储客户的信息,如地理位置,性别,年龄,行业等.
为什么要把数据整理成这个样子呢?到底哪些数据要放到事实表中,哪写数据要放到维度表中呢?哈哈哈,这个问题真是一言难尽,除非在实际的数据开发过程中来体会,否则真的很难解释清楚.各位自行体会吧.但是不得不说,这样来存储数据,使用起来真的很方便.如今维度建模理论已经是各大互联网公司的标配了,
数据分析与维度建模
数据分析的目标是挖掘数据的商业价值,其使用的工具有很多种,excel,python,sql等等, 工作中最常用的是sql了, 所以从事数据行业的同学常常被称为sql boy.
当然写sql也是有不同的境界的,如果每次都是一堆嵌套,大表套小表外加各种奇怪的where条件的,绝大部分情况都是维度建模没有做好.良好的维度模型取数的sql是非常简洁的,只需要一个事实表连接需要的维度表即可取到任何需要的数据.
数据分析平台
数据分析平台有很多选择,可以自建,也可以用第三方云服务,福禄目前采用的是阿里云的Maxcompute服务.在实际的开发过程中,只需要在工作取些好sql即可运行出数,配置调度任务也十分方便.但是在上面观察数据就不太方便了,有时候分析数据需要进行一些筛选,排序,透视图的功能,虽然阿里云也提供了配套的在线excel分析功能,不过使用起来很鸡肋,还不如下载到本地用excel观察.
数据拉取到本地是一件体验感很不好的事情,首先从公司的角度要考虑数据安全新,其次开发人员每次拉取数据,同一份数据保存不同的版本很令人抓狂的,再说磁盘也扛不住啊.
Tableau X Maxcompute
怎么办呢?有没有可以在线展示数据,进行多维分析的工具呢?阿里云提供了很多解决方案,其中之一就是Tableau连接Maxcompute.Tableau官方文档参考这里
首先安装准备maxcompute RAM账号进行jdbc连接
配置账号信息点击登陆即可,文档参见 阿里云官方文档
然后就可以再侧边栏选择表,构建星型模型进行分析啦.
使用Tableau进行数据分析
选择表,构建星型or雪花模型,数据模型构建文档参考
也可以使用自定义SQL哦
选定维度,字段,或者创建自定义维度和自定义字段,即可实现数据可视化了
这样的开发模式对数据分析的场景是很赞的,首先数据直连数据仓库,不用担心数据不一致的问题,其次交互式的构建星型模型,不用每次都写一样的代码,当然习惯sql的同学使用自定义sql同样可以取数.最方便的功能就在于维度和度量的交互式选取,以及丰富的图表展示功能了,这样可以让分析师直观的感受到数据的分布,从而及时对业务口径的质量进行评估, 洞察业务数据发现商机.
OLAP系统
在传统的数据仓库里,每次的数据都需要人工清洗汇总,但是当公司体量进一步发展,对数据的需求会不断增加,人工取数的方式不再能满足运营需求,因此OLAP系统登场了.
何为OLAP?及席查询系统是也. 它允许用户从多维度自行对数据进行查询,拆解.盗取网图一张.
其实Tableau联合Maxcompute的使用方式,已经有OLAP系统的雏形了,用户可以在Tableau里面对数据进行自由的探索,创建自己的面板及时洞察数据.数据开发同学只需要加工好维度表和dwd/dws表并在Tableau上创建好模型即可.
需要注意的点是数据安全以及Tableau面板数据沉淀到数据仓库的过程.
另外一个需要注意的点是Maxcompute计算速度较慢的问题,解决方案之一是使用Hologres对Maxcompute的表进行加速计算,将Maxcompute的表映射到Hologres中,即可实现加速查询.Tableau后续只需和Hologres连接, 即可打通流程.
结语
工欲善其事,必先利其器.好的工具可以让我们事半功倍.此外我们还需要提高自己的内功,不然就算找到了大师剑,你也拔不出来啊.