前 言
数据挖掘涉及数据库技术、人工智能、统计学、机器学习、知识发现等多个学科的领域。随着信息技术的高速发展、数据量的飞速增长,数据挖掘已经在各行各业有了较为广泛的应用。
Microsoft SQL Server 2012是集成了数据挖掘技术的第5版的SQL Server。SQL Server数据挖掘是业界部署最广泛的数据挖掘服务器,由于其可伸缩性大,容易获得,使用也较为简便,政府机构、企事业单位、学术人员和科学家也开始采用或转而使用SQL Server进行数据挖掘。IBM SPSS Statistics是全世界最早的统计分析软件,其主要功能包括统计学分析运算、数据挖掘、预测分析等,由于其具有数据分析深入、使用方便、功能齐全等诸多优点,被广泛应用于自然科学、技术科学、社会科学的各个领域。
Microsoft SQL Server Analysis Services(SSAS)是本书的核心内容,Excel的数据分析与挖掘,也是基于SSAS的服务引擎在进行。使用本书时,可以先学习数据挖掘基本理论;接下来学习Excel 2010数据分析与挖掘、SQL Server 2012数据挖掘、SPSS Statistics数据分析与挖掘;然后再通过完成教程设计的实验内容,真正地理解数据挖掘理论,掌握数据挖掘的实践技能。
本书结合作者多年从事数据挖掘教学、开发数据挖掘项目的经验,从实际出发,以实用的例子,系统地介绍了数据挖掘。全书分为三个部分,共10章。
第1部分由第1~3章组成,包括商业智能的概念和发展、数据挖掘和数据仓库的基本概念以及它们之间的关系;数据仓库的基本概念和设计步骤,并介绍了联机分析技术的分类和特点,以及回归分析、关联规则、聚类分析、决策树分析等数据挖掘常用分析方法的概念和算法。
第2部分由第4~9章组成,包括Excel 2010数据分析和预测的功能、Excel 2010的数据挖掘功能;SQL Server 2012的Analysis Services功能、设置数据源、设置数据源视图、设置挖掘结构、处理挖掘模型、查看挖掘结果等;Microsoft SQL Server Analysis Services中提供的最常用的6个数据挖掘算法原理与参数;SPSS Statistics的界面和基础操作;SPSS Statistics在数据挖掘中常用的基础统计分析方法和高级统计分析方法。
第3部分由第10章组成,包括SQL Server 2012的数据挖掘实验、SPSS Statistics的数据挖掘实验。
在内容的选择、深度的把握上,本书充分考虑到初学者的特点,在内容安排上力求循序渐进,不仅可以作为大专院校教学用书,也可以作为数据挖掘的培训教材和数据挖掘爱好者的自学用书。
本书由吴思远任主编,邹洋、黄梅根、贾玲任副主编。具体编写分工如下:邹洋编写第1~3章,吴思远编写第4~6章,黄梅根编写第7章,贾玲编写第8~9章,吴思远和贾玲共同编写第10章。吴思远负责全书架构的组织设计,负责统稿。本书的编写得到重庆邮电大学教务处、重庆邮电大学计算机科学与技术学院以及重庆市教育评估院和中冶赛迪重庆信息技术有限公司的大力支持,在此感谢以上单位对本书所做出的贡献。
本书为教师提供了配套的教学资源,可从清华大学出版社网站http://www.tup.com.cn下载。
由于作者水平有限,书中难免有疏漏和不足之处,希望广大读者给予谅解和指正。
编 者
第2章 数据仓库与联机分析
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH,是为企业所有级别的决策制定过程提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建,为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。而联机分析处理(OLAP)系统是数据仓库系统最主要的应用。
本章针对数据仓库与联机分析的初学者,主要介绍数据仓库的基本概念和设计步骤,并介绍了联机分析技术的分类和特点,帮助建立对数据仓库和联机分析的基本认识。
2.1 数 据 仓 库
2.1.1 数据仓库的基本概念
1. 数据仓库的由来和定义
数据仓库,这一概念是由数据仓库之父比尔·恩门(Bill Inmon)于1990年提出的。数据仓库的主要功能是将资讯系统的联机事务处理(OLTP)经过长时间累积的大量资料,通过数据仓库理论所特有的资料存储架构起来,做出系统的分析整理。利用的分析方法包括联机分析处理(OLAP)、数据挖掘(Data Mining)等,进而将分析结果用于决策支持系统(DSS)、主管资讯系统(EIS)等的创建,帮助决策者快速有效地从大量信息源中分析出对某种决策有参考价值的信息,使得决策拟定者能快速地对外在环境的变动做出应对,帮助建构商业智能(BI)。
数据仓库之父比尔·恩门在1991年出版的Building the Data Warehouse(《建立数据仓库》,见图2.1)一书中所提出的定义被广泛接受:数据仓库(Data Warehouse,DW)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。
从信息技术上的概念来说,数据仓库是以关系数据库、并行处理技术与分布式处理技术以及联机分析处理等技术为基础,为了解决拥有大量数据却缺乏有用信息的现状而提出的数据处理技术,是一种对不同系统数据实现集成和共享的综合性的解决方案。
对于传统数据库与数据仓库的关系,可以从两个方面来理解:首先,数据仓库用于支持决策,面向分析型数据处理,它不同于企业现有的操作型数据库;其次,数据仓库是对多个异构的数据源的有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。由普通数据库与数据仓库的对比关系来看,通常把普通数据库技术称为传统意义上的数据库技术,其数据处理模式可被划分为操作型处理和分析型处理(或信息型处理)。普通数据库技术能够完成企业的日常事务处理工作,但很难满足实现决策者制定规划的要求,也无法满足数据多样化处理的要求。随着用户需求的日益扩大,分析型处理和操作型处理的分离逐渐成为必然。
图2.1 《建立数据仓库》
数据仓库的出现给企业机构等带来了巨大的变化。数据仓库的建立给企业带来了一些新的工作流程,随之其他相关流程也会因此而改变。随着计算机技术、网络技术的进步和信息化的不断发展,信息已成为人类社会不可缺少的重要资源。社会的信息化大大加速了信息数据量的增长。面对数据量的不断增长和应用要求的不断扩张,数据库技术的应用和发展也有了更高的价值和作用,促使研究者们尝试开发能完成事物处理、批处理以及分析处理的各种类型的信息处理任务模式。然而,传统的数据库技术往往主要针对操作型数据处理来设计,在数据分析层面上的功能相当有限。因此,对于决策分析,传统数据库在业务操作层面上进行分析判断还存在着很大的局限性。于是,研究者们开始对操作型处理数据库中的数据进行技术处理,形成一个综合的、面向分析的环境,使得数据存储更好地支持决策分析,这就是通常意义下数据仓库技术的定义。
当前数据仓库和联机分析处理的主要研究领域有以下几方面。
(1) 数据仓库的建模与设计。
(2) 数据仓库的体系结构。
(3) 数据清洁和装载。
(4) 数据刷新和净化。
(5) 对关系操作符的扩充。
(6) 操作符的有效开发。
(7) 专门的索引技术。
(8) 查询优化。
2. 数据仓库的特点
数据仓库并不是所谓的\"大型数据库\"。数据仓库方案建设的目的,是为前端查询和分析做基础,由于有较大的冗余,所以需要的存储也较大。为了更好地为应用服务,已知数据仓库案例往往有如下几方面的特点。
1) 效率高
数据仓库的分析数据一般分为日、周、月、季、年等,可以看出,以日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,所以好的数据仓库要求要有高效率的数据分析成果。
2) 数据质量高
数据仓库提供各种信息,用户需要的是\"有效\"的数据,但由于数据仓库流程通常分为多个步骤,包括数据清洗、装载、查询、展现等,架构复杂,层次众多,如果数据源有脏数据或者代码不严谨,就可能导致数据失真,如果客户看到错误的信息,就可能分析得出错误的决策,造成损失。因此,好的数据仓库需要通过技术手段保证良好的数据质量。
3) 扩展性好
有的大型数据仓库系统的架构设计之所以很复杂,是因为考虑到企业要求数据仓库系统在未来3~5年内有良好的扩展性,能够稳定运行,而无须花费太多的精力去重建。实现的途径主要体现在数据建模的合理性,可在数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于因为数据量的增大影响数据仓库正常运行。数据仓库技术可以将企业多年积累的海量数据唤醒,不仅能为企业管理好这些数据,还能挖掘数据潜在的价值,从而成为现代企业运营维护系统的亮点之一。
4) 面向主题
传统操作型数据库的数据组织形式是面向事务处理任务,各个业务系统之间各自分离;而数据仓库中的数据是按照一定的主题域进行组织的。主题是与传统数据库的面向应用相对应的,是一个抽象的概念,是对于在较高层次上将企业信息系统中的数据进行综合、归类并分析利用的抽象。每一个主题对应一个宏观的分析领域。数据仓库排除对于决策无用的数据,提供特定主题的简明视图。
3. 数据仓库的关键技术
在数据流程上,根据搜集数据的过程,可将数据仓库的关键技术分为数据提取、数据集成和存储管理、数据表现、数据挖掘四个方面。
1) 数据提取
数据提取过程是数据进入仓库的入口。为了OLAP和OLTP系统各自的执行效率,数据仓库绝大多数都需要一个独立于联机事务处理系统的数据环境。抽取过程涉及的数据源一般包括联机事务处理系统的数据、外部数据源、脱机的数据存储介质等,数据提取在技术上主要涉及互连、复制、增量、转换、调度和监控等几个方面。数据仓库的数据不需要实时响应,因此数据提取可以定时进行,但多个提取操作执行的时间、互相的顺序、成败对于数据仓库中信息的有效性则至关重要。数据提取过程涉及数据格式的转换,理想情况是用户选定源数据和目标数据的对应关系、格式及类型,会自动生成数据抽取的代码。但是,目前市场上提供的大多数提取工具支持的数据类型有限,难以支持动态提取功能,这种情况使得提取功能往往不能满足要求。因此,实际数据仓库实施过程中往往不一定使用数据提取工具,而是面向具体的主题,编制特定的数据提取算法。算法的正确性和实效性是整个数据仓库管理、调度和维护的关键。经过数据提取后的数据记录应为格式统一、业务信息完整的数据记录。
2) 数据集成和存储管理
数据仓库遇到的第一个问题是对海量数据的存储和管理。这里涉及的数据量比传统的事务处理大得多,且随着时间推移而积累。从现有的技术和产品来看,只有关系数据仓库系统可以担当此任。关系数据仓库经过30多年的发展,在数据存储和管理方面已经非常成熟,管理大于16级的数据已经是十分平常的事情。目前,不少关系数据仓库已经支持数据分割技术,能够将一个大的数据仓库分散在多个物理设备中,进一步增强了管理大数据量的扩展能力。
数据仓库解决的第二个问题是并行处理。在传统的联机事务处理应用中,用户访问系统的特点是频繁而短小;而在数据仓库应用中,用户访问系统的特点是稀疏而庞大,每一个查询或统计都非常复杂,但访问频率并不是很高。此时,系统需要有能力将所有的资源调动起来为一个复杂的查询请求服务,将该请求并行处理。因此,并行处理技术在数据仓库中比以往更重要。
数据仓库的第三个问题是查询的优化。在技术上,针对决策支持的优化涉及数据仓库技术的索引机制、查询优化器、连接策略、数据排序和采样等部分。由于数据仓库中各类数据表的数据量分布很不均匀,普通查询优化器所得出的最佳查询路径可能不是最优的,因此,面向决策支持的关系数据仓库都在数据查询优化器上做了改进,根据索引的特性增加了多重索引的能力。扩充的关系数据仓库还引入了位图索引机制,以二进制表示字段的状态,将查询过程变为筛选过程,通过单台计算机的基本操作便可以筛选多个记录。另外,数据仓库在应用中会遇到大量的表间连接操作,扩充的关系数据仓库对连接操作采用了连接索引技术。数据仓库的查询常常只需要检索数据仓库中的部分记录,而不必检索整个数据仓库,决策支持的数据仓库还提供了数据采样的功能,以确保在大容量数据环境下有足够短的系统响应时间,在精确度允许的范围内,这一技术可大大地提高系统查询效率。
数据仓库的第四个问题是支持多维分析的查询模式。用户在使用数据仓库时的访问方法与传统关系数据库有很大的不同,对数据仓库的访问往往不是简单的表和记录的查询,而是基于用户业务的分析模式,即联机分析。它的特点是将数据想象成多维的立方体,用户的查询相当于在其中的部分维上添加条件,对立方体进行切片、分割,得到的结果则是数值的矩阵或向量,并将其制成图表或输入数理统计的算法。数据仓库的数据可看成实物化的视图,而基表都在信息源,集成器所要完成的集成工作就是把数据变化反映在数据仓库所维护的视图中。绝大多数数据仓库视图的维护技术都比常规的数据库视图维护技术复杂。例如,即使仓库和信息源数据都是关系型的,数据仓库中的视图也不可能用标准的关系数据库视图定义语言(如SQL)在信息源上定义而得到。对给定视图,当不需要查询基表即可维护该视图时,该视图是自我维护的。数据仓库中的大多数视图一般都不是自我维护的,但可在仓库中存储部分附加数据而达到自我维护。例如,一个极端情况就是把信息源中的所有数据复制到数据仓库中,如果需要,可用这些数据重新计算视图,对于这一问题的研究是要找到用最少的附加数据来实现给定视图的可自我维护化的方法。
3) 数据表现
数据表现主要在多维分析、数理统计和数据挖掘方面。多维分析是数据仓库的主要表现形式,由于多维OLAP(MOLAP)系统是专用的,因此,关于多维分析领域的工具和产品大多是关系OLAP(Relational OLAP,ROLAP)工具。在实际工作中,客户需要通过对数据的统计来验证他们对某些事物的假设,以进行决策,而数据挖掘强调的不仅仅是验证人们对数据特性的假设,而是要更主动地寻找并发现蕴藏在数据之中的规律。在决策支持系统中,怎样建立数据模型、怎样充分利用系统中存储的数据资源挖掘出所需的数据,是系统成功建设的难点。
4) 数据挖掘
数据挖掘是决策支持系统中分析技术的更高层次,数据挖掘技术采用人工智能的决策分析方法,按照用户既定的业务目标,对数据仓库中浩如烟海的数据进行探索,揭示隐藏其中的规律,并进一步将其模型化。
4. 数据仓库的用途
现代企业的运营很大程度上依赖于信息系统的支持,以客户为中心的业务模式需要强大的数据仓库系统提供信息支持,在业务处理流程中,数据仓库的作用体现在决策支持、客户分段与评价以及市场自动化等方面。
1) 决策支持
数据仓库系统提供各种业务数据,用户利用各种访问工具从数据仓库获取决策信息,了解业务的运营情况。关键性能指标(Key Performance Indicator,KPI)用来量化企业的运营状况,它可以反映企业在盈利、效率、发展等各方面的表现,决策支持系统为用户提供 KPI 数据。
构造比较复杂的查询以便发现潜在的问题和机会,比如销售渠道规划、市场评估、竞争对手评估、策略的制定与分析。构造统计模型,对客户或业务状况进行分析,甚至利用数据挖掘工具对业务发展和恶意透支进行预测。
2) 客户分段与评价
以客户为中心的业务策略,最重要的特征是细分市场,即把客户或潜在客户分为不同的类别,针对不同种类的客户提供不同的产品和服务,采用不同的市场和销售策略。客户的分段与评价是细分市场的主要手段。数据仓库系统中累积了大量的客户数据可以作为分类和评价的依据,而且数据访问十分简单方便,建立在数据仓库系统之上的客户分段和评价系统,可以达到事半功倍的效果。客户分段是以客户的某个或某几个属性进行分类,比如年龄、地区、收入、学历、消费金额等或它们的组合。客户评价是建立一个评分模型对客户进行评分,这样可以综合客户各方面的属性对客户做出评价,比如新产品推出前,可以建立一个模型,确定最可能接受新产品的潜在客户。
3) 市场自动化
决策支持帮助企业制定了产品和市场策略,客户分段和评价为企业指出了目标客户的范围,下一步是对这些客户展开市场攻势。市场自动化的最主要内容是促销管理。促销管理的功能包括:提供目标客户的列表,指定客户接触的渠道,指定促销的产品、服务或活动,确定与其他活动的关系。
综上所述,数据仓库系统已经成为现代化企业必不可少的基础设施之一,它是现代企业运营支撑体系的重要组成,是企业对市场需求快速准确响应的有力保证。随着中国加入 WTO,国际巨头进军中国市场,国内企业面临的竞争将越来越激烈和残酷,数据仓库系统是传统企业迎接挑战的重要力量。