数据仓库之我理解

研究数据仓库这个东东已经几个月了,把一些感想写出来与大家一起分享。

 

一、什么是数据仓库

 

数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented )、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策和信息的全局共享。
—W.H.Inmon

 

面向主题的:数据仓库围绕一些主题如顾客、供应商、产品和销售来组织。数据仓库关注决策者的数据建模与分析,而不是组织机构的日常操作和事务处理。因此,数据仓库排除对于决策支持过程无用的数据,提供特定主题的简明视图。

集成的:通常,构造数据仓库是将多个异构数据源,如关系数据库,平面文件和联机事务记录集成在一起。使用数据清理和数据集成技术确保命名约定、编码结构、属性度量等的一致性。

相对稳定的:数据仓库的数据一般没有修改,只是对历史数据的存储查询。

反映历史变化:数据存储从历史的角度(例如过去3~10年)提供信息。数据仓库中的关键结构都隐式或显式的包含时间元素。

说白了一句话,现阶段,数据仓库还是一个普通的数据库,还是现在的关系数据库,以后也许可能发展成列数据库等等,但这是以后的事情了。那数据仓库和普通数据库什么区别呢,主要表现在对数据仓库的数据都是按照分析主题进行分类的历史的数据,不是正常业务的事务性数据,是可能包括多个业务系统的数据,是主要进行批量查询操作而没有修改等操作的数据,是一个为了查询效率高而不太遵守数据库设计范式的数据库。

 

二、数据仓库的主要结构:纬度和立方体。

 

数据仓库是面向主题的,假如说我们针对销售额进行一系列的分析,那么销售额就是数据仓库的一个主题。面向主题只是数据仓库概念层的一个东西,具体到能看得见的东西就是纬度和立方。

继续刚才的销售额进行分析,对销售额分析的时候我们一般会按照省份进行对销售额进行对比分析,那么省份就是我们销售额的一个纬度,类似的信息还有产品、时间、销售经理等,那么省份、产品、时间、销售经理就是销售额这个分析主题的纬度。所以一句话总结,纬度既是我们要分析观察数据一个特定的角度。

继续刚才的销售额进行分析,我们要分析的是销售额,这个具体的数字,具体的度量值,那么由纬度和这个度量值就构成了我们的立方体。之所以叫立方体也是跟立方体本身有很多面构成,很多面可以看成是很多坐标值,这些坐标值交叉一点就构成了这个具体的度量值。简而言之,立方体是有多个纬度和度量值组成的分析主题。

 

其实,对应到数据库,纬度也是一张普通的表,我们简称维度表,立方体也是一张普通的表,我们简称事实表。基于上面的分析,省份、产品、时间、销售人员分别是一张维度表,销售数量是一张事实表,事实表内存储的有分别这几个纬度表的外键。

 

至此,我们就能看出数据仓库和普通数据库最大的区别了,普通数据库是按照业务逻辑设计的遵守设计范式的数据库,而数据仓库是按照分析主题进行分析设计的一系列纬度表和事实表的集合。

 

 

三、数据仓库的系统难点。

 

数据仓库系统是对以前的数据进行按照纬度和立方体进行规整的过程,所以笔者认为这个过程的难点在于粒度的选择或控制。还拿上面的例子我们进行分析我们存储的数据是直接存储按照省份、产品、时间、销售人员进行统计的销售额的和  还是  直接存储 每一笔订单。 这两种存储都能达到我们对销售额进行分析的目的, 只是一个粒度比另外一个粒度粗一些, 细的粒度这要求我们必须提供更多的存储空间。 所以粒度的选择要根据我们具体的业务需求来定,如果需求上没有要求到每一笔订单,则可以考试直接存储汇总的值,但如果要求得到具体的订单的信息,那么此时再这样存储这已经满足不了需求了。

 

 

四、总结

 

数据仓库其实是一个过程,一个确定分析主题、分析粒度,找出纬度和立方体的过程。数据仓库系统不可能一下确定所有的需求,所以数据仓库是一个递增的过程,按照分析主题一步一步完善的过程。另外,数据仓库也只是存储数据的地方,想把数据仓库利用起来,还得配套分析系统、预测系统、挖掘系统等。

 

 

 

 

你可能感兴趣的:(数据仓库)