数据挖掘2、数据仓库和数据挖掘的OLAP技术课件_第1页
数据挖掘2、数据仓库和数据挖掘的OLAP技术课件_第2页
数据挖掘2、数据仓库和数据挖掘的OLAP技术课件_第3页
数据挖掘2、数据仓库和数据挖掘的OLAP技术课件_第4页
数据挖掘2、数据仓库和数据挖掘的OLAP技术课件_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据仓库和数据挖掘的OLAP技术数据仓库和数据挖掘的OLAP技术数据仓库-数据挖掘的有效平台数据仓库中的数据清理和数据集成,是数据挖掘的重要数据预处理步骤数据仓库提供OLAP工具,可用于不同粒度的数据分析很多数据挖掘功能都可以和OLAP操作集成,以提供不同概念层上的知识发现分类预测关联聚集数据仓库-数据挖掘的有效平台数据仓库中的数据清理和数据集成,什么是数据仓库?数据仓库的定义很多,但却很难有一种严格的定义它是一个提供决策支持功能的数据库,它与公司的操作数据库分开维护。为统一的历史数据分析提供坚实的平台,对信息处理提供支持数据仓库区别于其他数据存储系统“数据仓库是一个面向主题的、集成的、随时间而变化的、不容易丢失的数据集合,支持管理部门的决策过程.”—W.H.Inmon什么是数据仓库?数据仓库的定义很多,但却很难有一种严格的定义数据仓库关键特征一——面向主题面向主题,是数据仓库显著区别于关系数据库系统的一个特征围绕一些主题,如顾客、供应商、产品等关注决策者的数据建模与分析,而不是集中于组织机构的日常操作和事务处理。排除对于决策无用的数据,提供特定主题的简明视图。数据仓库关键特征一——面向主题面向主题,是数据仓库显著区别于数据仓库关键特征二——数据集成一个数据仓库是通过集成多个异种数据源来构造的。关系数据库,一般文件,联机事务处理记录使用数据清理和数据集成技术。确保命名约定、编码结构、属性度量等的一致性。当数据被移到数据仓库时,它们要经过转化。数据仓库关键特征二——数据集成一个数据仓库是通过集成多个异种数据仓库关键特征三——随时间而变化数据仓库是从历史的角度提供信息数据仓库的时间范围比操作数据库系统要长的多。操作数据库系统:主要保存当前数据。数据仓库:从历史的角度提供信息(比如过去5-10年)数据仓库中的每一个关键结构都隐式或显式地包含时间元素,而操作数据库中的关键结构可能就不包括时间元素。数据仓库关键特征三——随时间而变化数据仓库是从历史的角度提供数据仓库关键特征四——数据不易丢失尽管数据仓库中的数据来自于操作数据库,但他们却是在物理上分离保存的。操作数据库的更新操作不会出现在数据仓库环境下。不需要事务处理,恢复,和并发控制等机制只需要两种数据访问:数据的初始转载和数据访问(读操作)数据仓库关键特征四——数据不易丢失尽管数据仓库中的数据来自于数据仓库的构建与使用数据仓库的构建包括一系列的数据预处理过程数据清理数据集成数据变换数据仓库的使用热点是商业决策行为,例如:增加客户聚焦产品重定位寻找获利点客户关系管理数据仓库的构建与使用数据仓库的构建包括一系列的数据预处理过程数据仓库与异种数据库集成异种数据库的集成方法传统的异种数据库集成:(查询驱动)在多个异种数据库上建立包装程序(wrappers)和中介程序(mediators)查询驱动方法——当从客户端传过来一个查询时,首先使用元数据字典将查询转换成相应异种数据库上的查询;然后,将这些查询映射和发送到局部查询处理器数据仓库:(更新驱动)将来自多个异种源的信息预先集成,并存储在数据仓库中,供直接查询和分析数据仓库与异种数据库集成异种数据库的集成方法查询驱动方法和更新驱动方法的比较查询驱动的方法需要复杂的信息过滤和集成处理与局部数据源上的处理竞争资源对于频繁的查询,尤其是涉及聚集(汇总)操作的查询,开销很大(决策支持中常见的查询形式)更新驱动的方法(带来高性能)数据经预处理后单独存储,对聚集操作提供良好支持不影响局部数据源上的处理集成历史信息,支持复杂的多维查询查询驱动方法和更新驱动方法的比较查询驱动的方法数据仓库与操作数据库系统操作数据库系统的主要任务是联机事务处理OLTP日常操作:购买,库存,银行,制造,工资,注册,记帐等数据仓库的主要任务是联机分析处理OLAP数据分析和决策支持,支持以不同的形式显示数据以满足不同的用户需要数据仓库与操作数据库系统操作数据库系统的主要任务是联机事务处OLAPVS.OLTP(1)用户和系统的面向性面向顾客(事务)VS.面向市场(分析)数据内容当前的、详细的数据VS.历史的、汇总的数据数据库设计实体-联系模型(ER)和面向应用的数据库设计VS.星型/雪花模型和面向主题的数据库设计OLAPVS.OLTP(1)用户和系统的面向性OLAPVS.OLTP(2)数据视图当前的、企业内部的数据VS.经过演化的、集成的数据访问模式事务操作VS.只读查询(但很多是复杂的查询)任务单位简短的事务VS.复杂的查询访问数据量数十个VS.数百万个OLAPVS.OLTP(2)数据视图OLAPVS.OLTP(3)用户数数千个VS.数百个数据库规模100M-数GBVS.100GB-数TB设计优先性高性能、高可用性VS.高灵活性、端点用户自治度量事务吞吐量VS.查询吞吐量、响应时间更多的区别见教科书P28,表2-1OLAPVS.OLTP(3)用户数更多的区别见教科书P为什么需要一个分离的数据仓库?提高两个系统的性能DBMS是为OLTP而设计的:存储方式,索引,并发控制,恢复数据仓库是为OLAP而设计:复杂的OLAP查询,多维视图,汇总不同的功能和不同的数据:历史数据:决策支持需要历史数据,而这些数据在操作数据库中一般不会去维护数据汇总:决策支持需要将来自异种源的数据统一(如聚集和汇总)数据质量:不同的源使用不一致的数据表示、编码和格式,对这些数据进行有效的分析需要将他们转化后进行集成为什么需要一个分离的数据仓库?提高两个系统的性能多维数据模型(1)数据仓库和OLAP工具基于多维数据模型在多维数据模型中,数据以数据立方体(datacube)的形式存在数据立方体允许以多维数据建模和观察。它由维和事实定义维是关于一个组织想要记录的视角或观点。每个维都有一个表与之相关联,称为维表。多维数据模型围绕中心主题组织,该主题用事实表表示事实表包括事实的名称或度量以及每个相关维表的关键字事实指的是一些数字度量多维数据模型(1)数据仓库和OLAP工具基于多维数据模型多维数据模型(2)——示例

