1 数据仓库的概念
数据仓库( Data Warehousing )的概念最早出现于 20 世纪 80 年代。而直到 1993 年,号称“数据仓库之父”的 William H . Inmon 在其论著《Building the Data warehouse》一书中,首次系统地阐述了数据仓库的思想和相关理论,为数据仓库的发展奠定了基石。他将数据仓库定义为:“一个面向主题的、集成的、反映历史变化的、相对稳定的数据集合,用于支持管理决策”。与传统的事物处理系统有不同的是,数据仓库是一种过程,它是对分布在组织或企业内部各处的业务数据进行整合、加工和分析的过程。而不是一种可以购买的产品。
1.1 面向主题( Subject-oriented )
“主题”是一个较为抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面。从信息管理的角度看,主题是在一个较高的管理层次上对数据进行综合、归类所形成的分析对象;从数据组织的角度看,主题就是一些数据集合,这些数据集合对分析对象作了比较完整的、一致的描述,这种描述不仅涉及到数据本身,还涉及到数据之间的关系。
“面向主题”则表明了数据仓库中数据组织的基本原则,是指数据仓库内的信息是按主题进行组织的,而不像传统事物处理系统那样单一地按照业务功能及性能要求进行组织。
1.2 集成( Integrated )
“集成”是指数据仓库中的信息并不是对各个数据源简单的选择、抽取,而是首先进行一系列的加工、整理和转换等来消除源数据中的不一致;同时按照本行业的逻辑模型设计便于查询及分析的数据仓库。然后按照组织或企业的需求,针对不同的主题对数据进行某种程度的综合、概括和聚集,将源数据加载进数据仓库。经过这样的处理,数据就具有了集成性,可以用于决策分析。
1.3 反映历史变化( Time-variant )
“反映历史变化”是指数据仓库内的信息并不只是反映企业当前的状态,而是记录了从过去某一时点到当前各个阶段的信息。通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。而信息本身相对稳定,是指一旦某个数据进入数据仓库以后,一般很少进行修改,更多的是对信息进行查询操作。
1.4 相对稳定( Non-volatile )
“相对稳定”是指数据一旦进入数据仓库,一般情况下会被长期保留,所涉及的数据操作也主要是查询、分析,很少会被修改或删除,通常也只需要定期地加载和刷新。相对稳定性保证了数据仓库中的数据能够真实地反映历史变化。
2 数据仓库的产生
数据仓库是在数据库基础上发展而来的,通常包含三个部分内容:数据仓库、联机分析处理( 0-LAP-On-Line Transaction Process)、数据挖掘 ( Data Mining )。从数据库到数据仓库的源驱动力来自组织或企业的业务发展需求。
早期的数据库系统主要应用于日常事务的操作性处理,即 OLTP ,重点在于完成事务处理,在短时间内给予用户响应,服务于操作型业务需求,可以称之为“操作型数据库”。
随着业务应用不断拓展,以及市场竞争不断加剧,数据分析师和企业家们发现仅仅依靠联机事务处理系统 OLTP 已经不足以获得市场竞争的优势,希望能够从庞大的日常业务数据以及历史归档数据中,分析发掘出潜在的、规律性的、更有价值的信息。用于对企业的业务运作以及市场的行业态势进行分析判断,从而做出正确的决策。这就推动了数据仓库的产生,即服务于分析型业务需求的系统,可以称之为“分析型数据库”。
将操作型(事务处理)数据库系统与分析型(决策支持)数据库系统分离,主要有以下五个原因:
( 1 )业务应用的响应时间不同
在操作型(事务处理)计算环境中,其业务应用的处理特点是数据的存取操作频率高,而每次操作处理的时间短。因此,用户的业务请求往往在很短时间内即可完成,使得系统在多用户并发访问的情况下,也可以保持较高的实时响应速度。
在分析型(决策支持)计算环境中,其决策分析问题的解决,往往需要遍历数据库中的大部分数据,不仅需要消耗大量的系统资源,还可能导致长达数小时的运行。因此,用户的业务请求并不要求瞬间响应,只要在允许的时间里给予响应即可。
( 2 )数据需求的集成要求不同
在操作型数据库中,数据往往是分散而非集成的。主要原因有操作型(事务处理)应用分散的问题、“蜘蛛网”问题、数据不一致问题、外部数据和非结构化数据等问题。
在分析型数据库中,首先需要解决的就是“数据集成”的问题。只有全面、广泛、准确、相关的数据收集和有效集成,才有可能得到可信的分析结果。
( 3 )历史数据的使用价值不同
操作型(事务处理)系统一般只处理当前数据,在数据库中也只是短期存储数据,且不同数据的保存期限也不一样,即使有一些历史数据保存下来了,无特殊需求一般不再访问。
在分析型(决策支持)系统中,历史数据是相当重要的,因为联机分析处理与数据挖掘都需要以大量的、详细的、且有一定时间、空间跨度的历史数据为基础,才可能发现潜在发展规律和趋势走向。
( 4 )服务支持的用户对象不同
操作型(事务处理)系统直接面向业务操作人员,提供数据处理支持。
分析型(决策支持)系统面向使用本系统的业务者和中高层管理人员,提供决策分析支持。
( 5 )数据的综合问题
在事务处理系统中积累了大量的细节数据,一般而言, DSS 并不对这些细节数据进行分析。在分析前,往往需要对细节数据进行不同程度的综合。而事务处理系统不具备这种综合能力,根据数据库的规范化理论,这种综合还往往因为是一种数据冗余而加以限制。这也是二者相矛盾的地方。
综上所述,要提高分析和决策的有效性,必须把分析型数据从操作型(事务处理)环境中分离出来,按照分析型(决策支持)系统处理的需要进行重新组织,建立相应的分析处理环境。数据仓库正是为了构建这种新的分析处理环境而出现的一种数据存储、组织和处理技术。
3 数据仓库的概念模型与功能
数据仓库是一种体系结构而不是一种技术。数据仓库和数据库及其他技术之间的关系就像体系结构与技术本身之间的关系。数据仓库的概念结构包含:数据源、数据准备区、数据仓库数据库、数据集市/知识挖掘库以及各种管理工具和应用工具等,如图 l 所示。
从图 1 可以看出,数据仓库的创建、应用,可以利用各种数据仓库管理工具辅助完成。数据仓库建立之后,首先要从“数据源”中抽取相关的数据到“数据准备区”;在“数据准备区”中经过净化处理后,再加载到“数据仓库数据库”;最后根据用户的需求将数据导入“数据集市”或“知识挖掘库”中。用户在使用数据仓库时,主要利用两类应用工具:一类是联机分析处理( On-Line Analvtica1 Processing ),主要用于分析历史发展变化;另一类是数据挖掘( Date Mining ) ,主要用于预测未来趋势走向。
图 2 展示的是数据仓库的完整体系结构,一个数据仓库的实施是按照图 2 所示的过程进行的,也可以将图 2看做是数据仓库的工程实施方法论。
图 2 数据仓库的体系结构
数据仓库的实施分数据获取、数据组织、数据应用和数据展示四个功能区。
( 1 )数据获取区
数据获取区主要包含数据源、数据转换区、数据质量管理三个组成部分,实现数据仓库模型建设、数据质量管理、数据源的定义、数据抽取、转换清洗及加载等功能。
① 数据源
即数据仓库中的数据来源,既包含组织内部的业务数据、历史数据、办公数据等,也包括互联网卜的相关 Web 数据,以及部分其他数据结构的数据。
目前在国土资源行业中,就有大量的地政管理基础数据库和矿政管理基础数据库:如 1 : 50 万全国土地利用数据库、国家级土地利用数据库、土地利用遥感监测数据库、国家级建设用地数据库、全国矿业权管理数据库、全国油气矿产储量数据库等,还有一些历史数据、办公数据以及非结构化的数据等,均可作为国土数据仓库的数据源。
② 数据转换区( ETL )
由于数据仓库的数据来源十分复杂,这些数据在进入数据仓库之前必须在数据转换区内进行预处理,完成数据获取、数据转换、数据加载等工作,并实现数据质量跟踪监控以及元数据抽取与创建等工作。
③ 数据质量管理
数据仓库的数据质量不但影响数据抽取转换的开发周期和日常维护,并且还直接影响到最终结果。因此在数据仓库的项目中,将数据质量的评估、管理和清洗设计进去,并融合在数据仓库和 ETL 的建设过程中。
( 2 )数据组织区和数据应用区
数据组织区和数据应用区主要实现数据的存储与管理。数据仓库的数据组织管理方式决定了其有别于传统数据库的特性,也决定了对外的数据表现形式。主要技术涉及多维数据库、海量数据管理、数据索引与监视、数据质量管理、元数据管理等方面。
数据组织区包含了数据仓库建模,以及数据的集成与分解、概括与聚集、预算与推导、翻译与格式化、转换与映像等功能。元数据管理主要包含了元数据游览与导航,元数据创建,创建词汇表等功能。
数据仓库实体模型是直接反映数据仓库业务的逻辑视窗,根据组织的业务发展规划与策略而制定。实体模型的设计应由业务人员与模型专家共同完成,要统筹规划、总体设计、分步实施,既要考虑模型的完整性、灵活性,也要关注扩展能力和时效性,可以先从业务问题紧迫、数据源较完备的主题入手。实体模型设计一般采用第三范式、星型模型、雪花状模型等。
数据仓库的存取与使用主要为用户提供决策分析和知识挖掘等功能,包括数据仓库存取与检索、分析与报告两部分功能。其中,数据仓库的存取与检索为用户提供了访问数据仓库或数据集市的功能,可以将用户所检索的数据转换为多维数据并存入多维数据库,包含数据仓库的直接存取,数据集市存取,数据集市重整,转换为多维结构,创建局部存储等功能;数据仓库的分析与报告为用户使用数据仓库提供了一组工具,用于帮助用户对数据仓库或数据集市进行联机分析或数据挖掘,包括报表处理、分析与决策支持、业务建模与分析、数据挖掘等工具。
( 3 )数据展示区
数据展示区是数据仓库的人机会话接口,包含了多维分析、数理统计、报表查询、即席查询、关键绩效指标监控和数据挖掘等功能,并通过报表、图形和其它分析工具,方便用户简便、快捷地访问数据仓库系统中的各种数据,得到分析结果。
数据展示区常用的标准报表和即席查询报表是基于各类结构化数据的报表输出,而各类结构化数据的内容包含关系型数据库、多维数据库、 XML 、文本及其他数据结构等。
4 数据仓库的相关技术
数据仓库构建了数据集市,这是面向某一主题、某一业务过程或者某一组业务过程应用的“数据仓库”,是企业级数据仓库的一个子集。
联系源数据与数据仓库的是数据登台区,它是一个数据获取过程,主要由数据抽取( Extract )、转换(Transform )、清洗( Cleansing )、装载( Load )等一系列工作构成,用于从数据源抽取出所需的数据,经过数据清洗,按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
联机分析处理主要用于对历史发展规律进行分析,满足在多维环境下特定的查询和报表需求,提供决策支持。联机分析处理( On-Line Analytical Processing )是一种普遍查询过程,能够根据分析人员的要求,迅速、灵活地对大量数据进行复杂的查询处理,并以直观、容易理解的形式将查询结果提交给决策人员。
数据挖掘是一种决策支持过程,基于人工智能、机器学习、神经计算、统计分析等技术,能够自动化地分析数据仓库中的数据,进行归纳性推理和联想,寻找数据间的某种内在联系,从中发掘出潜在的、对信息预测和决策行为起着十分重要作用的模式,辅助决策支持。数据挖掘主要用于对未来发展趋势进行预测。元数据作为数据的数据,主要用于对数据仓库中的各种数据进行详细的描述和说明,主要分为静态元数据和动态元数据两大类:静态元数据主要与数据结构有关,包含名称、描述、格式、数据类型、关系、域、业务规则等类;动态元数据主要与数据的状态及使用方法有关,包括数据质量、统计信息、状态、处理等类。
Ad hoc query:即席查询,数据库应用最普遍的一种查询,利用数据仓库技术,可以让用户随时可以面对数据库,获取所希望的数据。