您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 数据仓库和数据挖掘的OLAP技术
数据仓库和数据挖掘的OLAP技术数据仓库和数据挖掘的OLAP技术•什么是数据仓库?•多维数据模型•数据仓库的体系结构•数据仓库实现•数据立方体技术的进一步发展•从数据仓库到数据挖掘什么是数据仓库?•数据仓库的定义很多,但却很难有一种严格的定义•它是一个提供决策支持功能的数据库,它与公司的操作数据库分开维护。•为统一的历史数据分析提供坚实的平台,对信息处理提供支持•“数据仓库是一个面向主题的、集成的、随时间而变化的、不容易丢失的数据集合,支持管理部门的决策过程.”—W.H.Inmon(数据仓库构造方面的领头设计师)•建立数据仓库(datawarehousing):•构造和使用数据仓库的过程。数据仓库关键特征一——面向主题•围绕一些主题,如顾客、供应商、产品等•关注决策者的数据建模与分析,而不是集中于组织机构的日常操作和事务处理。•排除对于决策无用的数据,提供特定主题的简明视图。数据仓库关键特征二——数据集成•一个数据仓库是通过集成多个异种数据源来构造的。•关系数据库,一般文件,联机事务处理记录•使用数据清理和数据集成技术。•确保命名约定、编码结构、属性度量等的一致性。•当数据被移到数据仓库时,它们要经过转化。数据仓库关键特征三——随时间而变化•数据仓库的时间范围比操作数据库系统要长的多。•操作数据库系统:主要保存当前数据。•数据仓库:从历史的角度提供信息(比如过去5-10年)•数据仓库中的每一个关键结构都隐式或显式地包含时间元素,而操作数据库中的关键结构可能就不包括时间元素。数据仓库关键特征四——数据不易丢失•尽管数据仓库中的数据来自于操作数据库,但他们却是在物理上分离保存的。•操作数据库的更新操作不会出现在数据仓库环境下。•不需要事务处理,恢复,和并发控制等机制•只需要两种数据访问:•数据的初始转载和数据访问(读操作)数据仓库与异种数据库集成•传统的异种数据库集成:•在多个异种数据库上建立包装程序(wrappers)和中介程序(mediators)•查询驱动方法——当从客户端传过来一个查询时,首先使用元数据字典将查询转换成相应异种数据库上的查询;然后,将这些查询映射和发送到局部查询处理器•缺点:复杂的信息过虑和集成处理,竞争资源•数据仓库:更新驱动•将来自多个异种源的信息预先集成,并存储在数据仓库中,供直接查询和分析•高性能数据仓库与操作数据库系统操作数据库系统的主要任务是联机事务处理OLTP日常操作:购买,库存,银行,制造,工资,注册,记帐等数据仓库的主要任务是联机分析处理OLAP数据分析和决策OLTP和OLAP的主要区别:用户和系统的面向性:顾客VS.市场数据内容:当前的、详细的数据VS.历史的、汇总的数据数据库设计:实体-联系模型(ER)和面向应用的数据库设计VS.星型/雪花模型和面向主题的数据库设计视图:当前的、企业内部的数据VS.经过演化的、集成的数据访问模式:事务操作VS.只读查询(但很多是复杂的查询)OLTP系统和OLAP系统的比较特征OLTPOLAP任务特点操作处理信息处理面向事务分析用户办事员、DBA、数据库专业人员经理、主管、数据分析员功能日常操作长期信息分析、决策支持DB设计基于E-R,面向应用星型/雪花,面向主体数据最新的、详细的历史的、汇总的视图详细的、二维关系型汇总的、多维的任务单位简短的事务复杂的查询访问数据量数十个数百万个用户数数千个数百个DB规模100M-数GB100GB-数TB优先性高性能、高可用性高灵活性、端点用户自治度量事务吞吐量查询吞吐量、响应时间为什么需要一个分离的数据仓库?•提高两个系统的性能•DBMS是为OLTP而设计的:存储方式,索引,并发控制,恢复•数据仓库是为OLAP而设计:复杂的OLAP查询,多维视图,汇总•不同的功能和不同的数据:•历史数据:决策支持需要历史数据,而这些数据在操作数据库中一般不会去维护•数据汇总:决策支持需要将来自异种源的数据统一(如聚集和汇总)•数据质量:不同的源使用不一致的数据表示、编码和格式,对这些数据进行有效的分析需要将他们转化后进行集成从关系表和电子表格到数据立方体•数据仓库和数据仓库技术基于多维数据模型。这个模型把数据看作是数据立方体形式。多维数据模型围绕中心主题组织,该主题用事实表表示。事实是数值度量的。•数据立方体允许以多维数据建模和观察。它由维和事实定义。•维是关于一个组织想要记录的视角或观点。每个维都有一个表与之相关联,称为维表。•事实表包括事实的名称或度量以及每个相关维表的关键字•在数据仓库的研究文献中,一个n维的数据的立方体叫做基本方体。给定一个维的集合,我们可以构造一个方体的格,每个都在不同的汇总级或不同的数据子集显示数据,方体的格称为数据立方体。0维方体存放最高层的汇总,称作顶点方体;而存放最底层汇总的方体则称为基本方体。数据立方体——一个方体的格alltimeitemlocationsuppliertime,itemtime,locationtime,supplieritem,locationitem,supplierlocation,suppliertime,item,locationtime,item,suppliertime,location,supplieritem,location,suppliertime,item,location,supplier0-D(apex)cuboid1-Dcuboids2-Dcuboids3-Dcuboids4-D(base)cuboid数据仓库的概念模型•最流行的数据仓库概念模型是多维数据模型。这种模型可以以星型模式、雪花模式、或事实星座模式的形式存在。•星型模式(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_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_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一种数据挖掘查询语言:DMQL•DMQL首先包括定义数据仓库和数据集市的语言原语,这包括两种原语定义:一种是立方体定义,一种是维定义•立方体定义(事实表)definecubecube_name[dimension_list]:measure_list•维定义(维表)definedimensiondimension_nameas(attribute_or_subdimension_list)•特殊案例(共享维表的定义)•第一次作为维表定义“cubedefinition”•然后:definedimensiondimension_nameasdimension_name_first_timeincubecube_name_first_time实例:使用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定义雪花模式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))度量的分类•一个数据立方体的度量是一个数值函数,该函数可以对数据立方体的每一个点求值。度量可以根据其所用的聚集函数分为三类:•分布的(distributive):将函数用于n个聚集值得到的结果和将函数用于所有数据得到的结果一样。•比如:count(),sum(),min(),max()等•代数的(algebraic):函数可以由一个带M个
本文标题:数据仓库和数据挖掘的OLAP技术
链接地址:https://www.777doc.com/doc-27126 .html