
| 出版日期:1999-08-09 总期号:847 本年期号:57 |
|
数据仓库和知识发现技术
杨雪南 数据的快速增长和数据的艰难分析之间形成强烈的反差。数据仓库和知识发现技术应运而生。 推动数据仓库和知识发现技术发展的另一重要因素是企业应用的要求。 据idc在1996年一次对90年代前期进行的62个数据仓库项目的调查结果表明,进行数据仓库项目开发的公司在平均2.73年的时间内获得了平均为321%的投资回报率。idc预测,整个数据仓库市场将以平均每年20.5%的速度增长,到2002年将超过290亿美元。 什么是数据仓库 90年代初期,美国著名信息工程学家w. h. inmon博士在《建立数据仓库》一书中提出了“数据仓库”的概念:“数据仓库是一个面向主题的、集成的、稳定的、包含历史数据的数据集合,它用于支持经营管理中的决策制定过程。” 谈到数据仓库,人们常会遇到数据集市(data mart)和元数据(metadata)这两个概念。数据集市是数据仓库的一个子集,它是面向某个更细的业务主题。数据集市的数据常常从数据仓库下载。数据集市通常用在部门级的决策支持中或对某个特定业务进行的分析中。 元数据是关于数据的数据。元数据是数据仓库的重要组成部分,通常由以下几部分内容组成:关于数据仓库潜在数据来源的信息、关于数据模型的信息、业务数据与仓库数据结构间的映射、仓库中信息的使用情况。 数据仓库的体系结构、技术 数据仓库从多个信息源获取原始数据,经过加工、整理后,存放在数据仓库的内部数据库中,通过数据仓库访问工具,给用户提供一个集成的、能对数据进行综合分析、提供决策信息的环境。一个数据仓库系统通常包含以下几个组成部分: (1) 设计模块 用来设计和定义数据仓库数据库。在设计时还需要考虑概括数据库和与时间相关的数据处理问题。 数据仓库的结构与传统的oltp系统有很大的不同,这主要是两者的技术目标完全不同。oltp系统主要处理事务级的请求,主要进行的是插入、修改等记录级的操作,特点是事务量大,每个事务所涉及的数据量小。而数据仓库主要处理大规模复杂查询,涉及的数据量大,请求的数量相对oltp要小。因此,数据仓库与oltp数据库的数据模型是不同的。在数据仓库中通常采用星型模型和雪花模型。 (2) 数据获取模块 数据获取模块的功能是从确定的源数据中抽取数据,对数据进行检验和整理,并根据数据仓库的设计要求和规则,对数据进行重新组织和加工,装载到数据仓库的目标数据库中,并周期性地刷新数据仓库以反映数据源的变化,并进行时间相关性处理。 在构造数据仓库过程中,这是非常重要的一步,关系到数据仓库的质量问题,一般都选用相应的工具进行。这些工具能根据用户的输入,完成数据抽取功能,并同时建立有关元数据。元数据存放在元数据库中,描述了源数据的格式、目标数据的格式以及如何把源数据转换成目标数据。这些工具一般都提供某种类似程序设计语言的描述工具,让数据仓库管理员对数据抽取进行定义。 (3) 元数据管理模块 该模块完成对元数据的查询、增加、修改等功能,它对技术人员和用户访问、利用数据仓库起帮助的作用。有关元数据的标准化工作正在进行中。元数据来源于多个方面,有些由数据仓库的模块生成,如数据抽取模块,有些直接输入,有些来源于外部元数据。 (4) 数据仓库监控和管理模块 对数据仓库的运行提供监控和管理手段,包括系统资源使用情况、系统性能、用户操作的合法性、安全管理、存储管理等多方面的内容。 (5) 数据仓库及数据集市的目标数据库 用于存储数据仓库自己的数据,即经过检验、整理、加工和重新组织的数据。既可以是传统的关系型数据库管理系统,也可以是专用的多维数据库管理系统(mdbms)。这里要考虑数据仓库数据的规模、查询的复杂性、用户数目、维的数目和性能等因素。一般认为,传统关系数据库并不适合联机分析处理(olap)应用,但是,通过使用一些新技术,如动态分区(dynamic partitioning)、经过改进的基于成本的查询优化算法、位图索引等,关系数据库管理系统在数据仓库应用环境下的性能得到了大幅度的提高。传统关系数据库管理系统的优点是成本和复杂性都较低。 (6) olap服务器 olap (on line analytical processing联机分析处理)的概念首先是由关系数据库之父e. f. codd提出来的。根据olap委员会的定义,olap是使分析人员、管理人员或执行人员能够从多种角度对从原始数据中转化出来的、能够真正为用户所理解并真实反映企业特性的信息进行快速、一致、交互地多方位观察,从而获得对数据的更深入了解的一类软件技术。olap是利用数据仓库技术的真正价值所在。olap的目标是满足决策支持或多维环境特定的查询和报表需求,它的技术核心是“维”这个概念,olap服务器特别用来支持和操作多维数据结构,为前端工具提供多维数据视图及服务。 (7) 前端数据访问和分析模块 该模块提供分析人员和决策人员多方位、多视角访问数据仓库中数据的功能,并将结果以多种方式展示。数据仓库的目标和作用最终都要通过该模块提供给用户。所提供的功能决不仅仅满足一般的数据访问,更重要的在于数据的分析、展现。这些模块可以分为以下四类:查询、报表生成和数据分析工具;能访问关系数据库的多维分析工具;能访问多维数据库的多维分析工具;运用了4gl或可视程序设计语言的dss应用程序开发工具。 图1给出了一个数据仓库的一般体系结构。当然,一个具体的数据仓库系统的结构与该图会有一些差异。
图1 数据仓库体系结构 知识发现 一般认为,数据库中的知识发现(knowledge discovery in databases,简称kdd)是指从数据库中发现潜在的、有意义的、未知的关系、模式和趋势,并以易被理解的方式表示出来。数据挖掘(data mining)是kdd过程中的一个步骤。 kdd已经成为一个非常重要和非常活跃的研究领域。它能为决策者提供重要的、意想不到的、极有价值的信息,从而产生不可估量的效益。 图2给出了一个kdd系统的模型。
图2 kdd模型 需要指出的是,在知识发现前给出知识发现任务(预先假设或提出的问题)的好处是,使发现过程更具针对性,但也限制了知识发现的范围,有可能丢失潜在有用的、常常是意想不到的模式或知识。如果不给出知识发现任务,由系统自己决定要问的问题,进行挖掘,然后不断问问题,做进一步探索,虽然不再限制其“思路”,但增加了知识发现的“盲目”性和难以控制性。 因此,一般知识发现系统中有分析人员的适当参与。 (1) 数据汇聚 数据汇聚,是指从源数据库中抽取相关的数据作为当前知识发现的“数据基”。需要对这些数据进行适当的加工、整理,去除“噪声”数据,保证数据基的质量。有时也可采用抽样方法提取数据,提高效率、得到一定置信度的知识。 (2) 元数据和域知识 有许多知识和规则是已知的,充分利用这些知识和元数据来指导、约束知识发现算法,能使知识发现系统变得更“聪明”。 (3) 知识发现算法、工具集 这是知识发现系统的核心。许多机器学习和数理统计中的方法都被引入到kdd系统中了。大致可分为以下四大类算法:关联分析、分类、聚类和顺序模式。 (4) 知识验证、评价和表示 从数据库中发现的知识并不都是有意义的。怎么知道哪些是有意义的、有用的,哪些是无意义的、无用的呢?对此必须进行评价和筛选。又由于知识发现本质上是归纳推理,因此,对于发现的知识必须进行验证。知识发现系统发现出来的知识最终需要为人所理解,因此,必须采用相应的表示方法,包括可视化、类自然语言、图表等。对于有意义的知识,有时还需要把它放到域知识库中,以便随着时间的推移积累更多的知识。 (5) 控制、管理器 发现过程是一个不断尝试、回溯、再尝试的反复过程,是一个去粗取精、去伪存真的过程。如何让系统有条不紊地进行,包括抽取适当的数据、灵活选用知识发现算法等就显得非常关键,必须有一个良好的控制、管理机制。 数据仓库与知识发现工具现状 数据仓库和知识发现是当前非常活跃的研究领域,目前很多大学、研究机构和公司都在进行kdd的研究和产品开发,推出了大量的原型系统和产品,得到了广泛应用。在当前数据库走过其辉煌,市场增长趋缓之时,数据仓库和知识发现带来了无限的商机,提供了广阔的想象空间。 目前市场上比较流行的知识发现或数据挖掘工具有ibm的intelligent miner和sas的em等。intelligent miner中采用了如典型数据集自动生成(聚类)、关联发现、序列规律发现、概念性分类等技术,将结果可视化展现,自动实现数据选择、数据转换、数据发掘和结果呈现这一完整的操作系列。若有必要,对结果数据集还可以重复这一过程,直至得到满意结果为止。它可以发现以前未知的、有效的、可行的业务知识,如客户购买行为,隐藏的关系和新的趋势等。 sas/em是一个具有图形化界面、菜单驱动、对用户非常友好且功能强大的数据挖掘集成软件。其中集成了数据获取、取样、筛选、变量转换工具以及数据挖掘的过程等。 可利用sas/em中的模块将这些数据挖掘的工具单元组成一个处理流程图,并依此来组织数据挖掘过程。sas/em可使数理统计经验不多的用户也能按照sas数据挖掘方法论semma的原则成功地进行数据挖掘。在数据挖掘过程中可以使用sas的诸多工具,如多种形式的回归工具、为建立决策树的数据剖分工具、决策树浏览工具(决策树基本内容和统计值的汇总表、决策树导航浏览器、决策树图形显示和决策树评价图表)、人工神经元网络。sas/em还提供了评价工具,这是一个通用的数据挖掘评价的架构,可以比较不同的模型效果;预报各种不同类型分析工具的结果。在进行了各种比较和预报的评价之后,将给出一系列标准的图表,进行定量评价。 我们可以把数据仓库工具供应商分为两类:构件供应商和解决方案供应商。从数据仓库体系结构可以看到,一个完整的数据仓库主要包括数据抽取、数据库、olap服务器、前台访问分析工具等模块,并且由于具体应用的行业不同,模块本身还有不同的要求,因此,某一供应商很难提供全系统的产品。因而有些厂家便重点专注于某些模块,如cognos、red brick、business objects等。另外一些供应商,特别是主要数据库供应商,如ibm、oracle、informix、sybase等,在基于其数据库核心的基础上,往往与其它构件供应商之间建立联盟和合作关系,有的则直接进行收购,推出完整的数据仓库解决方案。 这些解决方案可以分为两类:基于多维数据库的olap工具(molap)和基于关系数据库的olap工具(rolap)。可能还有混合olap工具(holap)。 《dm review》杂志评选出了最佳的100个数据仓库厂家。从中我们可以发现比较熟悉的有ibm、sas、oracle、platinum、ncr、microsoft、sybase、informix等。ibm倡导商业智能(bi),其基础就是数据仓库,核心产品包括visual warehouse、db2 olap server和db2 udb数据库,并与cognos、brio和business objects等公司建立了合作伙伴关系,可以选用这些公司的前台访问及分析工具,如powerplay等;sas推出了sas/wa数据仓库系列产品和sas/em企业级数据挖掘系列产品;微软的sql server 7.0已经绑定了olap服务器,将数据仓库功能集成到数据库中,并建立微软数据仓库联盟;oracle 公司推出 express系列olap 产品用来做决策支持;platinum公司也因其领先的系统管理和数据仓库工具被ca收购;sybase 公司把数据仓库作为其技术方向之一,其核心产品是sybase iq;而informix收购了数据仓库鼻祖 red brick公司,并推出其决策支持前沿套件作为数据仓库策略。 用户在构造自己的数据仓库时,需要根据自身的需要,确定要解决的关键问题,选择合适的工具。除了工具自身的技术因素外,还需要考虑工具的功能、适用性、性能、可伸缩性、可扩展性和可视化,要考虑到数据仓库未来的数据规模以及未来的发展趋势等一系列问题。需要注意的是,数据仓库决不是购买了这些工具就大功告成,关键还在于工程的组织和实施。 |
|||||||||||||||||