仓库是一个出现了上千年的概念,意思是盛装物品的巨大容器,比如粮食仓库、弹药仓库、原材料仓库等。而之所以称为“数据仓库”,也正是使用了仓库的本意。
顾名思义:数据仓库就是盛装了大量数据的巨大容器。
这里,我们一定要知道“数据仓库之父”William H.Inmon,他在1993年所写的《Building the Data Warehouse》一书中,定义了数据仓库的概念。
定义:数据仓库是一个面向主题的(subject-oriented)、集成的(integrate)、相对稳定的(non-volatile)、反映历史变化的(time variant)的数据集合,用于支持管理决策。
根据这一定义,我们看到数据仓库具有以下4个特点:
- 数据仓库中的数据是按照面向主题的方式组织的。
- 数据仓库中的数据是集成的。
- 数据仓库中的数据是稳定的。
- 数据仓库中的数据是随着时间不断变化的。
① 面向主题的。
正如我们上面举的例子:粮食仓库、弹药仓库、原材料仓库是不同的仓库,数据仓库同样也是按照其存放数据的内容不同,来分别存储和管理。
通常来说,数据仓库的主题是在较高的业务概念领域对整体的数据内容的划分,在划分的时候,一般不会苛刻地要求其准确性和完备性,而更像是一个业务概念,且更注重这个业务概念在逻辑上、在业务表现和分析方式方面的易用性。
比如,一家电商公司,核心业务是通过各种渠道进货;在网上销售给普通的用户;希望在其网站上做推广,以提升其产品销量。对于这样的客户,可以有单独的系统做销售方案配置;同时具有自己的售后体系。这家公司在做数据仓库主题划分的时候,一种选择就是将所有的业务划分为这样几个数据仓库:渠道数据仓库、用户数据仓库、客户数据仓库、售后数据仓库。每一部分都是独立的数据结构、独立的存储和分析应用。
请注意:在这个例子中,我们只是举了一个面向主题划分的例子。
② 集成的。
粮仓的管理,是将一家一户的粮食都收集上来,做晾晒、防虫处理,之后按照粮食的类别存放在仓库的不同位置。数据仓库与此类似,它是要对主题相关的来自不同信息系统(或者散落在个人手头、人脑等)、不同介质、不同存储结构、不同地域的数据加以收集、整理、分类和优化,之后才能够放入数据仓库中。
集成是一个复杂的体系,过程中也涉及大量的沟通、计算、管理工作。
③ 相对稳定的。
对于粮仓来说,它存储的粮食,一般是为了储备,或者国家意义上的调拨和使用,一般不会今天拿两斤玉米、明天取3斤红豆。数据仓库也类似,存储在里面的数据,一般不会进行数据的删、改操作,业务数据入库之后,也极少进行更新。大部分的操作是查询,通过查询来取得信息、定位问题、进行业务优化、做方向决策等。
④ 反映历史变化的。
粮仓里面的粮食都会被明确标注:粮食的收获日期、重量等。数据仓库也会不断地从业务库、日志数据等多种来源获取数据,标注它的生成时间,并把它们放入仓库中。数据积累的多了,整个数据仓库就能反映出每部分数据的历史变化。历史变化的情况指明了业务的变迁(粮食产量的变迁),指导现阶段的健康指标(今年粮食产量是否合理),同时,也可以用来预测未来的业务指标(未来一段时间粮食产量的预期)。