程序员数据仓库建设

数据分析概述

2019-10-01  本文已影响0人  voxer

团队涉及到数据分析的项目,有必要和小伙伴做一个简单的入门培训。BI 是一个非常大的领域,涉及到非常多的概念和技术,还有专门从事 BI 的技术和业务人员。所以这里只能宽泛的介绍数据分析的一些基本概念、基本流程和一些工具。
这里更多的是个人的理解,并不准确和完整,目的是引导大家去做更多的研究和学习。

1. 数据分析和数据挖掘

BI 主要包含这二个相关又有差异的概念。其前提都是我们能获取到一个企业或一个实体的所有相关业务数据,这些数据来自企业的多个业务系统,庞杂又巨量,对于管理层来说,如果没有数据分析和数据挖掘,这些数据是没有意义的。
把这些数据转换成有用的信息和知识就是 BI 的目的。

它们的差异可以参考 数据挖掘与数据分析的主要区别(知乎)
这里再补充一些自己的理解:

2. 数据分析项目实施的基本过程

2.1 需求分析和调研

数据分析需要业务人员的全面配合和参与,所有数据分析项目都是和行业紧密相关的,不同的行业差异很大,专业性要求不一样。如果是比如银行这种分析项目,如果没有业务专家的配合,基本是不可能实现的。

作为 IT 团队,也需要精通或熟悉特定行业业务的复合人才,否则纯技术人员是无法和业务专家顺畅交流的。

前期需要充分的讨论和调研,要了解现有所有的业务系统,与不同部门的业务人员讨论,与各级管理人员讨论需求,产出需求分析文档和数据决策系统或大屏展示系统的UE,UI设计。
还有一个很重要的数据调研,需要把所有分析的数据来源从现有业务系统上标出,包括详细的字段说明。

这里有几个基本概念必须了解:

我们来看一个实际的例子,一个快销品厂商针对销售主题需要分析,其中基本的数据是销售记录,记录某个时间点某个销售点卖出某些特定产品。
那么维度可能就包括时间、地域、产品、支付方式、用户等,每个维度还分很多级,分级的方式不是固定的,比如这个例子可能不关心季节和周,所以时间的分级可能是年月日时分秒。区域可能分省市等,产品可能分级为类型、名称等。
指标的话,可以是销售的数量,销售的金额,销售的利润率之类的。

2.2 整体设计(主要是数据仓库设计)
image.png
如上图,这是一个数据分析的标准体系结构,再怎么设计基本结构不会有大的改动。ODS、DM、DW的概念可以参考 数据仓库ODS、DW和DM概念区分。这里加上自身的理解:

我们再来看看维度表事实表的概念, 维度表是维度属性的集合,事实表是数据仓库结构中的中央表,它包含联系事实与维度表的数字度量值和键。我们以例子来看就比较清楚了,这里面又涉及到星型模型和雪花模型的概念。
我们还以上面的例子来设计维度表和事实表的星型模型。

image.png
其中事实表是中心,里面包含了指标字段:金额和数量和其它所有维度的唯一标识。其它每个维度都是一个独立的表,如果一个维度表又拆成多个表就是雪花模型。
接下来看一个更完整的结构图:
image.png
这里涉及到 OLAP 的概念,OLAP 核心就是多维分析,在 DW DM 的基础上对数据的多个维度进行分析,分析的操作包括钻取(Drill-down)、上卷(Roll-up)、切片(Slice)、切块(Dice)以及旋转(Pivot),在上面的链接里有形象的图示说明,其本质就是维度级别的变换,维度选择的变换,总之让业务人员从各种角度去观察和分析数据。
OLAP的二种方式 MOLAP和ROLAP需要单独说一下:

最后要考虑的是给最终用户程序的界面,通常是一个大屏的报表展示或一个管理网站,通常除了分析也有明细查询,通过二维表格、饼图,曲线图各种方式展示结果,用户通常从宏观上看数据,发现问题后再利用多维分析的操作做更细致的查询分析,最后得出结论汇报给管理者,辅助决策。

整个设计的产出物包括业务数据库到ODS的数据映射文档,三层数据库的库表设计文档等。可能会用到 ERWin之类的工具。

2.3 具体实施

具体实施会用到很多工具辅助完成,不同于其它信息化项目,数据分析要做的编码工作很少,在每个环节都有成熟的可视化工具使用。

  1. 数据抽取到 ODS :从多个业务系统里把数据抽取到 ODS 层,这是标准的 ETL 过程,工具基本上都是用免费的 Kettle,商用的也可以用IBM的 DataStage。
    通常包括历史数据的整体抽取和实时数据的定时抽取。数据的格式可能也多样,可能是直接对数据库,可能是增量文件之类的,可能是接口等。

  2. 从 ODS 到 DM,DM 到 DW层 :同样是利用 ETL 工具实现。

  3. ROLAP 和 MOLAP 实施,如果需求确实简单可以直接用 echart 来写代码实现。但是通常使用成熟工具,这里可以选择的工具很多,但是基本上还是用商用的付费产品,国外的有 IBM的Congons、Oracle的Obiee、微软的 Power BI,国内有阿里的 DataV、帆软 等。这些产品各有特点,但是基本的 ROLAP 和 MOLAP 都有对应的产品来实现。
    实施的过程中 MOLAP 可以利用可视化工具搭建 Cube,而ROLAP 则需要编写大量复杂的 SQL,还得考虑执行效率的问题,前端响应太慢对于用户来说整个分析项目就没法用了。

  4. 发布上线,测试和联调:上面提到的工具最后都可以直接以服务的方式发布到生产环境给用户使用。用户通过 B/S 方式浏览器访问。
    这里最重要的是需要考虑分析结果的准确性,不能有一点偏差,因为分析是为了决策的,如果分析的结果都是错误的,影响肯定非常大。需要和业务人员仔细核对数据的准确性。整个数据的流转很长,任何一个环节有错都可能导致结果不正确。

3. 总结

以上是整个数据分析的大概过程和主要概念介绍,细节很多,总体上来说数据分析已经是非常成熟的工程项目,工作量大,但是基本都是套路。
还有一点就是数据分析项目对业务的理解要求很高。

上一篇 下一篇

猜你喜欢

热点阅读