time_keydayday_of_the_weekmonthquarteryeartime维表location_keystreetcitystate_or_provincecountrylocation事实表Sales事实表time_keyitem_keybranch_keylocation_keyunits_solddollars_soldavg_sales度量item_keyitem_namebrandtypesupplier_typeitem维表branch_keybranch_namebranch_typebranch维表多维数据模型(2)——示例time_keytime多维数据模型(3)在数据仓库中,数据立方体是n-D的(n维)(关系表和电子表格是几维的?)示例AllElectronics的销售数据按维time,item的2-D视图(P30,表2-2)AllElectronics的销售数据按维time,item和location的3-D视图(P30,表2-3)AllElectronics的销售数据按维time,item和location的3-D视图的3-D数据立方体表示(P31,图2-1)销售数据的4-D立方体表示(P31,图2-2)多维数据模型为不同角度上的数据建模和观察提供了一个良好的基础多维数据模型(3)在数据仓库中,数据立方体是n-D的(n维多维数据模型(4)在数据仓库的研究文献中,一个n维的数据的立方体叫做基本方体。给定一个维的集合,我们可以构造一个方体的格,每个都在不同的汇总级或不同的数据子集显示数据,方体的格称为数据立方体。0维方体存放最高层的汇总,称作顶点方体;而存放最底层汇总的方体则称为基本方体。多维数据模型(4)在数据仓库的研究文献中,一个n维的数据的数据立方体——一个方体的格alltimeitemlocationsuppliertime,itemtime,locationtime,supplieritem,locationitem,supplierlocation,suppliertime,item,locationtime,item,suppliertime,location,supplieritem,location,suppliertime,item,location,supplier0-D(顶点)方体1-D方体2-D方体3-D方体4-D(基本)方体数据立方体——一个方体的格alltimeitemlocati数据仓库的概念模型最流行的数据仓库概念模型是多维数据模型。这种模型可以以星型模式、雪花模式、或事实星座模式的形式存在。星型模式(Starschema):事实表在中心,周围围绕地连接着维表(每维一个),事实表含有大量数据,没有冗余。雪花模式(Snowflakeschema):是星型模式的变种,其中某些维表是规范化的,因而把数据进一步分解到附加表中。结果,模式图形成类似于雪花的形状。事实星座(Factconstellations):多个事实表共享维表,这种模式可以看作星型模式集,因此称为星系模式(galaxyschema),或者事实星座(factconstellation)数据仓库的概念模型最流行的数据仓库概念模型是多维数据模型。这星型模式实例

time_keydayday_of_the_weekmonthquarteryeartimelocation_keystreetcitystate_or_provincecountrylocationSalesFactTabletime_keyitem_keybranch_keylocation_keyunits_solddollars_soldavg_salesMeasuresitem_keyitem_namebrandtypesupplier_typeitembranch_keybranch_namebranch_typebranch星型模式实例time_keytimelocation_雪花模式实例time_keydayday_of_the_weekmonthquarteryeartimelocation_keystreetcity_keylocationSalesFactTabletime_keyitem_keybranch_keylocation_keyunits_solddollars_soldavg_salesMeasuresitem_keyitem_namebrandtypesupplier_keyitembranch_keybranch_namebranch_typebranchsupplier_keysupplier_typesuppliercity_keycitystate_or_provincecountrycity雪花模式实例time_keytimelocation_key事实星座模式实例time_keydayday_of_the_weekmonthquarteryeartimelocation_keystreetcityprovince_or_statecountrylocationSalesFactTabletime_keyitem_keybranch_keylocation_keyunits_solddollars_soldavg_salesMeasuresitem_keyitem_namebrandtypesupplier_typeitembranch_keybranch_namebranch_typebranchShippingFactTabletime_keyitem_keyshipper_keyfrom_locationto_locationdollars_costunits_shippedshipper_keyshipper_namelocation_keyshipper_typeshipper事实星座模式实例time_keytimelocation_k一种数据挖掘查询语言:DMQLDMQL首先包括定义数据仓库和数据集市的语言原语,这包括两种原语定义:一种是立方体定义,一种是维定义立方体定义(事实表)definecube<cube_name>[<dimension_list>]:<measure_list>维定义(维表)definedimension<dimension_name>as(<attribute_or_subdimension_list>)特殊案例(共享维表的定义)第一次作为维表定义“cubedefinition”然后:definedimension<dimension_name>as<dimension_name_first_time>incube<cube_name_first_time>一种数据挖掘查询语言:DMQLDMQL首先包括定义数据仓库实例:使用DMQL定义星型模式definecubesales_star[time,item,branch,location]:dollars_sold=sum(sales_in_dollars),avg_sales=avg(sales_in_dollars),units_sold=count(*)definedimensiontimeas(time_key,day,day_of_week,month,quarter,year)definedimensionitemas(item_key,item_name,brand,type,supplier_type)definedimensionbranchas(branch_key,branch_name,branch_type)definedimensionlocationas(location_key,street,city,province_or_state,country)实例:使用DMQL定义星型模式definecubesal实例:使用DMQL定义雪花模式definecubesales_snowflake[time,item,branch,location]:dollars_sold=sum(sales_in_dollars),avg_sales=avg(sales_in_dollars),units_sold=count(*)definedimensiontimeas(time_key,day,day_of_week,month,quarter,year)definedimensionitemas(item_key,item_name,brand,type,supplier(supplier_key,supplier_type))definedimensionbranchas(branch_key,branch_name,branch_type)definedimensionlocationas(location_key,street,city(city_key,province_or_state,country))实例:使用DMQL定义雪花模式definecubesal实例:使用DMQL定义事实星座模式definecubesales[time,item,branch,location]:dollars_sold=sum(sales_in_dollars),avg_sales=avg(sales_in_dollars),units_sold=count(*)definedimensiontimeas(time_key,day,day_of_week,month,quarter,year)definedimensionitemas(item_key,item_name,brand,type,supplier_type)definedimensionbranchas(branch_key,branch_name,branch_type)definedimensionlocationas(location_key,street,city,province_or_state,country)definecubeshipping[time,item,shipper,from_location,to_location]:dollar_cost=sum(cost_in_dollars),unit_shipped=count(*)definedimensiontimeastimeincubesalesdefinedimensionitemasitemincubesalesdefinedimensionshipperas(shipper_key,shipper_name,locationaslocationincubesales,shipper_type)definedimensionfrom_locationaslocationincubesalesdefinedimensionto_locationaslocationincubesales实例:使用DMQL定义事实星座模式definecubes09December2022DataMining:ConceptsandTechniques29ASampleDataCubeTotalannualsalesofTVinU.S.A.DateProductCountryAll,All,Allsumsum

TVVCRPC1Qtr2Qtr3Qtr4QtrU.S.ACanadaMexicosum07December2022DataMining:C度量的分类一个数据立方体的度量是一个数值函数,该函数可以对数据立方体的每一个点求值。(刚才的示例中用的是什么函数?)度量可以根据其所用的聚集函数分为三类:分布的(distributive):将函数用于n个聚集值得到的结果和将函数用于所有数据得到的结果一样。比如:count(),sum(),min(),max()等代数的(algebraic):函数可以由一个带M个参数的代数函数计算(M为有界整数),而每个参数值都可以有一个分布的聚集函数求得。比如:avg(),min_N(),standard_deviation()整体的(holistic):描述函数的子聚集所需的存储没有一个常数界。比如:median(),mode(),rank()度量的分类一个数据立方体的度量是一个数值函数,该函数可以对数概念分层(1)一个概念分层(concepthierarchy)定义一个映射序列,将低层概念映射到更一般的高层概念E.g.表示location的概念:杭州浙江中国亚洲概念分层允许我们在各种抽象级审查和处理数据概念分层可以由系统用户、领域专家、知识工程师人工的提供,也可以根据数据分布的统计分析自动的产生概念分层(1)一个概念分层(concepthierarc概念分层(2):location维的一个概念分层allEuropeNorth_AmericaMexicoCanadaSpainGermanyVancouverM.WindL.Chan..................allregionofficecountryTorontoFrankfurtcity许多概念分层的定义隐含在数据库的模式中。比如:location维的定义,office<city<country<region;这些属性按一个全序相关,形成一个层次结构:yeardayquartermonthweek维的属性也可以组成一个偏序,形成一个格:概念分层(2):location维的一个概念分层allE概念分层(3)——使用概念分层为不同级别上的数据汇总提供了一个良好的基础综合概念分层和多维数据模型的潜力,可以对数据获得更深入的洞察力通过在多维数据模型中,在不同的维上定义概念分层,使得用户在不同的维上从不同的层次对数据进行观察成为可能。多维数据模型(数据立方体)使得从不同的角度对数据进行观察成为可能,而概念分层则提供了从不同层次对数据进行观察的能力;结合这两者的特征,我们可以在多维数据模型上定义各种OLAP操作,为用户从不同角度不同层次观察数据提供了灵活性:概念分层(3)——使用概念分层为不同级别上的数据汇总提供多维数据模型上的OLAP操作(1)上卷(roll-up):汇总数据通过一个维的概念分层向上攀升或者通过维规约当用维归约进行上卷时,一个或多个维由给定的数据立方体删除下钻(drill-down):上卷的逆操作由不太详细的数据到更详细的数据,可以通过沿维的概念分层向下或引入新的维来实现(为给定数据添加更多细节)切片和切块(sliceanddice)切片操作在给定的数据立方体的一个维上进行选择,导致一个子方切块操作通过对两个或多个维进行选择,定义子方P40图2-10多维数据模型上的OLAP操作(1)上卷(roll-up):多维数据模型上的OLAP操作(2)转轴(pivot)立方体的重定位,可视化,或将一个3维立方体转化为一个2维平面序列转轴是一种可视化操作,通过转动当前数据的视图来提供一个数据的替代表示其他OLAP操作钻过(drill_across):执行涉及多个事实表的查询钻透(drill_through):使用关系SQL机制,钻到数据立方体的底层,到后端关系表其他OLAP操作可能包括列出表中最高或最低的N项,以及计算移动平均值、增长率、利润、统计函数等等P40图2-10多维数据模型上的OLAP操作(2)转轴(pivot)P4009December2022DataMining:ConceptsandTechniques36Fig.3.10TypicalOLAPOperations07December2022DataMining:C数据仓库设计:一个商务分析框架(1)数据仓库给商业分析专家提供了什么?通过提供相关数据与信息,获得竞争优势通过有效的收集精确的描述组织的数据,获得生产力的提高通过提供不同级别(部门、市场、商业)的客户视图,协助客户关系管理通过追踪长期趋势、异常等,降低成本有效构建数据仓库的关键:理解和分析商业需求通过提供一个商业分析框架,综合各种不同的数据使用者的视图数据仓库设计:一个商务分析框架(1)数据仓库给商业分析专家数据仓库设计:一个商务分析框架(2)数据仓库设计的四种视图自顶向下视图允许我们选择数据仓库所需的相关信息数据源视图揭示被操作数据库系统所捕获、存储和管理的信息数据仓库视图由事实表和维表所组成商务查询视图从最终用户的角度透视数据仓库中的数据数据仓库设计:一个商务分析框架(2)数据仓库设计的四种视图数据仓库设计:一个商务分析框架(3)数据仓库的构建与使用涉及多种技能商业技能理解系统如何存储和管理数据数据如何提取数据如何刷新技术方面的技能如何通过使用各种数据或量化的信息,到处可以提供决策支持的模式、趋势、判断等如何通过审查历史数据,分析发展趋势等计划管理技能如何通过与不同的技术、厂商、用户交互,来及时、有效、经济的提交结果数据仓库设计:一个商务分析框架(3)数据仓库的构建与使用涉数据仓库的设计过程(1)自顶向下法、自底向上法或者两者的混合方法自顶向下法:由总体设计和规划开始在技术成熟、商业理解透彻的情况下使用自底向上法:以实验和原型开始常用在模型和技术开发的初期,可以有效的对使用的技术和模型进行评估,降低风险混合方法:上述两者的结合从软件过程的观点瀑布式方法:在进行下一步前,每一步都进行结构化和系统的分析螺旋式方法:功能渐增的系统的快速产生,相继版本之间间隔很短数据仓库的设计过程(1)自顶向下法、自底向上法或者两者的混数据仓库的设计过程(2)典型的数据仓库设计过程选取待建模的商务过程找到所构建的数据仓库的主题,比如:销售、货运、订单等等选取商务过程的颗粒度数据起始于多细的颗粒度,比如:记录每条详细订单,或是开始于每日的汇总数据选取用于每个事实表记录的维常用的维有:时间、货物、客户、供应商等选取将安放在事实表中的度量常用的数字度量包括:售价、货物数量等数据仓库的设计过程(2)典型的数据仓库设计过程三层数据仓库架构(1)数据仓库提取清理转换装入刷新OLAP服务器查询报告分析数据挖掘监控、整合元数据存储数据源前端工具输出数据集市操作数据库其他外部信息源数据仓库服务器OLAP服务器三层数据仓库架构(1)数据仓库提取OLAP服务器查询报告监三层数据仓库架构(2)底层:数据仓库的数据库服务器关注的问题:如何从这一层提取数据来构建数据仓库(通过Gateway(ODBC,JDBC,OLE/DB等)来提取)中间层:OLAP服务器关注的问题:OLAP服务器如何实施(关系型OLAP,多维OLAP等)前端客户工具层关注的问题:查询工具、报表工具、分析工具、挖掘工具等三层数据仓库架构(2)底层:数据仓库的数据库服务器三种数据仓库模型从体系结构的角度去看,数据仓库模型可以有以下三种:企业仓库搜集关于跨越整个组织的主题的所有信息数据集市企业范围数据的一个子集,对于特定的客户是有用的。其范围限于选定的主题,比如一个商场的数据集市独立的数据集市VS.非独立的数据集市(数据来自于企业数据仓库)虚拟仓库操作数据库上的一系列视图只有一些可能的汇总视图被物化三种数据仓库模型从体系结构的角度去看,数据仓库模型可以有以下数据仓库开发:困难与方法数据仓库开发上的困难自顶向下的开发方法从全系统的角度提供解决方案,使得(模块)集成的问题最小;但是该方法十分昂贵,需要对组织进行长期研究和建模分析。自底向上方法提供了更多的开发灵活性,价格便宜;但往往会遇到集成问题(每个模块单独运行都没有问题,但是一集成就出异常)解决方法:使用递增性、演化性的开发方法高层数据模型企业仓库和数据集市并行开发通过分布式模型集成各数据集市多层数据仓库数据仓库开发:困难与方法数据仓库开发上的困难数据仓库开发——一个推荐的方法定义高层数据模型数据集市数据集市分布式数据集市多层数据仓库企业数据仓库模型提炼模型提炼数据仓库开发——一个推荐的方法定义高层数据模型数据集市数据集OLAP服务器类型(1)逻辑上,OLAP服务器从数据仓库或数据集市中给商业用户提供多维数据物理上,OLAP的底层数据存储实现可以有多种不同的方式关系OLAP服务器(ROLAP)使用关系数据库或扩展的关系数据库存放并管理数据仓库的数据,而用OLAP中间件支持其余部分包括每个DBMS后端优化,聚集导航逻辑的实现,附加的工具和服务较大的可扩展性OLAP服务器类型(1)逻辑上,OLAP服务器从数据仓库或OLAP服务器类型(2)多维OLAP服务器(MOLAP)基于数组的多维存储引擎(稀疏矩阵技术)能对预计算的汇总数据快速索引混合OLAP服务器(HOLAP)结合上述两种技术,更大的使用灵活性特殊的SQL服务器在星型和雪花模型上支持SQL查询OLAP服务器类型(2)多维OLAP服务器(MOLAP)数据仓库的实现

——数据立方体的有效计算数据仓库中的OLAP查询是一种海量数据计算(想象一下对过去10年各地区的软件产品销售的汇总查询)用户却希望这个计算能在数秒钟内完成解决方法在于给出一种有效的计算数据立方体的方法数据立方体可以被看成是一个方体的格最底层的方体是基本方体最顶端的方体(顶点)只包含一个单元的值一个n维的数据立方体,每维L层,可能产生的方体总数是多少?(item)(city)()(year)(city,item)(city,year)(item,year)(city,item,year)数据仓库的实现

——数据立方体的有效计算数据仓库中的OLA方体的操作DMQL中的方体定义和计算definecubesales[item,city,year]:sum(sales_in_dollars)computecubesales上述的computecube子句可以转化为一个类似于SQL的语句SELECTitem,city,year,SUM(amount)FROMSALESCUBEBYitem,city,year这个相当于SQL中以下的groupby子句(item,city,year)–3D(item,city),(itemyear),(city,year)—2D(item),(city),(year)—1D()--0D(item)(city)()(year)(city,item)(city,year)(item,year)(city,item,year)方体的操作DMQL中的方体定义和计算(item)(city)数据立方体的物化数据立方体的物化可以有以下三种选择:全物化预先计算所有方体不物化不预先计算任何“非基本”方体部分物化有选择的计算一个所有方体的适当子集考虑因素:(1)确定要物化的方体;(2)在查询时利用物化的方体;(3)在装载和刷新时,有效的更新物化的方体确定物化哪些方体考虑工作负荷下的查询、它们的频率和它们的开销等等数据立方体的物化数据立方体的物化可以有以下三种选择:方体计算:ROLAPvs.MOLAP方体计算的挑战:海量数据,有限的内存和时间基于ROLAP的方法(底层使用关系模型存储数据)将排序、散列(hashing)和分组操作应用于维的属性,以便对相关元组重新排序和聚类在某些子聚集上分组,作为“部分分组步骤”。可以由以前计算的聚集计算新的聚集,而不必有基本事实表计算基于MOLAP方法(底层使用多维数组存储数据)多路数组聚集的计算方法将数组切成块(每个块都可以整个装入内存)通过访问各个块来计算汇总值方体计算:ROLAPvs.MOLAP方体计算的挑战:海量方体计算的多路数组聚集方法(1)将数组分成块(chunk,一个可以装入内存的小子方)通过访问立方体单元,计算聚集。可以优化访问单元组的次序,使得每个单元被访问的次数最小化,从而减少内存访问和磁盘I/O的开销。A(month)40个值B29303132123459131415166463626148474645a1a0c3c2c1c0b3b2b1b0a2a3C(item)4000个值B(city)400个值442856402452362060哪个是多路数组聚集的最佳遍历次序?方体计算的多路数组聚集方法(1)将数组分成块(chunk,一方体计算的多路数组聚集方法(2)A(month)40B29303132123459131415166463626148474645a1a0c3c2c1c0b3b2b1b0a2a3C(item)4000442856402452362060B(city)400方体计算的多路数组聚集方法(2)A(month)B29303方体计算的多路数组聚集方法(3)AB29303132123459131415166463626148474645a1a0c3c2c1c0b3b2b1b0a2a3C442856402452362060B方体计算的多路数组聚集方法(3)AB293031321234方体计算的多路数组聚集方法(4)方法:各平面要按他们大小的升序排列进行排序和计算思想:将最小的平面放在内存中,对最大的平面每次只是取并计算一块方体计算的多路数组聚集方法(4)方法:各平面要按他们大小的升方体计算的多路数组聚集方法(5)根据1到64的扫描次序,在块内存中保存所有相关的2-D平面所需的最小存储为:40×400(用于整个AB平面)+40×1000(用于AC平面一行)+100×1000(用于BC平面一块)=156,000这种方法的限制:只有在维数比较小的情况下,效果才比较理想(要计算的立方体随维数指数增长)如果维的数目比较多,可以考虑使用“自底向上的计算”或者时“冰山方体”计算方体计算的多路数组聚集方法(5)根据1到64的扫描次序,在块OLAP查询的有效处理确定哪些操作应当在可利用的方体上执行:将查询中的选择、投影、上卷和下钻等操作转化为对应的SQL或/和OLAP操作,如:dice=selection+projection确定相关操作应当使用哪些物化的方体找寻MOLAP中可以利用的索引结构以及压缩的或是稠密的数组结构OLAP查询的有效处理确定哪些操作应当在可利用的方体上执行:有效处理OLAP查询(示例)立方体的定义为:sales[time,item,location]:sum(sales_in_dollar)time的维层次day<week<month<quater<yearlocation的维层次street<city<province_or_state<countryitem的维层次item_name<brand<type现在要处理一个year=2000,定位在brand和province_or_state级别的查询,现有四个可用的已经物化的方体:{item_name,city,year}{brand,country,year}{brand,province_or_state,year}{item_name,province_or_state}其中year=2000Question:以上四个方体,选那个来处理查询?(要考虑计算的量,以及可以使用的索引等因素)有效处理OLAP查询(示例)立方体的定义为:sales[ti元数据存储在数据仓库中,元数据就是定义数据仓库对象的数据。有以下几种:数据仓库结构的描述仓库模式、视图、维、层次结构、导出数据的定义,以及数据集市的位置和内容操作元数据包括数据血统(datalineage)、数据类别(currencyofdata),以及监视信息汇总用的算法由操作环境到数据仓库的映射关于系统性能的数据索引,profiles,数据刷新、更新或复制事件的调度和定时商务元数据商务术语和定义、数据拥有者信息、收费政策等元数据存储在数据仓库中,元数据就是定义数据仓库对象的数据。有元数据的使用元数据与数据一起,构成了数据仓库中的数据模型,元数据所描述的更多的是这个模型的结构方面的信息。在数据仓库中,元数据的主要用途包括:用作目录,帮助决策支持系统分析者对数据仓库的内容定义作为数据仓库和操作性数据库之间进行数据转换时的映射标准用于指导当前细节数据和稍加综合的数据之间的汇总算法,指导稍加综合的数据和高度综合的数据之间的汇总算法。元数据的使用元数据与数据一起,构成了数据仓库中的数据模型,元数据仓库后端工具和程序数据仓库后端工具主要指的是用来装入和刷新数据的工具,包括:数据提取:从多个外部的异构数据源收集数据数据清理检测数据种的错误并作可能的订正数据变换将数据由历史或主机的格式转化为数据仓库的格式装载排序、汇总、合并、计算视图,检查完整性,并建立索引和分区刷新将数据源的更新传播到数据仓库中数据仓库后端工具和程序数据仓库后端工具主要指的是用来装入和刷数据仓库的应用数据仓库的三种应用信息处理支持查询和基本的统计分析,并使用交叉表、表、图标和图进行报表处理分析处理对数据仓库中的数据进行多维数据分析支持基本的OLAP操作,切块、切片、上卷、下钻、转轴等数据挖掘从隐藏模式中发现知识支持关联分析,构建分析性模型,分类和预测,并用可视化工具呈现挖掘的结果三种应用间的差别数据仓库的应用数据仓库的三种应用从联机分析处理到联机分析挖掘为什么要联机分析挖掘数据仓库中有高质量的数据数据仓库中存放着整合的、一致的、清理过的数据围绕数据仓库的信息处理结构存取、集成、合并多个异种数据库的转换,ODBC/OLEDB连接,Web访问和访问工具等基于OLAP的探测式数据分析使用上卷、下钻、切片、转轴等技术进行数据挖掘数据挖掘功能的联机选择多种数据挖掘功能、算法和任务的整合从联机分析处理到联机分析挖掘为什么要联机分析挖掘联机分析挖掘的体系结构数据仓库元数据多维数据库OLAM引擎OLAP引擎用户图形界面API数据方体API数据库API数据清理数据集成第三层OLAP/OLAM第二层多维数据库第一层数据存储第四层用户界面数据的过滤、集成过滤数据库基于约束的数据挖掘挖掘结果联机分析挖掘的体系结构数据仓库元数据多维数据库OLAMOLA数据仓库和数据挖掘的OLAP技术数据仓库和数据挖掘的OLAP技术数据仓库-数据挖掘的有效平台数据仓库中的数据清理和数据集成,是数据挖掘的重要数据预处理步骤数据仓库提供OLAP工具,可用于不同粒度的数据分析很多数据挖掘功能都可以和OLAP操作集成,以提供不同概念层上的知识发现分类预测关联聚集数据仓库-数据挖掘的有效平台数据仓库中的数据清理和数据集成,什么是数据仓库?数据仓库的定义很多,但却很难有一种严格的定义它是一个提供决策支持功能的数据库,它与公司的操作数据库分开维护。为统一的历史数据分析提供坚实的平台,对信息处理提供支持数据仓库区别于其他数据存储系统“数据仓库是一个面向主题的、集成的、随时间而变化的、不容易丢失的数据集合,支持管理部门的决策过程.”—W.H.Inmon什么是数据仓库?数据仓库的定义很多,但却很难有一种严格的定义数据仓库关键特征一——面向主题面向主题,是数据仓库显著区别于关系数据库系统的一个特征围绕一些主题,如顾客、供应商、产品等关注决策者的数据建模与分析,而不是集中于组织机构的日常操作和事务处理。排除对于决策无用的数据,提供特定主题的简明视图。数据仓库关键特征一——面向主题面向主题,是数据仓库显著区别于数据仓库关键特征二——数据集成一个数据仓库是通过集成多个异种数据源来构造的。关系数据库,一般文件,联机事务处理记录使用数据清理和数据集成技术。确保命名约定、编码结构、属性度量等的一致性。当数据被移到数据仓库时,它们要经过转化。数据仓库关键特征二——数据集成一个数据仓库是通过集成多个异种数据仓库关键特征三——随时间而变化数据仓库是从历史的角度提供信息数据仓库的时间范围比操作数据库系统要长的多。操作数据库系统:主要保存当前数据。数据仓库:从历史的角度提供信息(比如过去5-10年)数据仓库中的每一个关键结构都隐式或显式地包含时间元素,而操作数据库中的关键结构可能就不包括时间元素。数据仓库关键特征三——随时间而变化数据仓库是从历史的角度提供数据仓库关键特征四——数据不易丢失尽管数据仓库中的数据来自于操作数据库,但他们却是在物理上分离保存的。操作数据库的更新操作不会出现在数据仓库环境下。不需要事务处理,恢复,和并发控制等机制只需要两种数据访问:数据的初始转载和数据访问(读操作)数据仓库关键特征四——数据不易丢失尽管数据仓库中的数据来自于数据仓库的构建与使用数据仓库的构建包括一系列的数据预处理过程数据清理数据集成数据变换数据仓库的使用热点是商业决策行为,例如:增加客户聚焦产品重定位寻找获利点客户关系管理数据仓库的构建与使用数据仓库的构建包括一系列的数据预处理过程数据仓库与异种数据库集成异种数据库的集成方法传统的异种数据库集成:(查询驱动)在多个异种数据库上建立包装程序(wrappers)和中介程序(mediators)查询驱动方法——当从客户端传过来一个查询时,首先使用元数据字典将查询转换成相应异种数据库上的查询;然后,将这些查询映射和发送到局部查询处理器数据仓库:(更新驱动)将来自多个异种源的信息预先集成,并存储在数据仓库中,供直接查询和分析数据仓库与异种数据库集成异种数据库的集成方法查询驱动方法和更新驱动方法的比较查询驱动的方法需要复杂的信息过滤和集成处理与局部数据源上的处理竞争资源对于频繁的查询,尤其是涉及聚集(汇总)操作的查询,开销很大(决策支持中常见的查询形式)更新驱动的方法(带来高性能)数据经预处理后单独存储,对聚集操作提供良好支持不影响局部数据源上的处理集成历史信息,支持复杂的多维查询查询驱动方法和更新驱动方法的比较查询驱动的方法数据仓库与操作数据库系统操作数据库系统的主要任务是联机事务处理OLTP日常操作:购买,库存,银行,制造,工资,注册,记帐等数据仓库的主要任务是联机分析处理OLAP数据分析和决策支持,支持以不同的形式显示数据以满足不同的用户需要数据仓库与操作数据库系统操作数据库系统的主要任务是联机事务处OLAPVS.OLTP(1)用户和系统的面向性面向顾客(事务)VS.面向市场(分析)数据内容当前的、详细的数据VS.历史的、汇总的数据数据库设计实体-联系模型(ER)和面向应用的数据库设计VS.星型/雪花模型和面向主题的数据库设计OLAPVS.OLTP(1)用户和系统的面向性OLAPVS.OLTP(2)数据视图当前的、企业内部的数据VS.经过演化的、集成的数据访问模式事务操作VS.只读查询(但很多是复杂的查询)任务单位简短的事务VS.复杂的查询访问数据量数十个VS.数百万个OLAPVS.OLTP(2)数据视图OLAPVS.OLTP(3)用户数数千个VS.数百个数据库规模100M-数GBVS.100GB-数TB设计优先性高性能、高可用性VS.高灵活性、端点用户自治度量事务吞吐量VS.查询吞吐量、响应时间更多的区别见教科书P28,表2-1OLAPVS.OLTP(3)用户数更多的区别见教科书P为什么需要一个分离的数据仓库?提高两个系统的性能DBMS是为OLTP而设计的:存储方式,索引,并发控制,恢复数据仓库是为OLAP而设计:复杂的OLAP查询,多维视图,汇总不同的功能和不同的数据:历史数据:决策支持需要历史数据,而这些数据在操作数据库中一般不会去维护数据汇总:决策支持需要将来自异种源的数据统一(如聚集和汇总)数据质量:不同的源使用不一致的数据表示、编码和格式,对这些数据进行有效的分析需要将他们转化后进行集成为什么需要一个分离的数据仓库?提高两个系统的性能多维数据模型(1)数据仓库和OLAP工具基于多维数据模型在多维数据模型中,数据以数据立方体(datacube)的形式存在数据立方体允许以多维数据建模和观察。它由维和事实定义维是关于一个组织想要记录的视角或观点。每个维都有一个表与之相关联,称为维表。多维数据模型围绕中心主题组织,该主题用事实表表示事实表包括事实的名称或度量以及每个相关维表的关键字事实指的是一些数字度量多维数据模型(1)数据仓库和OLAP工具基于多维数据模型多维数据模型(2)——示例

time_keydayday_of_the_weekmonthquarteryeartime维表location_keystreetcitystate_or_provincecountrylocation事实表Sales事实表time_keyitem_keybranch_keylocation_keyunits_solddollars_soldavg_sales度量item_keyitem_namebrandtypesupplier_typeitem维表branch_keybranch_namebranch_typebranch维表多维数据模型(2)——示例time_keytime多维数据模型(3)在数据仓库中,数据立方体是n-D的(n维)(关系表和电子表格是几维的?)示例AllElectronics的销售数据按维time,item的2-D视图(P30,表2-2)AllElectronics的销售数据按维time,item和location的3-D视图(P30,表2-3)AllElectronics的销售数据按维time,item和location的3-D视图的3-D数据立方体表示(P31,图2-1)销售数据的4-D立方体表示(P31,图2-2)多维数据模型为不同角度上的数据建模和观察提供了一个良好的基础多维数据模型(3)在数据仓库中,数据立方体是n-D的(n维多维数据模型(4)在数据仓库的研究文献中,一个n维的数据的立方体叫做基本方体。给定一个维的集合,我们可以构造一个方体的格,每个都在不同的汇总级或不同的数据子集显示数据,方体的格称为数据立方体。0维方体存放最高层的汇总,称作顶点方体;而存放最底层汇总的方体则称为基本方体。多维数据模型(4)在数据仓库的研究文献中,一个n维的数据的数据立方体——一个方体的格alltimeitemlocationsuppliertime,itemtime,locationtime,supplieritem,locationitem,supplierlocation,suppliertime,item,locationtime,item,suppliertime,location,supplieritem,location,suppliertime,item,location,supplier0-D(顶点)方体1-D方体2-D方体3-D方体4-D(基本)方体数据立方体——一个方体的格alltimeitemlocati数据仓库的概念模型最流行的数据仓库概念模型是多维数据模型。这种模型可以以星型模式、雪花模式、或事实星座模式的形式存在。星型模式(Starschema):事实表在中心,周围围绕地连接着维表(每维一个),事实表含有大量数据,没有冗余。雪花模式(Snowflakeschema):是星型模式的变种,其中某些维表是规范化的,因而把数据进一步分解到附加表中。结果,模式图形成类似于雪花的形状。事实星座(Factconstellations):多个事实表共享维表,这种模式可以看作星型模式集,因此称为星系模式(galaxyschema),或者事实星座(factconstellation)数据仓库的概念模型最流行的数据仓库概念模型是多维数据模型。这星型模式实例

time_keydayday_of_the_weekmonthquarteryeartimelocation_keystreetcitystate_or_provincecountrylocationSalesFactTabletime_keyitem_keybranch_keylocation_keyunits_solddollars_soldavg_salesMeasuresitem_keyitem_namebrandtypesupplier_typeitembranch_keybranch_namebranch_typebranch星型模式实例time_keytimelocation_雪花模式实例time_keydayday_of_the_weekmonthquarteryeartimelocation_keystreetcity_keylocationSalesFactTabletime_keyitem_keybranch_keylocation_keyunits_solddollars_soldavg_salesMeasuresitem_keyitem_namebrandtypesupplier_keyitembranch_keybranch_namebranch_typebranchsupplier_keysupplier_typesuppliercity_keycitystate_or_provincecountrycity雪花模式实例time_keytimelocation_key事实星座模式实例time_keydayday_of_the_weekmonthquarteryeartimelocation_keystreetcityprovince_or_statecountrylocationSalesFactTabletime_keyitem_keybranch_keylocation_keyunits_solddollars_soldavg_salesMeasuresitem_keyitem_namebrandtypesupplier_typeitembranch_keybranch_namebranch_typebranchShippingFactTabletime_keyitem_keyshipper_keyfrom_locationto_locationdollars_costunits_shippedshipper_keyshipper_namelocation_keyshipper_typeshipper事实星座模式实例time_keytimelocation_k一种数据挖掘查询语言:DMQLDMQL首先包括定义数据仓库和数据集市的语言原语,这包括两种原语定义:一种是立方体定义,一种是维定义立方体定义(事实表)definecube<cube_name>[<dimension_list>]:<measure_list>维定义(维表)definedimension<dimension_name>as(<attribute_or_subdimension_list>)特殊案例(共享维表的定义)第一次作为维表定义“cubedefinition”然后:definedimension<dimension_name>as<dimension_name_first_time>incube<cube_name_first_time>一种数据挖掘查询语言:DMQLDMQL首先包括定义数据仓库实例:使用DMQL定义星型模式definecubesales_star[time,item,branch,location]:dollars_sold=sum(sales_in_dollars),avg_sales=avg(sales_in_dollars),units_sold=count(*)definedimensiontimeas(time_key,day,day_of_week,month,quarter,year)definedimensionitemas(item_key,item_name,brand,type,supplier_type)definedimensionbranchas(branch_key,branch_name,branch_type)definedimensionlocationas(location_key,street,city,province_or_state,country)实例:使用DMQL定义星型模式definecubesal实例:使用DMQL定义雪花模式definecubesales_snowflake[time,item,branch,location]:dollars_sold=sum(sales_in_dollars),avg_sales=avg(sales_in_dollars),units_sold=count(*)definedimensiontimeas(time_key,day,day_of_week,month,quarter,year)definedimensionitemas(item_key,item_name,brand,type,supplier(supplier_key,supplier_type))definedimensionbranchas(branch_key,branch_name,branch_type)definedimensionlocationas(location_key,street,city(city_key,province_or_state,country))实例:使用DMQL定义雪花模式definecubesal实例:使用DMQL定义事实星座模式definecubesales[time,item,branch,location]:dollars_sold=sum(sales_in_dollars),avg_sales=avg(sales_in_dollars),units_sold=count(*)definedimensiontimeas(time_key,day,day_of_week,month,quarter,year)definedimensionitemas(item_key,item_name,brand,type,supplier_type)definedimensionbranchas(branch_key,branch_name,branch_type)definedimensionlocationas(location_key,street,city,province_or_state,country)definecubeshipping[time,item,shipper,from_location,to_location]:dollar_cost=sum(cost_in_dollars),unit_shipped=count(*)definedimensiontimeastimeincubesalesdefinedimensionitemasitemincubesalesdefinedimensionshipperas(shipper_key,shipper_name,locationaslocationincubesales,shipper_type)definedimensionfrom_locationaslocationincubesalesdefinedimensionto_locationaslocationincubesales实例:使用DMQL定义事实星座模式definecubes09December2022DataMining:ConceptsandTechniques94ASampleDataCubeTotalannualsalesofTVinU.S.A.DateProductCountryAll,All,Allsumsum

TVVCRPC1Qtr2Qtr3Qtr4QtrU.S.ACanadaMexicosum07December2022DataMining:C度量的分类一个数据立方体的度量是一个数值函数,该函数可以对数据立方体的每一个点求值。(刚才的示例中用的是什么函数?)度量可以根据其所用的聚集函数分为三类:分布的(distributive):将函数用于n个聚集值得到的结果和将函数用于所有数据得到的结果一样。比如:count(),sum(),min(),max()等代数的(algebraic):函数可以由一个带M个参数的代数函数计算(M为有界整数),而每个参数值都可以有一个分布的聚集函数求得。比如:avg(),min_N(),standard_deviation()整体的(holistic):描述函数的子聚集所需的存储没有一个常数界。比如:median(),mode(),rank()度量的分类一个数据立方体的度量是一个数值函数,该函数可以对数概念分层(1)一个概念分层(concepthierarchy)定义一个映射序列,将低层概念映射到更一般的高层概念E.g.表示location的概念:杭州浙江中国亚洲概念分层允许我们在各种抽象级审查和处理数据概念分层可以由系统用户、领域专家、知识工程师人工的提供,也可以根据数据分布的统计分析自动的产生概念分层(1)一个概念分层(concepthierarc概念分层(2):location维的一个概念分层allEuropeNorth_AmericaMexicoCanadaSpainGermanyVancouverM.WindL.Chan..................allregionofficecountryTorontoFrankfurtcity许多概念分层的定义隐含在数据库的模式中。比如:location维的定义,office<city<country<region;这些属性按一个全序相关,形成一个层次结构:yeardayquartermonthweek维的属性也可以组成一个偏序,形成一个格:概念分层(2):location维的一个概念分层allE概念分层(3)——使用概念分层为不同级别上的数据汇总提供了一个良好的基础综合概念分层和多维数据模型的潜力,可以对数据获得更深入的洞察力通过在多维数据模型中,在不同的维上定义概念分层,使得用户在不同的维上从不同的层次对数据进行观察成为可能。多维数据模型(数据立方体)使得从不同的角度对数据进行观察成为可能,而概念分层则提供了从不同层次对数据进行观察的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论