数据仓库(英语:Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。数据仓库的目的是构建面向分析的集成化数据环境,分析结果为企业提供决策支持(Decision Support)。
数据仓库本身并不“生产”任何数据,其数据来源于不同外部系统; 同时数据仓库自身也不需要“消费”任何的数据,其结果开放给各个外部应用使用。
Hadoop数据仓库的主要特征有面向主题性、集成性、非易失性和时变性,接下来对这四个特性做详细介绍。
面向主题性(Subject-Oriented)
主题是一个抽象的概念,是较高层次上企业信息系统中的数据综合、归类并进行分析利用的抽象。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。
传统OLTP系统对数据的划分并不适用于决策分析。而基于主题组织的数据则不同,它们被划分为各自独立的领域,每个领域有各自的逻辑内涵但互不交叉,在抽象层次上对数据进行完整、一致和准确的描述。
集成性(Integrated)
主题相关的数据通常会分布在多个操作型系统中,彼此分散、独立、异构。因此在数据进入数据仓库之前,必然要经过统一与综合,对数据进行抽取、清理、转换和汇总,这一步是数据仓库
建设中最关键、最复杂的一步,所要完成的工作有: 要统一源数据中所有矛盾之处;如字段的同名异义、异名同义、单位不统一、字长不一致等等。
进行数据综合和计算。数据仓库中的数据综合工作可以在从原有数据库抽取数据时生成,但许多是在数据仓库内部生成的,即进入数据仓库以后进行综合生成的。
下图说明了保险公司综合数据的简单处理过程,其中数据仓库中与“承保”主题有关的数据来自于多个不同的操作 型系统。
这些系统内部数据的命名可能不同,数据格式也可能不同。把不同来源的数据存储到数据仓库之前,需要去除这些不一致。
非易失性、非异变性(Non-Volatile)
数据仓库是分析数据的平台,而不是创造数据的平台。我们是通过数仓去分析数据中的规律,而不是去创造修改其中的规律。因此数据进入数据仓库后,它便稳定且不会改变。
数据仓库的数据反映的是一段相当长的时间内历史数据的内容,数据仓库的用户对数据的操作大多是数据查询或比较复杂的挖掘,一旦数据进入数据仓库以后,一般情况下被较长时间保留。
数据仓库中一般有大量的查询操作,但修改和删除操作很少。
时变性(Time-Variant)
数据仓库包含各种粒度的历史数据,数据可能与某个特定日期、星期、月份、季度或者年份有关。当业务变化后会失去时效性。因此数据仓库的数据需要随着时间更新,以适应决策的需要。
从这个角度讲,数据仓库建设是一个项目,更是一个过程。