首页 理论教育分布式数据库技术:数据仓库系统基本结构

分布式数据库技术:数据仓库系统基本结构

【摘要】:ETL系统由一个控制系统依据到达顺序和存放在元数据库的规则及逻辑进行管理。图24.10三维方体图24.11最简单的数据仓库系统谈到数据仓库,往往会涉及一个词,即商务智能。图24.12Stage、ODS和DDS及数据流体系结构样例图24.12中的箭头表示的就是数据流,描述了数据流动过程。

我们可以用图24.9来描述一个数据仓库。

图24.9 数据仓库系统图

从图24.9的左边开始看,数据仓库的数据采自源系统(存放当前数据的OLTP生产性数据库、存放历史数据的存档数据库等)。数据分析器(profiler)对这些数据进行检查,以了解数据的特征,例如,每个表格有多少条记录、有多少条记录含有空值,等等。

预处理系统(ETL系统)负责数据抽取、转换和加载工作。ETL系统把数据集成、转换和加载到一个维度数据存储(dimensional data store,DDS)里。DDS是一个数据库,以不同于OLTP格式存储数据仓库的数据库。

ETL系统把数据加载到DDS的时候,会使用数据质量规则对数据质量进行检查。检查后的数据放入数据质量数据库(data quality(DQ)database),并通知源系统,让其对发现的问题进行纠正。坏数据可以自动校正,或者如果误差仍在有限程度内,则容忍坏数据。ETL系统由一个控制系统依据到达顺序和存放在元数据库的规则及逻辑进行管理。元数据库用于存放关于数据结构、数据含义和数据用途的信息,以及其他关于数据的信息。这里提到了Stage,这是数据仓库的一个内部存储层,用于将从源系统获取的数据进行转换、预处理和暂时存放起来。

审计系统(audit system)用于记录系统运行的日志,并存放到元数据库中。

用户使用丰富的前端工具,如电子制表软件(spreadsheets)、数据透视表(pivot tables)、报表工具和SQL查询工具等查询和分析DDS中的数据。有些应用会在一个多维数据库格式上操作。对此,DDS数据库中的数据会加载到一个多维数据库(multidimensional databases,MDBs)里,MDB往往称为方(cube)。一个多维数据库的格式是一个方体,数据存放在方体的单元(cell)里,如图24.10所示。

读者会觉得图24.10太繁复。没关系,最简单的数据仓库系统可以用图24.11表示。

图24.10 三维方体

图24.11 最简单的数据仓库系统

谈到数据仓库,往往会涉及一个词,即商务智能(business intelligence,BI)。企业中的商务智能应用包含以下几方面。

●商务性能管理,包括生产关键性能指标,如每天的销售情况、资源使用率和每个区域的运行成本等,使得企业相关人士可以采取战术级的行动,达到期待的运行性能。

●客户盈利分析(customer profitability analysis),即了解哪些客户获利较好,值得维持关系;哪些未获利,从而需要改变策略。

统计分析,如购买可能性或购物篮(即相关性)分析。

●预测分析,如销售预测、下一年度成本估算、公司未来方向等。

依据分析深度和复杂程度,可以将商务智能分为以下三类。

●报表,如性能指标、全球客户分布等。

●OLAP,如聚合(aggregation)、钻取(drill down)、切片(slice)和切块(dice)、交叉钻取(drill across)。

●数据挖掘,如数据特征化(data characterization)、数据区分(data discrimination)、关联分析(association analysis)、分类(classification)、聚类(clustering)、预测(prediction)、趋势分析(trend analysis)、偏差分析(deviation analysis)和相似性分析(similarity analysis)。

数据仓库有两个主要结构:数据流体系结构(data flow architecture)和系统结构。数据流体系结构关注的是如何在每个数据存储里安排数据,如何通过这些数据存储让数据从源系统流向用户。系统结构讨论的是服务器、网络、软件存储和客户端的物理构成。

从数据流体系结构看,大致有四类:单DDS、NDS+DDS、ODS+DDS和联邦式数据仓库等。前三者相同点都使用一维模型,后端存储数据;其差别在于中间层数据存储。联邦式数据仓库由多个数据仓库组合而成,依赖于数据检索层。

不同于数据体系结构(data architecture),数据流体系结构讨论的是如何在每个数据存储里安排数据,如何设计数据存储以反映业务流程。构建数据体系结构的过程称为数据建模。

数据流体系结构的一个重要成分是数据存储。这里的数据存储指的是包含数据仓库的一个或几个数据库或文件,按特定格式布局,与数据仓库处理过程相关,涉及的数据分为以下三类。

●面向用户的数据存储。该数据让终端用户可用,可以让终端用户和终端用户应用查询数据。

●内部数据存储。由数据仓库的成分内部使用,用于数据的集成、清洗、簿记和准备,对终端用户及其应用不开放。(www.chuimin.cn)

●混合数据存储。既用于内部,也用于终端用户及应用。

主存储可以是面向用户的,也可以是混合的,其中存放的是数据仓库的完整数据,包括数据的各种版本和历史数据。

基于数据格式,又可以将数据存储分为以下四类。

●Stage是一种内部数据存储,用于在将数据加载到数据仓库之前对来自源系统的数据转换与预处理。

●规范数据存储(normalized data store,NDS)是一种内部主数据存储,采用一种或多种规范化关系型数据库格式,以便将Stage里的、来自各种源头的数据集成起来。

●操作数据存储(operational data store,ODS)是一种混合数据存储,采用一种或多种规范关系型数据库格式,用于存放事务数据和最新的主数据,支持操作性应用。

●维度数据存储(dimensional data store,DDS)是一种面向用户的数据存储,采用一种或多种规范关系型数据库格式,数据按维度格式布局,用于支持分析查询目的。

图24.12是一个关于Stage、ODS和DDS及数据流体系结构的样例。

图24.12 Stage、ODS和DDS及数据流体系结构样例

图24.12中的箭头表示的就是数据流,描述了数据流动过程。

下面简单介绍四种数据流体系结构。

1.单DDS数据流体系结构

最简单的数据流体系结构仅使用Stage和DDS两种存储。单DDS数据流体系结构如图24.13所示。

2.NDS+DDS数据流体系结构

NDS+DDS数据流体系结构里使用Stage、NDS和DDS三种数据存储。NDS+DDS数据流体系结构如图24.14所示。这种体系结构类似于单DDS数据流体系结构,差异在于DDS前有一个规范数据存储。NDS采用第三范式或以上关系范式。这有两个好处:便于从不同源系统集成数据;能将数据加载到多个DDS。

图24.13 单DDS数据流体系结构

图24.14 NDS+DDS数据流体系结构

NDS+DDS数据流体系结构里,NDS是主数据存储,包含完整的数据集。

3.ODS+DDS数据流体系结构

ODS+DDS数据流体系结构与NDS+DDS数据流体系结构类似,只是将ODS替代了NDS,如图24.15所示。

4.联邦式数据仓库

联邦式数据仓库由多个数据仓库构成,在这些数据仓库上构建了一个数据查询层。在若干个现有数据仓库上有一个ETL层,负责对这些数据仓库的数据实施ETL和加载到新的维度数据仓库,如图24.16所示。

FDW ETL需要基于业务规则从源数据仓库里集成数据。ETL系统需要识别从源数据来的记录是否和其他从源数据仓库里来的数据重复。重复的记录需要归并。FDW ETL还需要将来自不同源数据仓库的数据转换成公共结构和公共格式。