数据仓库与数据挖掘原理及应用东华理工大学理学院刘爱华目录1.数据仓库基础7.分类和预测2.数据仓库设计和实现8.关联分析3.数据仓库实例9.Web挖掘4.OLAP和OLAM10.数据挖掘实例5.数据挖掘基础11.知识6.聚类分析12.语义网和本体1数据仓库基础1.1引言1.2体系结构1.3组成1.4元数据1.5数据粒度1.6数据模型1.7ETL1.1引言数据仓库定义数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的、不可修改的数据集合。此定义由最为权威的、被称为“数据仓库之父”的WilliamH.Inmon先生给出。•面向主题的是相对于传统数据库的面向应用而言的。所谓面向应用,指的是系统实现过程中主要围绕着一些应用或功能。而面向主题则考虑一个个的问题域,对问题域涉及到的数据和分析数据所采用的功能给予同样的重视。•典型的主题领域顾客、产品、事务或活动、保险单、索赔和账目。1.1引言•集成的数据仓库中的数据来自各个不同的数据源(操作数据库)。由于历史的原因,各操作数据库的组织结构往往是不同的,在这些异构数据输入到数据仓库之前,必须经历一个集成过程。1.1引言•集成的最重要的特点。应用问题的设计人员制定出不同的设计决策,且表示方法不同。例如编码、命名习惯、实际属性和属性度量等方面不一致。数据进入数据仓库时,需要消除各种不一致性。例如,数据仓库中顾客“性别”的编码,可采用“男/女”或“m/f”,采用哪种方式并不重要,重要的是在数据仓库中应该统一编码。如果应用数据编码为“X/Y”,则进入数据仓库时需要进行转换。此外,对所有应用所涉及的问题都要考虑一致性。例如命名习惯、键码结构、属性度量以及数据特点等。1.1引言•与时间相关的数据仓库以维的形式对数据进行组织,时间维是数据仓库中很重要的一个维度。并且数据仓库中的数据时间跨度大,从几年甚至到几十年,称为历史数据。1.1引言•不可修改的面向应用的事务数据库需要对数据进行频繁的插入、更新操作,而对于数据仓库中数据的操作仅限于数据的初始导入和记录查询。操作型数据是一次访问和处理一个记录,可以对操作型数据库中的数据进行更新。但数据仓库中的数据则不同,通常是一起载入与访问的,在数据仓库环境中并不进行一般意义上的数据更新。1.1引言1.2体系结构•二层体系结构数据挖掘/数据展现系统数据集市数据集市数据集市数据集市数据仓库存储数据元数据数据暂存区抽取/转换/清洁业务系统数据外部数据1.2体系结构•三层体系结构数据挖掘/数据展现系统数据集市数据集市数据集市数据集市数据仓库存储数据元数据数据暂存区抽取/转换/清洁业务系统数据外部数据ODS1.3数据仓库组成•一个数据仓库的大小一般都是在100GB以上•通常,数据仓库系统应该包含下列程序:(1)抽取数据与加载数据(2)整理并转换数据(采用一种数据仓库适用的数据格式)(3)备份与备存数据(4)管理所有查询(即将查询导向适当的数据源)数据查询CLAP工具CLAP工具经营数据外部数据详细信息集合信息元数据仓库管理器加载管理器查询管理器信息数据决策1.3数据仓库组成1.4元数据定义元数据(Metadata)是关于数据的数据。在数据仓库系统中,元数据可以帮助数据仓库管理员和数据仓库开发人员非常方便地找到他们所需的数据;元数据是描述数据仓库中数据结构和构建方法的数据。1.4元数据分类按照用途的不同分为技术元数据(TechnicalMetadata)和业务元数据(BusinessMetadata)两大类。-技术元数据存储关于数据仓库系统技术细节的数据,是用于开发和管理数据仓库使用的数据,它保证了数据仓库系统的正常运行;-业务元数据从业务角度描述数据仓库中的数据,它提供介于使用者和实际系统之间的语义层,使得数据仓库使用人员能够“读懂”数据仓库中的数据。1.5数据粒度定义粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。粒度深深地影响存放在数据仓库中数据量的大小,同时影响数据仓库所能回答的查询类型。在数据仓库中的数据粒度与查询的详细程度之间要做出权衡。1.5数据粒度当提高粒度级别时,数据所能回答查询的能力会随之降低。换言之,在一个很低的粒度级别上,几乎可以回答任何问题,但在高粒度级别上,数据所能处理的问题的数量是有限的。1.6数据模型数据模型是对现实世界的一种抽象,根据抽象程度的不同,可形成不同抽象层次上的数据模型。与数据库的数据模型相类似,数据仓库的数据模型也分为三个层次:概念模型逻辑模型物理模型•数据仓库的数据模型星型结构雪花型结构星型雪花型结构•数据仓库的数据=事实数据+维度数据不论是星型、雪花型或者是星型雪花型结构都是以事实表为中心。不同点只是在外围维度表相互之间的关系不同而已。1.6数据模型将原来业务系统的数据经过抽取、转换、加载到数据仓库所在的中心存储库的过程称为ETL(Extraction,TransformationandLoading)过程,制定这个过程的策略称之为ETL策略,而完成ETL过程的工具则是ETL工具。相对于数据仓库中的表而言,业务系统数据库中的表称为源表,业务系统数据库称为源数据库,数据仓库中所有的数据都来自于业务系统数据库。在打造一个数据仓库的过程中,ETL的实施是一项繁琐、冗长而艰巨的任务,因为它关系到数据仓库中数据的质量问题,如果导入的数据漏洞百出,对决策者来说无疑是个噩耗。ETL过程是搭建“数据仓库”时最重要的和最易误解的步骤之一。1.7ETLETL过程不仅仅是数据的迁移(Migration)或净化(Cleansing),也应该是企业数据管理策略中不可缺少的一部分。ETL过程的功能是:发现数据仓库需要的数据,将其从源系统中抽取出来,并进行一定的处理,然后装载到数据仓库中去。1.7ETL•提高数据质量•提供一种统一的、跨平台的存取数据方法•将数据“信息化”,为企业决策者的经营分析提供信息来源1.7ETL2数据仓库设计和实现2.1数据仓库设计2.2ETL设计2.3数据仓库实现(1)确定数据仓库的主题根据电信业务和电信运营的需求,电信公司涉及的最主要的三个主题是:客户发展收益分析呼叫特性分析2.1数据仓库设计(2)数据仓库模型的设计——可用的数据例如,要完成客户发展、收益分析、呼叫特性分析三个主题,下列三部分信息是必要的,即:客户的基本信息表客户的账单信息表客户的呼叫信息表2.1数据仓库设计(2)数据仓库模型的设计——粒度的确定在数据仓库设计中,最重要的步骤是确定数据的粒度。单一粒度对于客户基本信息表,由于它属于增长较为缓慢的信息(随着客户数量的增长,客户业务信息的变更表会增长),可以使用单一的数据粒度。2.1数据仓库设计(2)数据仓库模型的设计——OLAP模型的设计针对每一个主题确定其需要的维度和度量变量,然后为每一个主题定义关系模式,从而形成一个星型结构,在这个星型结构的基础上,可以生成多维数据表,建立多维数据库。以客户信息主题为例,客户信息主题的维度设计书如下:2.1数据仓库设计数据提取-转换-加载随着应用和系统环境的不同而具有不同的特点。一般而言,总包括下面的处理过程:a.预处理正式开始作业之前的准备工作,包括清空工作区、检查过渡/准备区。如果需要直接访问操作型数据源系统时,要检查远程数据库服务器状态,并核对目标区数据加载状态,以核算出加载作业的参数,如加载数据的时间间隔和范围(24小时的数据,还是前3天的数据)。2.2ETL设计b.启动数据加载的批作业c.因为维度表有事实表所参照的主键,所以要先完成对维表的加载,生成维表主键,并作为以后加载事实表所需要的外键。在加载维表中,有时要处理好缓慢变化的维的问题,并可能涉及到版号的处理问题。2.2ETL设计d.加载事实表这中间也涉及到键查找的问题,即从有关维表中找到相应的主键,并以此作事实表的外键。e.事实表加载完成后,再对总计方阵体系进行刷新,以保障总计方阵与它的基础数据同步。f.设计具有完善的出错处理机制和作业控制日志系统,用以监测和协调整个加载的过程。2.2ETL设计加载数据到数据仓库的具体步骤设定数据库和数据源建立多维数据集设计存储和处理多维数据集为多维数据集创立分区2.3数据仓库实现企业级数据仓库的实现途径从建造某个部门特定的数据集市开始,逐步扩充数据仓库所包含的主题和范围,最后形成一个能够完全反映企业全貌的企业级数据仓库;从一开始就从企业的整体来考虑数据仓库的主题和实施。2.3数据仓库实现第一种方法类似于软件工程中“自底向上”的方法,投资少、周期短且易于见到成果,但由于该设计开始时是以特定的部门级主题为框架的,向其他的主题和部门扩充往往比较困难;第二种方法与第一种相反,即“自顶向下”的方法,投资大、周期长。实际中大多采用第一种方法。2.3数据仓库实现3数据仓库实例3.1实例一3.2实例二4OLAP和OLAM4.1OLAP4.2OLAMOLAP定义•60年代,关系数据库之父E.F.Codd提出了关系模型,促进了联机事务处理(OLTP)的发展(数据以表格的形式而非文件方式存储)。•1993年,E.F.Codd提出了OLAP概念,认为OLTP已不能满足终端客户对数据库查询分析的需要,SQL对大型数据库的简单查询也不能满足终端客户分析的要求。客户的决策分析需要对关系数据库进行大量计算才能获得结果,而查询的结果并不能满足决策者提出的需求。因此,E.F.Codd提出了多维数据库和多维分析的概念,即OLAP。4.1OLAP•OLAP(On-LineAnalysisProcessing)定义是数据仓库上的分析展示工具,它建立在数据多维视图的基础上。•OLAP的主要特点一是在线性(OnLine),体现为对用户请求的快速响应和交互式操作;二是多维分析(Multi_Analysis),这是OLAP技术的核心所在。4.1OLAP•根据对数据的组织方式的不同,OLAP分为两种:基于多维数据库的OLAP(MD-OLAP)基于关系数据库的OLAP(ROLAP)前者响应速度快、执行效率高,但源于结构的局限,灵活性不高。与之相比,后者由于建立在大量现有数据库(数据仓库)的基础上,灵活性、扩展性要高的多,并且支持大数据量和较多维数的能力也要强于前者。因此,虽然在响应速度、执行效率上差一点,仍然得到了广泛应用。现有的OLAP工具大多基于后者。4.1OLAP将OLAP与数据挖掘结合起来,发展出一种为数据挖掘服务的具有新型OLAP的数据仓库,将更能适应实际的需要。OLAM(OnLineAnalyticalMining,联机分析挖掘)正是这种结合的产物。4.2OLAM5数据挖掘基础5.1概述5.2实现5.3工具二十世纪末以来,全球信息量以惊人的速度急剧增长—据估计,每二十个月将增加一倍。许多组织机构的IT系统中都收集了大量的数据(信息)。目前的数据库系统虽然可以高效地实现数据的录入、查询、统计等功能,但无法发现数据中存在的关系和规则,无法根据现有的数据预测未来的发展趋势。为了充分利用现有信息资源,从海量数据中找出隐藏的知识,数据挖掘技术应运而生并显示出强大的生命力。5.1概述数据挖掘是八十年代投资AI研究项目失败后,AI转入实际应用时提出的。它是一个新兴的,面向商业应用的AI研究。1989年8月,在美国底特律召开的第11届国际人工智能联合会议的专题讨论会上首次出现数据库中的知识发现(KnowledgeDiscoveryinDatabase,KDD)这一术语。随后,在1991年、1993年和1994年都举行KDD专题讨论会,汇集来自各个领域的研究人员和应用开发者,集中讨论数据统计、海量数据分析算法、知识表示、知识运用等问题。最初,数据挖掘是作为KDD中利用算法处理数据的一个步骤,其后逐渐演变成KDD的同义词。5.1概述现在,人们往往不加区别地使用两者。KDD常常被称为数据挖掘(DataMining),实际两者是有区别的。一般将KDD中进行知识学习的阶段称为数据挖掘(DataMining),数据挖