一.什么是数据仓库?
数据仓库是什么?这是一个不太容易回答的问题,业界有很多不同的定义,众说纷纭。但是,数据仓库的设计和开发有两种主流的方法,因此我们用此来定“数据仓库是什么?
”。
-
Ralph Kimball:
if we are building a Kimball data warehouse, we build fact tables and dimension tables structured as data marts. We will end up with a data warehouse composed of the sum of all the data marts.
-
Bill Inmon:
if our choice is that of an Inmon data warehouse, then we design a (somewhat normalized), physical relational database that will hold the data warehouse. Afterwards, we produce departmental data marts with their star schemas populated from that relational database.
因为Inmon数据仓库有一个实体的关系数据库存在,概念上更加直观,本文采用的是Inmon数据仓库的定义。
二. 总体概述
该篇论述数据仓库的设计方法以及如何根据企业分析需求目标建立数据仓库。由于数据仓库是一个很大的概念,本身就包含一个企业或组织的所有业务和活动数据,往往又分为很多的主题,例如销售主题、财务主题、人力主题、原料主题等等很多企业或组织关系的主题化的数据。因此数据仓库的设计和建立不是也个一蹴而就的过程,而是一个不断演进逐步增加的迭代过程。
因此我们在进行数据仓库设计的时候,一般采用的是以应用主题为单位的设计和建立过程,然后再把建立起来的主题化的数据单元(我们称之为Data Mart)进行整合和优化,最终形成一个较为完整的数据仓库。所以本篇所讲的也就是Data Mart的设计。
三.Data Mart 的组成
在设计Data Mart之前,先要清楚Data Mart的组成部分,以及每一部分的具体作用是什么。Data Mart有四个部分组成:指标值(Measures)、维度(Dimension)、层次(Hierachies)、属性(Attributions)
指标值:
该值是一个数值型的数值,用来反应一个组织或企业的经营活动状况。是决策者进行决策的基础,以及判断 决策效果如何的依据。例如销售额、利润等指标值。
维度:
维度提供了不同的视角来观察企业或组织的经营活动状况,如在不同的地区销售收入如何,在不同的时间销售收入如何,以及不同的销售人员完成的销售情况如何等等。
层次:
在查看、统计指标数据时我们有时需要能够在不同的层次上进行。如年---月----日,先看某一年的然后看该年份每一个月的,然后具体到日的。层次为我们们提供了进行这种操作的功能。
属性:
属性值用来描述维度成员,提供一些附加信息是的Data Mart更易于使用。
四. Data Mart 的设计
在了解了Data Mart的组成之后,我们就可以开始Data Mart的设计了。和所有其他的软件项目一样,我们的Data Mart设计也是来源于需求,来源于决策者的决策需求。
Data Mart具体设计步骤如下:
- 在做决策时决策者需要哪些信息?(确定指标值
)
- 在做决策时决策者一般如何查看这些信息?(确定维度
和层次
)
- 有哪些辅助的信息可以帮助决策者更快找到需要的信息?(确定属性
)
经过这三个步骤后,我们就得到了设计Data Mart的信息需求。但是,还需要确定在现有的数据中这些信息能不能都找到,如果不能那么我们就需要和决策者进行确认。有没有其他的信息代替,有没有其他的数据源提供这些信息。最终得到的就是Data Mart的真实需求。
五. Data Mart结构设计
有了Data Mart的真是需求信息后,我们就能够把这些信息组装成便于进行数据分析的星型结构
或者雪花型结构
。
具体做法是指标值
形成一张事实表
,每一个维度形成一张维度表
并通过外键连接到事实表
。属性
信息添加到维度表,用来提供分析辅助信息。
星型结构
和雪花型结构
唯一区别就在于对层次
的处理上。星型结构
将层次信息都在同一张维度表存放,有不同键值组合来表示层次结构,这样在进行数据分析时不需要进行联表操作,性能较高,但是存在数据冗余。
雪花行结构
则是把不同的层次存放在不同的表中,通过外键链接起来,这样由于采用了结构化的数据处理消除了数据冗余,对于熟悉数据库设计的人更容易理解,但是查询时需要进行联表操作对性能有一些影响。具体如何选择,要根据情况而定。(本来是要附上图片,但是JavaEye图片插入不了,不知道什么原因,郁闷...
)
六.总结
从以上小节可以看出Data Mart的设计并是难,但是为什么数据仓库的设计被人们描述的都很高深呢?这是因为一个企业或组织有很多这样的Data Mart,而且它们之间存在着千丝万缕的关系,由这些关系连接的Data Mart就构成了数据仓库。设计的时候既要考虑分析需求,还要考虑数据的一致性、尽量减少数据冗余、高的查询分析性能,而且要考虑最总系统的可用行。这些都大大的加大数据仓库设计的复杂行,要设计出结构良好的数据仓库不仅需要扎实的理论基础还要有丰富的经验。
分享到:
相关推荐
《商业智能-BIEE初探》 商业智能(Business Intelligence,简称BI)是现代企业管理和决策的重要工具,它通过对大量数据进行分析,提取有价值的信息,帮助企业制定策略,提高运营效率。BI系统通常包括数据集成、数据...
1.3 组成部分:CBI系统通常包括数据仓库、数据挖掘、报表工具、仪表盘、预警机制以及协作平台等模块。 二、协同商务智能的重要性 2.1 提升决策效率:CBI允许团队成员即时访问和分析数据,快速做出基于事实的决策,...
### 商业智能在企业中的运用及发展趋势初探 #### 一、引言 在知识经济时代,企业面临着信息爆炸的挑战。随着企业信息化水平的提高,如何从海量数据中提炼出有价值的信息,成为了企业管理者关注的重点。商业智能...
MPP NewSQL 数据库集群支撑企业超大规模数据仓库案例介绍.pdf Big Data in Action – 企业如何运用微软 Big Data 的技术具体规划并落实运行.pdf 小米hadoop/hbase微实践.pdf HBase近期的发展及实践.pdf 简单诉求下的...
最后,在应用阶段,公交大数据平台将针对公共出行、市民服务、城市建设、金融服务、商业地产和环境保护等多个场景,基于数据仓库提供API、BI工具和大数据业务建模,以支撑各类应用场景的需要。 通过电商技术构建的...
MPP NewSQL 数据库集群支撑企业超大规模数据仓库案例介绍.pdf Big Data in Action – 企业如何运用微软 Big Data 的技术具体规划并落实运行.pdf 小米hadoop/hbase微实践.pdf HBase近期的发展及实践.pdf 简单诉求下的...
MPP NewSQL 数据库集群支撑企业超大规模数据仓库案例介绍.pdf Big Data in Action – 企业如何运用微软 Big Data 的技术具体规划并落实运行.pdf 小米hadoop/hbase微实践.pdf HBase近期的发展及实践.pdf 简单诉求下的...