在文章开始前,各位读者大人如果听过数据仓库或者知道数据仓库,可以思考下数据仓库跟数据库有什么区别。如果未听过数据仓库,我猜你也想知道为什么有数据库了,还要数据仓库。
思考过后,我们来开始吧。
一、什么是数据仓库?简单讲,数据仓库是一种特殊的数据库。数据仓库一般以主题为出发点进行的,也就是业务核心,集成多种数据源的数据,会随着时间的变化而变化,因为随着时间数据的量会改变,而且以读操作为主,所以基本不会丢失,总结成4个特点可以说,数据仓库是一个面向主题的,集成的,时变的,非易失的数据集合,支持管理者的决策过程。 它是由企业进行的大量信息的电子存储,它的设计用于查询而不是事务处理。这也就是它跟数据库的区别。数据仓库一个将数据转换为信息并及时向用户提供的过程,传统数据库大多表示数据而已。
数据仓库的特点,如图
二、数据仓库的组成数据仓库不是一个product,而是一个environment。这么说是因为它不是单纯的存储数据的地方,而是一个信息系统的架构构造,是为数据分析和报告而构建。主要由以下三部分组成的
1、底层是仓库数据库服务器:几乎是一个关系数据库系统,使用后端工具和实用程序,由操作数据库或其它外部数据源,提取数据,放入底层
2、中间层是OLAP服务器
3、顶层是前端客户层,也叫应用层。包括查询和报告工具,分析工具和数据挖掘工具。
具体组成,如图所示
三、数据仓库模型
根据结构来说,数据仓库有三种数据仓库模型。
企业仓库:是一个集中式仓库,包括细节数据和汇总数据,为整个企业提供决策支持服务,提供统一的方法来组织和表示数据,还根据主题对数据进行分类以及访问的能力
数据集市:是数据仓库的子集。专门针对特定业务部门而设计,例如销售,财务。在独立的数据集市中,数据可以直接从源收集。
虚拟仓库:操作数据库上视图的集合。
四、开发数据仓库系统需要注意什么。开发数据仓库有比较普遍的两种方法,分别是自顶向下以及自底向上。
自顶向下:是一种比较系统的解决方案,并能最大限度得减少集成问题。但是它费用高,开发周期长,而且缺乏灵活性,因为整个组织就共同数据模型达成一致是比较困难得
自底向上:灵活,低花费,并能快速汇报投资,但是将分散得数据集市集成,形成一个一致得企业数据仓库,可能导致问题。
因此如果能结合二者,以递增,进化的方式实现数据仓库。例如在一个合理短得时间里,在不同得主题和应用之间,提供企业范围得,一致的,集成得数据视图。
设计步骤一般为
(1)选取待建模的业务处理(例如订单,销售)。如果一个商务过程是整个组织的,并涉及多个复杂的对象,应该选用我们上面说的数据仓库模型。如果处理是部门的,而且关注的是某一业务处理的分析,就应该选择数据集市。
(2)选取业务处理的粒度(例如一个事务)。
(3)选取用于每个事实表记录的维例如(时间,商品)。
(4)选取将安放在每个事实表记录中的度量。例如销售量。
实施步骤一般为
1、企业战略:确定技术,事实,维度和属性。包括数据映射以及转换。
2、分阶段交付:根据主题分阶段实施数据仓库。比如销售系统,应先实施预定和计费等相关业务实体,然后相互集成。
3、迭代原型:应该迭代开发和测试,而不是一个大爆炸的实现方法 。