本文简要总结以下两个问题,旨在高速理解“数据仓库”
1、什么是“数据仓库”?
2、“数据仓库”与“数据库”的差别?
以下做详细阐述:
1、什么是“数据仓库”?
“一个数据仓库通常是一个面向主题的、集成的、与时间相关且不可改动的(能够加入)数据集合。它用于对管理决策过程的支持。”
此句话包括几个关键点:面向主题的、集成的、与时间相关的、不可改动的。详细含义欢迎留言交流。
2、数据仓库与数据库的主要差别
企业的数据处理大致分为两类:
一类是操作型处理。也称为联机事务处理,它是针对详细业务在数据库联机的日常操作,通常对少数记录进行查询、改动。
还有一类是分析型处理,一般针对某些主题的历史数据进行分析,支持管理决策。
主要差别例如以下:
(1)数据库是面向事务的设计。数据仓库是面向主题设计的。
(2)数据库一般存储在线交易数据,数据仓库存储的通常是历史数据。
(3)数据库设计是尽量避免冗余,一般採用符合范式的规则来设计;数据仓库在设计是有意引入冗余,採用反范式的方式来设计。
(4)数据库是为捕获数据而设计。数据仓库是为分析数据而设计。它的两个主要的元素是维表和事实表。
维是看问题的角度,比方时间,部门。维表放的就是这些东西的定义。事实表里放着要查询的数据。同一时候有维的ID。
单从概念上讲,有些晦涩。不论什么技术都是为应用服务的。结合应用能够非常easy地理解。以银行业务为例。数据库是事务系统的数据平台。客户在银行做的每笔交易都会写入数据库,被记录下来,这里。能够简单地理解为用数据库记帐。
数据仓库是分析系统的数据平台。它从事务系统获取数据,并做汇总、加工,为决策者提供决策的根据。
比方。某银行某分行一个月发生多少交易,该分行当前存款剩余金额是多少。
假设存款又多。消费交易又多。那么该地区就有必要设立ATM了。
显然。银行的交易量是巨大的,通常以百万甚至千万次来计算。事务系统是实时的,这就要求时效性。客户存一笔钱须要几十秒是无法忍受的,这就要求数据库仅仅能存储非常短一段时间的数据。
而分析系统是事后的。它要提供关注时间段内全部的有效数据。这些数据是海量的。汇总计算起来也要慢一些,可是,仅仅要能够提供有效的分析数据就达到目的了。
附“数据仓库”示意图例如以下: