一、项目效果展示

大家好,下面我们来学习一个电商行业的数据仓库项目

首先看一下项目效果

数据仓库实例 数据仓库案例分析_数据仓库实例

本身我们这个数据仓库项目其实是一个纯后台项目,不过为了让大家能够更加直观的感受项目的效果,我们可以基于数据仓库中的数据统计一些指标进行展现。
我们这个项目要讲的重点不是这个大屏,这个大屏只是一个效果,为了让大家感受更加直观一些而已,我们主要讲的是这些指标对应的底层数据是如何在数据仓库中一层一层构建的。

二、项目的由来

接下来我们来看一下这个项目的由来,我们为什么要做这个数据仓库项目呢?或者说做这个数据仓库项目有什么意义吗?

在工作中我们经常会遇到这些情况
产品经理过来说,老王啊,你来看一下,为什么这个数据指标在不同的报表中统计的结果不一样呢?
老王听到后,心里拔凉拔凉的,今晚又得加班了,约好的女朋友看电影估计又得泡汤了。

举个例子:针对平台里面的用户下单数据:我们会在客户端记录一份,就是当用户通过网页或者app下单的时候,会触发一个行为,官方名词叫“埋点”,这个埋点对应的其实就是一个接口,当用户通过网页或者app下单的时候,就会触发这个埋点,然后埋点会上报这个数据,最终会把用户下单行为的数据记录下来,这份数据我们就称之为是客户端记录的数据。

同时服务端也会在数据库中维护一份用户的下单数据。

最终在做报表统计的时候:
如果想要按照分钟级别实时计算,做一个用户消费金额的曲线图,我们一般会使用客户端实时上报的数据,用起来比较方便,但是通过客户端埋点上报的数据可能会有一些问题,有可能会丢数据,以及用户在点击下单按钮的时候可能由于网络异常导致下单失败了,但是这条行为数据却发送过来了,以及用户下单之后还可能会退款,所以这里面统计的数据指标会有一些偏差,不过偏差倒不是很大,如果只是想看一下当天用户消费总金额的一个实时趋势,其实这样做是没有什么问题的。但是你要是使用这份数据统计每天用户的消费总金额,那肯定是有问题的。

如果想要按照天来汇总每天用户的消费总金额,这种数据指标对数据的实时性没什么要求,但是对数据的准确度有很高要求,所以一般会使用数据库中的数据,因为数据库是有事务的,并且在统计的时候也可以排除掉用户退款的数据,这样统计出来的才是这一天用户真正的消费总金额。

所以刚才产品经理反馈的问题很大概率是这个原因,当然也有可能是由于计算的口径不一样,因为不同的报表可能是由不同的需求人员提出来的,指标的计算公式也是有所差别的,甚至有的指标是上一任产品经理提出来的,每个人想要统计的指标是有一些区别的,所以在使用数据的时候就会遇到各种各样的问题。

其实,归根结底,就是因为数据不统一,计算流程不统一导致的结果出现偏差。

后来,老王经过一路追踪,发现,原来在统计这个指标的时候,两个报表使用的底层数据不是同一份,所以导致统计的指标有偏差,然后又给产品经理一顿解释,给产品经理解释完又赶紧打电话给女朋友解释,然后就没有然后了。

经过这件事情之后,老王觉得,数据仓库的构建必须提上日程了

通过构建企业级数据仓库,对企业中的所有数据进行整合,为企业各个部门提供统一的,规范的数据出口

这样大家在使用数据的时候不需要每次都到各种地方去找数据,所有人在使用的时候都是基于相同的基础数据,这样计算出来的指标肯定是相同的。

一个完善合理的数据仓库对于企业整体的数据管理是意义重大的,而数据仓库也是整个大数据系统中的重要一环,更高层次的数据分析、数据挖掘等工作都会基于数据仓库进行

如果你的底层数据都没有规划好,那么上层的数据分析以及数据挖掘都是会受影响的。

就像是我们盖房子,如果地基没有打牢,盖出来的房子肯定也是摇摇欲坠。

所以说数据仓库对于一个中大型企业而言是至关重要的。

那话又说回来了,如果你们公司刚起步,产品也是刚上线,这个时候你花大量的时间去搞数据仓库也是没有意义的,这个时候讲究的是快速迭代。
只有说数据规模上来之后,数据仓库才是有意义的,并且也是必不可少的。