为了方便公司的数据分析平台的独立运行和数据挖掘的探索,今年上半年在公司搭建了支持数据平台和数据挖掘的数据仓库;现就数据仓库的创建工作总结如下,供大家参考:
首先介绍下数据仓库搭建的缘由:
公司创建两年,用户量不多,也有几十万吧,就我来的时候,公司功能性平台基本上都有,例如:用户管理平台、订单管理平台、财务管理平台、运营管理平台、客服管理平台、系统管理平台等相关功能平台算齐全,基本能满足功能,但是数据平台还没有,老板、运营、市场,及相关人员对相关数据指标的了解还是通过看每周发上来的数据报表,这样就有很多重复性工作,效率及其低下,所以在来之后我(做数据的)就从原来的报表及各个部门的沟通,整理了常用的基本数据监控指标,做成了数据平台一期,基本满足各部门的数据需求,但是数据平台的一些基本指标就相当体检项目指标一样,只能关注到我们产品的运营基本情况,没有对数据进行深层次的挖掘,不仅对运营、市场的指导性不强,也对老板的决策没有建设性的支持,所以我提出了用户档案的建立,以便我们数据分析人员做用户画像积累静态数据,同一时间也提出来做APP的用户埋点工作,积累用户的行为数据,以便做关联分析。
数据积累1个月的时间,我们就准备着手数据分析平台的二期工作,数据平台二期工作主要是用户画像和用户行为分析(具体细节下次在整理),在这些需求下,数据平台的反应时间变慢性能也不行,也经常出问题,因为我们一直用的是线上数据库,也没有做中间表之类的,起初想做中间表进行优化,后来想想以后还要做更多的数据分析和数据挖掘方面的工作,所以综合想想,我们干脆搞个数据仓库,专门支持数据平台和数据分析、数据挖掘的工作的。
然后就是介绍下我们数据仓库的设计:
如上,公司到目前为止,没有做微服务的架构,所以线上就两个数据库,分别是线上app功能和埋点数据的相关表, 按照需求,我们会从数据源把数据抽取到数据仓库底层,对数据进行订正等处理,并形成更新的定时事务;导入数据库底层的基础表我们分为实时数据、日数据、月数据(表示更新时间间隔),通过基础表,我们会处理为中间模块表,区分功能,我们公司大体分为支持数据分析平台的中间表和数据挖掘探索应用的中间表,本来到这里就可以支持数据平台和数据挖掘工作,但是由于公司的数据量也不小,mysql计算的一些指标反应速度比较慢,也没有对sql进行优化,简单的优化肯定有,所以我们就数据平台的计算结果又做了一层结果表,这样的话开发直接写接口调用表里的数据即可,而且数据分析平台反应很快,同样,我们对数据挖掘的变量需求数据也做成相关结果表,这样也就形成了数据挖掘常用数据变量表。