数据仓库培训文档1.docx
《数据仓库培训文档1.docx》由会员分享,可在线阅读,更多相关《数据仓库培训文档1.docx(23页珍藏版)》请在冰豆网上搜索。
数据仓库培训文档1
1.数据仓库技术综述
随着全球性竞争的加剧,越来越多的企业认识到正确及时的决策是企业生存和发展的关键所在。
因此,充分利用现代信息科技技术,自动快速获取有用的决策信息,为企业提供快速、准确的决策支持,已成为大多数成功企业的共识。
数据仓库的出现正是满足了这种需求,从而给企业带来更好的发展动力。
建设数据仓库的目的:
1、市场的激烈竞争和管理过程的复杂性,决定了一个企业为了生存与发展,就需要对客户关系、市场营销、产品工程、投资分析等方面的历史数据进行提取与分析,从中找到对企业进一步发展有价值的潜在信息。
2、数据仓库能够把企业的内部数据和外部数据进行有效的集成,为企业的各层决策提供数据依据。
3、企业现有的系统不能提供更多的决策信息(尽管企业已经有了大量的数据积累)。
4、通过构造一种体系化的数据存贮环境,将分析决策所需的大量数据从传统的操作环境中分离出来,使分散的、不一致的操作数据转换成集成的、统一的信息。
5、可以为市场营销和客户分析提供基本的信息源和辅助工具。
6、可以实现对产品、部门、机构的利润与成本分析。
7、可以规范管理流程、优化业务处理、提高资本利用率。
1.1数据仓库概念和体系结构
1.1.1从数据库到数据仓库的演变
市场需求是技术发展的源动力。
在数据库应用的早期,计算机系统所处理的是从无到有的问题,是传统手工业务自动化的问题。
例如银行的储蓄系统、电信的计费系统,它们都属于典型的联机事务处理系统。
一个企业可以简单地通过拥有联机事务处理的计算机系统而获得强大的市场竞争力。
其次,当时单位容量的联机存储介质比现在昂贵得多,相对于市场竞争的压力,将大量的历史业务数据长时间联机保存去用于分析显然是过于奢侈了。
因此,联机事务处理系统只涉及当前数据,系统积累下的历史业务数据往往被转储到脱机的环境中。
此外,在计算机系统应用的早期,还没有积累大量的历史数据可供统计与分析。
从而,联机事务处理成为整个80年代直到90年代初数据库应用的主流。
然而,应用在不断地进步,当联机事务处理系统应用到一定阶段的时候,企业便发现单靠拥有联机事务处理系统已经不足以获得市场竞争的优势;他们需要对其自身业务的运作以及整个市场相关行业的态势进行分析,从而做出有利的决策。
这些决策需要对大量的业务数据包括历史业务数据进行分析才能得到,而这种基于业务数据的决策分析,我们把它称之为联机分析处理。
如果说传统联机事务处理强调的是更新数据库——向数据库中添加信息,那么联机分析处理就是要从数据库中获取信息、利用信息。
因此,著名的数据仓库专家RalphKimball写道:
“我们花了20多年的时间将数据放入数据库,如今是该将它们拿出来的时候了。
”
事实上,将大量的业务数据应用于分析和统计原本是一个非常简单和自然的想法。
但在实际的操作中,人们却发现要获得有用的信息并非想象的那么容易:
第一,所有联机事务处理强调的是数据更新处理性能和系统的可靠性,并不关心数据查询的方便与快捷;联机分析和事务处理对系统的要求不同,同一个数据库在理论上难以做到两全;第二,业务数据往往被存放于分散的异构环境中,不易统一查询访问,而且还有大量的历史数据处于脱机状态,形同虚设;第三,业务数据的模式是针对事务处理系统而设计的,数据的格式和描述方式并不适合非计算机专业人员进行业务上的分析和统计。
于是,有人感叹:
20年前查询不到数据是因为数据太少了,而今天查询不到数据是因为数据太多了。
针对这一问题,人们专门为业务的统计分析建立一个数据中心,它的数据可以从联机的事务处理系统、异构的外部数据源、脱机的历史业务数据中得到;它是一个联机的系统,专门为分析统计和决策支持应用服务,通过它可满足决策支持和联机分析应用所要求的一切。
这个数据中心就叫做数据仓库。
如果需要给数据仓库一个定义的话,那么可以把它看作一个作为决策支持系统和联机分析应用数据源的结构化数据环境。
数据仓库所要研究和解决的问题就是从数据库中获取信息。
从本质上来看,数据仓库的兴起实际上是数据管理的一种回归,是螺旋式的上升。
今天的数据库就好比当年的层次数据库和网型数据库,它们面向事务处理;今天的数据仓库就好比是当年的关系数据库,它针对联机分析。
所不同的是,今天的数据仓库不必再为联机事务处理的特性而奔忙,由于技术的专业化,它可更专心于联机分析领域的发展和探索。
1.1.2数据仓库的概念
数据仓库概念始于本世纪80年代中期,首次出现是在号称“数据仓库之父”WilliamH.Inmon的《建立数据仓库》一书中。
目前,数据仓库一词尚没有一个统一的定义,W.H.Inmon在其著作《BuildingtheDataWarehouse》一书中给予如下描述:
数据仓库(DataWarehouse)是一个面向主题的(SubjectOriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(TimeVariant)的数据集合,用于支持管理决策。
对于数据仓库的概念我们可以从两个层次予以理解,首先,数据仓库用于支持决策,面向分析型数据处理,它不同于企业现有的操作型数据库;其次,数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。
根据数据仓库概念的含义,数据仓库拥有以下四个特点:
1、面向主题。
操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织。
主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。
2、集成的。
面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。
而数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
3、相对稳定的。
操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。
数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
4、反映历史变化。
操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
常用的概念:
ETL:
(Extract/Transformation/Load)—用户从数据源抽取出所需的数据,经过数据清洗、转换,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去
元数据:
关于数据的数据,指在数据仓库建设过程中所产生的有关数据源定义,目标定义,转换规则等相关的关键数据。
同时元数据还包含关于数据含义的商业信息。
●数据仓库表的结构
●数据仓库表的属性
●数据仓库的源数据(记录系统)
●从记录系统到数据仓库的映射
●数据模型的规格说明
●抽取日志
●访问数据的公用例行程序
粒度:
数据仓库的数据单位中保存数据的细化或综合程度的级别。
细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。
数据模型的种类:
●星型Starschema
●雪花型Snowflakeschema
●星系Factconstellationsorgalaxyschema
度量:
数据的实际意义,即描述数据是“什么”。
一般情况下,变量总是一个数值度量指标,如:
话务量、掉话次数、拥塞率等
维:
是人们观察数据的角度。
例如:
关心总话务量据随着时间的变化情况,这是从时间的角度来话务量的分布,所以时间是一个维(时间维)
关心话务量在不同地区的分布情况,这是从地理分布的角度来观察话务量的分布,所以地理分布也是一个维(地理维)
维的层次
人们观察数据的某个特定角度还可以存在细节程度的多个描述方面
维成员
维的一个取值称为该维的一个维成员,如果一个维是多层次的,那么该维的维成员是由各个不同维层次的取值组合而成
聚集表:
就是物化视图(materializedview)
●提供粗粒度的信息
●提供更短的查询时间
建立聚集表的原则:
●基于对用户查询的理解
●聚集密集数据
●聚集维元素
●始终包含时间维
●在聚集表中尽可能包含所有的度量
数据集市:
数据仓库和数据集市的区别:
数据仓库收集了整个组织的主题信息,因此,它是覆盖整个企业范围的;而数据集市是数据仓库的一个子集,它聚焦在选定的主题上,是面对某一个部门范围的数据集合。
1.1.3数据仓库的体系结构
整个数据仓库系统是一般多是一个包含四个层次的体系结构,具体由下图表示。
数据仓库系统体系结构
·数据源:
是数据仓库系统的基础,是整个系统的数据源泉。
通常包括企业内部信息和外部信息。
内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。
外部信息包括各类法律法规、市场信息和竞争对手的信息等等;
·数据的存储与管理:
是整个数据仓库系统的核心。
数据仓库的真正关键是数据的存储和管理。
数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。
要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。
针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。
数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。
·OLAP服务器:
对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。
其具体实现可以分为:
ROLAP、MOLAP和HOLAP。
ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。
·前端工具:
主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。
其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。
1.2OLAP分析技术
1.2.1OLAP概述
联机分析处理(OLAP)的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。
OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理(简称OLTP)明显区分开来。
当今的数据处理大致可以分成两大类:
联机事务处理OLTP(on-linetransactionprocessing)、联机分析处理OLAP(On-LineAnalyticalProcessing)。
OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
下表列出了OLTP与OLAP之间的比较。
OLTP
OLAP
用户
操作人员,低层管理人员
决策人员,高级管理人员
功能
日常操作处理
分析决策
DB设计
面向应用
面向主题
数据
当前的,最新的细节的,二维的分立的
历史的,聚集的,多维的集成的,统一的
存取
读/写数十条记录
读上百万条记录
工作单位
简单的事务
复杂的查询
用户数
上千个
上百个
DB大小
100MB-GB
100GB-TB
1.2.2OLAP相关概念和技术
OLAP是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。
OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是"维"这个概念。
“维”是人们观察客观世界的角度,是一种高层次的类型划分。
“维”一般包含着层次关系,这种层次关系有时会相当复杂。
通过把一个实体的多项重要的属性定义为多个维(dimension),使用户能对不同维上的数据进行比较。
因此OLAP也可以说是多维数据分析工具的集合。
OLAP的基本多维分析操作有钻取(rollup和drilldown)、切片(slice)和切块(dice)、以及旋转(pivot)、drillacross、drillthrough等。
●钻取是改变维的层次,变换分析的粒度。
它包括向上钻取(rollup)和向下钻取(drilldown)。
rollup是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而drilldown则相反,它从汇总数据深入到细节数据进行观察或增加新维。
●切片和切块是在一部分维上选定值后,关心度量数据在剩余维上的分布。
如果剩余的维只有两个,则是切片;如果有三个,则是切块。
●旋转是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。
OLAP有多种实现方法,根据存储数据的方式不同可以分为ROLAP、MOLAP、HOLAP。
●ROLAP表示基于关系数据库的OLAP实现(RelationalOLAP)。
以关系数据库为核心,以关系型结构进行多维数据的表示和存储。
ROLAP将多维数据库的多维结构划分为两类表:
一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。
维表和事实表通过主关键字和外关键字联系在一起,形成了"星型模式"。
对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为"雪花模式"。
●MOLAP表示基于多维数据组织的OLAP实现(MultidimensionalOLAP)。
以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。
多维数据在存储中将形成"立方块(Cube)"的结构,在MOLAP中对"立方块"的"旋转"、"切块"、"切片"是产生多维数据报表的主要技术。
●HOLAP表示基于混合数据组织的OLAP实现(HybridOLAP)。
如低层是关系型的,高层是多维矩阵型的。
这种方式具有更好的灵活性。
还有其他的一些实现OLAP的方法,如提供一个专用的SQLServer,对某些存储模式(如星型、雪片型)提供对SQL查询的特殊支持。
OLAP工具是针对特定问题的联机数据访问与分析。
它通过多维的方式对数据进行分析、查询和报表。
维是人们观察数据的特定角度。
例如,一个企业在考虑产品的销售情况时,通常从时间、地区和产品的不同角度来深入观察产品的销售情况。
这里的时间、地区和产品就是维。
而这些维的不同组合和所考察的度量指标构成的多维数组则是OLAP分析的基础,可形式化表示为(维1,维2,……,维n,度量指标),如(地区、时间、产品、销售额)。
多维分析是指对以多维形式组织起来的数据采取切片(Slice)、切块(Dice)、钻取(Drill-down和Roll-up)、旋转(Pivot)等各种分析动作,以求剖析数据,使用户能从多个角度、多侧面地观察数据库中的数据,从而深入理解包含在数据中的信息。
根据综合性数据的组织方式的不同,目前常见的OLAP主要有基于多维数据库的MOLAP及基于关系数据库的ROLAP两种。
MOLAP是以多维的方式组织和存储数据,ROLAP则利用现有的关系数据库技术来模拟多维数据。
在数据仓库应用中,OLAP应用一般是数据仓库应用的前端工具,同时OLAP工具还可以同数据挖掘工具、统计分析工具配合使用,增强决策分析功能。
1.3数据挖掘技术
随着数据库技术的迅速发展以及数据库管理系统的广泛应用,人们积累的数据越来越多。
激增的数据背后隐藏着许多重要的信息,人们希望能够对其进行更高层次的分析,以便更好地利用这些数据。
目前的数据库系统可以高效地实现数据的录入、查询、统计等功能,但无法发现数据中存在的关系和规则,无法根据现有的数据预测未来的发展趋势。
缺乏挖掘数据背后隐藏的知识的手段,导致了“数据爆炸但知识贫乏”的现象。
数据挖掘(DataMining)就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。
1.3.1数据挖掘和知识发现
随着数据库技术的迅速发展以及数据库管理系统的广泛应用,人们积累的数据越来越多。
激增的数据背后隐藏着许多重要的信息,人们希望能够对其进行更高层次的分析,以便更好地利用这些数据。
目前的数据库系统可以高效地实现数据的录入、查询、统计等功能,但无法发现数据中存在的关系和规则,无法根据现有的数据预测未来的发展趋势。
缺乏挖掘数据背后隐藏的知识的手段,导致了“数据爆炸但知识贫乏”的现象。
数据挖掘(DataMining)就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。
对于数据挖掘(DM)和知识发现(KDD,KnowledgeDiscoveryinDatabase)的确切定义一直在许多学者中有混淆,有的认为,DM和KDD是等价的概念。
人工智能领域习惯称知识发现,而数据库领域习惯称DM,也有的把KDD当作发现知识的完整过程,而DM只是这个过程的一部分。
知识发现的过程可以分为三个主要阶段:
数据准备,数据挖掘和结果表达和理解。
如图所示:
数据准备
数据挖掘结果表达和解释
结果表达和
转换
数据挖掘
知识
数据转换
模式
转换数据
数据预处理
数据选择目标数据
数据集成
数据
数据源
知识发现过程
1.数据准备
(1)数据集成-------将多文件或多数据库运行环境中的数据进行合并处理,解决语义模糊性,处理数据中的遗漏和清洗脏数据等。
(2)数据选择--------为知识发现的目标搜索和选择有关的数据,这包括不同模式数据的转换和数据的统一和汇总。
数据选择的目的是辨别出需要分析的数据集合,缩小处理范围,提高数据挖掘的质量。
(3)数据预处理------对数据进行清理和充实等预处理工作。
(4)数据转换-------对数据编码,数据库中字段的不同取值转换成数码形式将有利于搜索。
2.数据挖掘。
此阶段进行实际的挖掘操作,利用机器学习.统计分析等方法,从数据库
中发现有用的模式或知识。
3.结果表达与解释。
根据最终用户的决策目的对提取的信息进行分析,把最有价值的信息区分出来,并且通过决策支持工具提交给决策者。
这一步骤的任务不仅是把结果表达出来,还要对信息进行过滤处理。
如果不能另决策者满意,需要重复以上数据挖掘的过程。
1.3.2数据挖掘的发现对象
数据挖掘所发现的知识最常见的分为以下四类:
广义知识(Generalization)
----广义知识指类别特征的概括性描述知识。
根据数据的微观特性发现其表征的、带有普遍性的、较高层次概念的、中观和宏观的知识,反映同类事物共同性质,是对数据的概括、精炼和抽象。
----广义知识的发现方法和实现技术有很多,如数据立方体、面向属性的归约等。
数据立方体还有其他一些别名,如“多维数据库”、“实现视图”、“OLAP"等。
该方法的基本思想是实现某些常用的代价较高的聚集函数的计算,诸如计数、求和、平均、最大值等,并将这些实现视图储存在多维数据库中。
既然很多聚集函数需经常重复计算,那么在多维数据立方体中存放预先计算好的结果将能保证快速响应,并可灵活地提供不同角度和不同抽象层次上的数据视图。
另一种广义知识发现方法是加拿大SimonFraser大学提出的面向属性的归约方法。
这种方法以类SQL语言表示数据挖掘查询,收集数据库中的相关数据集,然后在相关数据集上应用一系列数据推广技术进行数据推广,包括属性删除、概念树提升、属性阈值控制、计数及其他聚集函数传播等。
关联知识(Association)
----它反映一个事件和其他事件之间依赖或关联的知识。
如果两项或多项属性之间存在关联,那么其中一项的属性值就可以依据其他属性值进行预测。
最为著名的关联规则发现方法是R.Agrawal提出的Apriori算法。
关联规则的发现可分为两步。
第一步是迭代识别所有的频繁项目集,要求频繁项目集的支持率不低于用户设定的最低值;第二步是从频繁项目集中构造可信度不低于用户设定的最低值的规则。
识别或发现所有频繁项目集是关联规则发现算法的核心,也是计算量最大的部分。
分类知识(Classification&Clustering)
----它反映同类事物共同性质的特征型知识和不同事物之间的差异型特征知识。
最为典型的分类方法是基于决策树的分类方法。
它是从实例集中构造决策树,是一种有指导的学习方法。
该方法先根据训练子集(又称为窗口)形成决策树。
如果该树不能对所有对象给出正确的分类,那么选择一些例外加入到窗口中,重复该过程一直到形成正确的决策集。
最终结果是一棵树,其叶结点是类名,中间结点是带有分枝的属性,该分枝对应该属性的某一可能值。
最为典型的决策树学习系统是ID3,它采用自顶向下不回溯策略,能保证找到一个简单的树。
算法C4.5和C5.0都是ID3的扩展,它们将分类领域从类别属性扩展到数值型属性。
----数据分类还有统计、粗糙集(RoughSet)等方法。
线性回归和线性辨别分析是典型的统计模型。
为降低决策树生成代价,人们还提出了一种区间分类器。
最近也有人研究使用神经网络方法在数据库中进行分类和规则提取。
预测型知识(Prediction)
----它根据时间序列型数据,由历史的和当前的数据去推测未来的数据,也可以认为是以时间为关键属性的关联知识。
----目前,时间序列预测方法有经典的统计方法、神经网络和机器学习等。
1968年Box和Jenkins提出了一套比较完善的时间序列建模理论和分析方法,这些经典的数学方法通过建立随机模型,如自回归模型、自回归滑动平均模型、求和自回归滑动平均模型和季节调整模型等,进行时间序列的预测。
由于大量的时间序列是非平稳的,其特征参数和数据分布随着时间的推移而发生变化。
因此,仅仅通过对某段历史数据的训练,建立单一的神经网络预测模型,还无法完成准确的预测任务。
为此,人们提出了基于统计学和基于精确性的再训练方法,当发现现存预测模型不再适用于当前数据时,对模型重新训练,获得新的权重参数,建立新的模型。
也有许多系统借助并行算法的计算优势进行时间序列预测。
偏差型知识(Deviation)
----此外,还可以发现其他类型的知识,如偏差型知识(Deviation),它是对差异和极端特例的描述,揭示事物偏离常规的异常现象,如标准类外的特例,数据聚类外的离群值等。
所有这些知识都可以在不同的概念层次上被发现,并随着概念层次的提升,从微观到中观、到宏观,以满足不同用户不同层次决策的需要。
1.3.3数据挖掘的功能
数据挖掘通过预测未来趋势及行为,做出前摄的、基于知识的决策。
数据挖掘的目标是从数据库中发现隐含的、有意义的知识,主要有以下五类功能。
●自动预测趋势和行为
数据挖掘自动在大型数据库中寻找预测性信息,以往需要进行大量手工分析的问题如今可以迅速直接由数据本身得出结论。
一个典型的例子是市场预测问题,数据挖掘使用过去有关促销的数据来寻找未来投资中回报最大的用户,其它可预测的问题包括预报破产以及认定对指定事件最可能作出反应的群体。
预测功能可以通过多种技术实现,目前存在的方法大多数可以分入两类:
神