我国服务型政府建设:xsb Oracle Blog | 数据仓库(DW)与数据集市

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 00:36:13
数据仓库(DW)与数据集市 =========================================================== 作者: xsb(http://xsb.itpub.net)
发表于:2006.04.10 14:31
分类: DW&BI
出处:http://xsb.itpub.net/post/419/67129
---------------------------------------------------------------

数据仓库(DW)与数据集市以及OLAP与数据挖掘DM之关系:


首先,让我们了解一下基本的数据仓库定义。建立数据仓库是一个创建、维护和查询的过程。
Ralph Kimball 将数据仓库定义为“满足查询和分析的事务处理数据的拷贝的特定结构”。创建数据仓库的过程包括数据仓库的逻辑模型和物理数据库。维护的过程包括ETL 过程,即将数据从OLTP 系统中抽取到数据仓库。查询的过程是从数据仓库中收集信息。简单来说,数据仓库是一个从数据中获取信息的结构。

数据仓库是BI 的基础,就好比厨师的食材。各个数据源的数据经ETL 的预处理后,就被送进了数据仓库中。数据仓库有如下4个重要特性:

①面向主题的:不同类型的公司,其主题集合是不相同的。

②集成的:数据仓库的数据来源很广,数据仓库最重要的目的就是为了集成这些不同数据源的数据。

③非易失的:和传统的操作型数据库系统相比,数据仓库通常是以批量方式载入和访问。而且,对于数据仓库中的记录,并不进行一般意义上的数据更新,删除。所有的历史数据都会被保留,通常我们只是不停的批量导入新的数据。

④随时间变化的:操作型数据库系统出于性能上的考虑,并不保存系统投入运行后所产生的所有数据,一般只保留最新的60~90 天内所产生的数据记录。而且,通常情况下,操作型数据库中一项业务活动只占用一条记录。当业务状况发生变化后,我们只需更新相应的记录。而为了按时间变化发掘业务活动的时序规律,数据仓库中,该业务活动可能同时存在多条记录,除了相应字段的内容不同外,其业务活动的时间记录也不相同。数据仓库中的数据是一系列在某时某刻生成的复杂的快照,由此可见,数据仓库的数据是高度冗余且必须的。

而且,由于数据仓库的使用对象不尽相同,数据仓库的设计需要考虑其数据单元的细节程度,即粒度。细节程度越高,粒度级就越低,反之亦然。例如:一个简单的交易处于低粒度级,而每个月所有交易的汇总则处于一个高粒度级。通常,数据分析人员使用的数据粒度较低,而高层管理人员所使用的数据粒度较高。粒度同时决定了数据仓库所占用的物理空间的大小,尽管一条交易记录可能只占用200 个字节,但是一个月所累积的10 万条交易记录就占用了20M个字节。如果按月对每月的所有交易记录进行综合,所得到的记录可能只占用500 个字节。

数据仓库通常的活动是批量载入和查询访问,并不进行一般意义的数据更新,而且其数据冗余程度较高。为了提高查询效率,我们可以采用一些非常规的方法来进行数据分区存储。而且,我们需要对数据仓库中的数据进行方便且有效的监控。

提供数据仓库技术服务的软件厂商大多是从操作型数据库系统发展起来,其推出的数据仓库都是基于其自身研发的大型数据库产品上,且捆绑了相应的ETL,元数据,OLAP,报表等工具,如IBM 的DM2,SAS,Sybase,Oracle,Informix,MSSQL Server 等。

在本节末要说明一下数据集市(Data Mark)。如果说数据仓库是建立在企业级的数据模型之上的话。那么数据集市就是企业级数据仓库的一个子集,他主要面向部门级业务,并且只面向某个特定的主题。数据集市可以在一定程度上缓解访问数据仓库的瓶颈。然而,由于各个数据集市之间彼此独立,从而形成新的“信息孤岛”,也造成了重复投资。所以,目前越来越多的数据仓库厂商开始提供帮助企业用户整合原有数据集市,构建集中数据仓库的技术服务。在实际项目中,到底是选择数据仓库,还是选择数据集市,应取决于该项目的主要商业驱动。如果企业正忍受糟糕的数据管理和不一致的数据,希望为今后打下良好的基础,则数据仓库的方案比较好。如果该企业迫切需要给用户提供信息,那么可以先构建一个数据集市。而一旦满足了迫切的信息需求后,就应该考虑包含独立数据仓库的数据体系结构的转换计划。

除了相应字段的内容不同外,其业务活动的时间记录也不相同。数据仓库中的数据是一系列在某时某刻生成的复杂的快照,由此可见,数据仓库的数据是高度冗余且必须的。

数据分析:OLAP 和数据挖掘

OLAP 与数据挖掘是一个有机的整体,在OLAP 中必定要针对不同的主题数据仓库采用相应的数据挖掘算法来进行数据分析。如果把数据仓库对BI 系统的作用比作厨师的食材,那么,OLAP 和数据挖掘则是厨具。

联机分析处理(OLAP)的概念最早是由关系数据库之父E.F.Codd 于1993 年提出的,其目的是为了让管理者灵活地对海量数据进行浏览分析。当时,Codd 认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的需要,SQL 对大数据库进行的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此Codd 提出了多维数据库和多维分析的概念,即OLAP。Codd 提出OLAP 的12 条准则来描述OLAP 系统:

准则1 OLAP 模型必须提供多维概念视图

准则2 透明性准则

准则3 存取能力推测

准则4 稳定的报表能力

准则5 客户/服务器体系结构

准则6 维的等同性准则

准则7 动态的稀疏矩阵处理准则

准则8 多用户支持能力准则

准则9 非受限的跨维操作

准则10 直观的数据操纵

准则11 灵活的报表生成

准则12 不受限的维与聚集层次

和传统的联机事务处理(OLTP)相比,两者的区别很大,具体情况如下表:

OLTP OLAP

用户 操作人员,低层管理人员 决策人员,高级管理人员

功能 日常操作处理 分析决策

DB 设计 面向应用 面向主题

数据

当前的, 最新的细节的,二维的分立的

历史的, 聚集的, 多维的集成的, 统一的

存取 读/写数十条记录 读上百万条记录

工作单位

简单的事务 复杂的查询

用户数 上千个 上百个

DB 大小 100MB ~ GB 100GB ~ TB

利用多维的概念,OLAP 提供了切片、切块、下钻、上卷和旋转等多维度分析与跨维度分

析功能。相对于普通的静态报表,OLAP 更能满足决策者和分析人员对数据仓库数据的分析。OLAP 系统架构主要分为基于关系数据库的ROLAP(Relational OLAP)、基于多维数据库的MOLAP(Multidimensional OLAP)、基于混合数据组织的HOLAP(Hybrid OLAP)三种。前两种方式比较常见。ROLAP 表示基于关系数据库的OLAP 实现。它以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP 将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。MOLAP 表示基于多维数据组织的OLAP 实现。它以多维数据组织方式为核心,使用多维数组存储数据。MOLAP 查询方式采用索引搜索与直接寻址相结合的方式,比ROLAP 的表索引搜索和表连接方式速度要快得多。

数据挖掘(Data Mining,DM)是指从大量不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、有用的信息和知识的过程。其表现形式为概念(Concepts)、规则(Rules)、模式(Patterns)等形式。

从商业层来看,我个人认为,在商业智能系统中进行数据挖掘的目标大致可分为两类:

①从累积的业务数据中发掘出管理层事先不知道的、但又是潜在有用的信息,为其创造新的商业机会。商业销售已有大量这方面的运用实例,BI 业内流传已久的“啤酒和尿布”,以及我在本文开头所举的例子就属此类。

②从累积的业务数据中寻求最优的资源规划方案,降低成本,从而提高利润。让我们先从大家可能都想过一个例子谈起——邮递员送信,假设我是某个城市的邮递员,一次要送出多封信件,收信人的住址分布在城市的各个街道上。那么该如何设计线路,来尽可能的减少行程呢?

商业活动中出现大量类似的例子,当可供分析的数据不多时,我们可以用纸笔来手工计算,找到最优解。但是,如果原始数据量极为庞大的话,我们将不得不求助于计算机了。

目前业内已有很多成熟的数据挖掘方法论,为实际应用提供了理想的指导模型。CRISP-DM(Cross-Industry Standard Process for Data Mining)就是公认的、较有影响的方法论之一。CRISP-DM 强调,DM 不单是数据的组织或者呈现,也不仅是数据分析和统计建模,而是一个从理解业务需求、寻求解决方案到接受实践检验的完整过程。CRISP-DM 将整个挖掘过程分为以下六个阶段:

l 商业理解(Business Understanding),

l 数据理解(Data Understanding),

l 数据准备(Data Preparation),

l 建模(Modeling),

l 评估(Evaluation)

l 发布(Deployment)。

其框架图如下:

商业理解就是对企业运作、业务流程和行业背景的了解;数据理解是对现有企业应用系统的了解;数据准备就是从企业大量数据中取出一个与要探索问题相关的样板数据子集。建模是根据对业务问题的理解,在数据准备的基础上,选择一种更为实用的挖掘模型,形成挖掘的结论。评估就是在实际中检验挖掘的结论,如果达到了预期的效果,就可将结论发布。

在实际项目中,一般的事务处理系统甚至一些只提供报表分析功能的简单商业智能系统,建成以后只需要少量的工程维护工作,而采用数据挖掘技术的商业智能系统往往有很大不同。

因为数据挖掘是一个商业理解、数据理解、建模、评估等一系列多次反复、多次调整、不断修

订完善的过程,并且模型的应用也不是一成不变的,在适当的时候需要更新和重建。所以一般的商业智能项目并不追求一次性工程建设,更倡导的是一种与企业业务紧密联系能够提升企业竞争力的咨询服务,而且熟悉业务和分析方法的分析人员在商业智能系统的应用中起着至关重要的作用。

从技术层来看,数据挖掘技术可分为描述型数据挖掘和预测型数据挖掘两种。描述型数据挖掘包括数据总结、聚类及关联分析等。预测型数据挖掘包括分类、回归及时间序列分析等。

1、数据总结:继承于数据分析中的统计分析。数据总结目的是对数据进行浓缩,给出它的紧凑描述。传统统计方法如求和值、平均值、方差值等都是有效方法。另外还可以用直方、饼状图等图形方式表示这些值。广义上讲,多维分析也可以归入这一类。

2、聚类:是把整个数据库分成不同的群组。它的目的是使群与群之间差别很明显,而同一个群之间的数据尽量相似。这种方法通常用于客户细分。在开始细分之前不知道要把用户分成几类,因此通过聚类分析可以找出客户特性相似的群体,如客户消费特性相似或年龄特性相似等。在此基础上可以制定一些针对不同客户群体的营销方案。

3、关联分析:是寻找数据库中值的相关性。两种常用的技术是关联规则和序列模式。关联规则是寻找在同一个事件中出现的不同项的相关性;序列模式与此类似,寻找的是事件之间时间上的相关性,如对股票涨跌的分析等。

4、分类:目的是构造一个分类函数或分类模型(也常常称作分类器),该模型能把数据库中的数据项映射到给定类别中的某一个。要构造分类器,需要有一个训练样本数据集作为输入。训练集由一组数据库记录或元组构成,每个元组是一个由有关字段(又称属性或特征)值组成的特征向量,此外,训练样本还有一个类别标记。一个具体样本的形式可表示为:( v1, v2, ...,vn;c ),其中vi 表示字段值,c 表示类别。

5、回归:是通过具有已知值的变量来预测其它变量的值。一般情况下,回归采用的是线性回归、非线性回归这样的标准统计技术。一般同一个模型既可用于回归也可用于分类。常见的算法有逻辑回归、决策树、神经网络等。

6、时间序列:时间序列是用变量过去的值来预测未来的值。

早期由于数据挖掘的理论和相关技术尚不成熟,软件厂商并未为其数据库产品开发相应的数据挖掘工具,但当时已有少部分大型企业有这方面的技术需求。所以,市场上出现了一些独立的数据挖掘工具,如SAS 公司的Enterprise Miner、IBM 公司的Intelligent Miner 和SPSS 公司的Clementine。现在,随着相关技术的日益成熟,越来越多的企业提出这样的技术需求,软件厂商也意识到其中的潜力,估计在未来的3~5 年内,将会出现集成在数据仓库中完备的数据挖掘工具。

最后要提醒大家的是,尽管商业智能应用的前景光明,但是BI 业内还没有形成一个统一的标准。而且,由于BI 系统的实施是一个长期的、迭代的过程,企业在这个过程中肯定会出现短期利润倒退的情况,这也在很大程度上打击了企业的信心和实践热情。所以,目前绝大多数企业都对此持观望态度,或只在有限的部门内局部实施BI。我个人认为,企业这样做也是相当明智的。但尽管是局部实施,机会还是有的。作为技术人员,可以争取在相关技术的研发上取得突破;作为软件厂商的话,则应从现有老客户和现有产品的技术升级中寻求机会。

[参考资料]

参考书目

1、W.H. Inmon, 《Building the Data Warehouse:Third Edition》(数据仓库)

2、David Marco, 《Building and managing the Meta Data Repository A Full lifecycle Guide》(元数据仓储的构建于管理)

3、David Hand,Heikki Mannila,Padhraic Smyth, 《Rrinciples of Data Mining》(数据挖掘原理)

4、Olivia Parr Rud, 《Data Mining Cookbook:Modeling Data for marketing,Risk,and Custormer Relationship Management》(数据挖掘实践)

xsb 发表于:2006.04.10 14:31 ::分类: ( DW&BI ) ::阅读:(2382次) :: 评论 (0) :: 引用 (0)