实施一个数据仓库项目的主要步骤是:
1.定义范围
项目范围定义了一个数据仓库项目的边界。典型的范围定义是组织、地区、应用、业务功能的联合表示。
定义范围时通常需要权衡考虑资源(人员、系统、预算等)、进度(项目的时间和里程碑要求)、功能(数据仓库承诺达到的能力)三方面的因素。
项目范围是设定正确的期望值、评估成本、估计风险、制定开发优先级的依据。
2.确定需求
数据仓库项目的需求可以分为业务需求和技术需求。
1)定义业务需求
2)定义技术需求
3.逻辑设计
接着进行逻辑设计:需要定义特定数据的具体内容,数据之间的关系,支持数据仓库的系统环境等,本质是发现逻辑对象之间的关系。
1)建立需要的数据列表
例如,销售主题域的业务因素可能是客户、地区、产品、促销等。然后建立每个业务因素的元素列表,依据也是用户提出的需求。最后通过元素列表,标识出业务因素之间的联系。
2)识别数据源
现在已经有了需要的数据列表,现在考虑:从哪里可以得到这些数据,以及要得到这些数据需要多大的成本。需要把上一步建立的数据列表映射到操作型系统上。
从哪里获取:
应该从最大最复杂的源系统开始,在必要时再查找其他源系统。数据的映射关系可能是直接的或间接的,比如销售源系统中,商品的单价和折扣价可以直接获得,而折扣百分比就需要计算得到。
成本:
某些数据的获得需要较高的成本,例如,用户想要得到促销相关的销售数据就不那么容易,因为促销期的定义从时间角度看是不连续的。
3)制作实体关系图
在维度模型的ERD中,实体由事实表和维度表组成,关系体现为在事实表中引用维度表的主键。因此先要确认哪些信息属于中心事实表,哪些信息属于相关的维度表。维度模型中表的规范化级别通常低于关系模型中的表。
4.物理设计
物理设计指的是将逻辑设计的对象集合,转化为一个物理数据库,包括所有的表、索引、约束、视图等。
1)性能优化
比较通用的数据仓库优化方法有位图索引和表分区。
位图索引对索引列的每个不同值建立一个位图。
大部分数据库系统都可以对表进行分区。
2)数仓的拓展性
从技术上讲,可扩展性是一种通过增加资源,使服务能力得到线性扩展的能力。
5.装载数据
这个步骤实际上涉及整个ETL过程。
6.访问数据
访问步骤是要使数据仓库的数据可以被使用,使用的方式包括:数据查询、数据分析、建立报表图表、数据发布等。根据采用的数据仓库架构,可能会引入数据集市的创建。
访问步骤需要执行以下任务:
7.管理维护
这个步骤涵盖在数据仓库整个生命周期里的管理和维护工作。
这步需要执行的任务包括:
参考:《Hadoop构建数据仓库实战》