数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。
对于数据仓库的概念我们可以从两个层次予以理解,首先,数据仓库用于支持决策,面向分析型数据处理,它不同于企业现有的操作型数据库;其次,数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。

数据仓库与数据库的区别数据仓库和数据库的主要区别如下:
1、 数据库是面向事务的设计,数据仓库是面向主题设计的。(后面我们会详细介绍数据仓库面向主题的特点)
2、 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。
3、 数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。
4、 数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。(维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID)(后面会详细介绍)

粒度
粒度问题是设计数据仓库的一个重要方面。粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化越低,粒度级就越大。在数据仓库环境中粒度之所以是主要的设计问题,是因为它影响存放在数据仓库中的数据量的大小,同时影响数据仓库所能回答的查询类型。元数据元数据是关于数据的数据。元数据的重要性在于:DSS分析人员在使用数据仓库进行决策分析时,需要得到尽可能多的帮助,而元数据恰好能很好地帮助他们。元数据在数据仓库的上层,并且记录数据仓库中对象的位置。
典型的元数据主要记录:
1、 数据仓库表的结构
2、 数据仓库表的属性
3、 数据仓库的源数据(记录系统)
4、 从记录系统到数据仓库的映射
5、 数据模型的规格说明
6、 抽取数据的历史记录(日志)
7、 访问数据的公用例行程序

数据仓库体系结构企业数据仓库的建设,是以现有企业业务系统和大量业务数据的积累为基础。数据仓库不是静态的概念,只有把信息及时交给需要这些信息的使用者,供他们做出改善其业务经营的决策,信息才能发挥作用,信息才有意义。而把信息加以整理归纳和重组,并及时提供给相应的管理决策人员,是数据仓库的根本任务。因此,从产业界的角度看,数据仓库建设是一个工程,是一个过程。
整个数据仓库系统是一个包含四个层次的体系结构,具体如下所示:

  1. 数据源:是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于关系型数据库RDBMS中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等;目前,我们的数据仓库的数据源主要是内部信息,也就是来源于各个信息系统下的关系型数据库。
  2. 数据的存储与管理:是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。装载入数据仓库。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。 目前,我们的数据仓库主要是企业级数据仓库,并没有部门级数据仓库,也就是所谓的数据集市。
  3. OLAP服务器:对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:ROLAP、MOLAP和HOLAP。ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。
  4. 前端工具:主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。