第2章数据仓库和数据挖掘的OLAP技术数据仓库-数据挖掘的有效平台。数据仓库中的数据清理和数据集成,是数据挖掘的重要数据预处理步骤。数据仓库提供OLAP工具,可用于不同粒度的数据分析。很多数据挖掘功能都可以和OLAP操作集成,以提供不同概念层上的知识发现。分类预测关联聚集2.1什么是数据仓库20世纪80年代中期,“数据仓库”这个名词首次出现在号称“数据仓库之父”W.H.Inmon的《BuildingDataWarehouse》一书中。在该书中,W.H.Inmon把数据仓库定义为“一个面向主题的、集成的、稳定的、随时间变化的数据的集合,以用于支持管理决策过程”。2.1.1数据仓库的定义数据仓库还有许多不同的定义,如:“数据仓库是融合方法、技术和工具以在完整的平台上将数据提交给终端用户的一种手段”。“数据仓库是对分布在企业内部各处的业务数据的整合、加工和分析的过程”。“数据仓库是一种具有集成性、稳定性和提供决策支持的处理”。“为查询和分析(不是事务处理)而设计的关系数据库”在众多的数据仓库定义中,公认的仍然是W.H.Inmon的定义,该定义指出了数据仓库面向主题、集成、稳定、随时间变化这4个最重要的特征。(1)面向主题主题就是在一个较高的管理层次上对信息系统的数据按照某一具体的管理对象进行综合、归类所形成的分析对象。如顾客、供应商、产品和销售组织等。从数据组织的角度看,主题是一些数据集合,这些数据集合对分析对象作了比较完整的、一致的描述,这种描述不仅涉及到数据自身,而且涉及到数据之间的关系。面向主题的数据组织方式,就是在较高层次上对分析对象的数据的一个完整、一致的描述,能完整、统一地刻画各个分析对象所涉及的企业的各项数据,以及数据之间的联系。(2)集成数据仓库中存储的数据一般从企业原来已建立的数据库系统中提取出来,但并不是原有数据的简单拷贝,而是经过了抽取、筛选、清理、综合等工作。这是因为:1)原有数据库系统记录的是每一项业务处理的流水帐,这些数据不适合于分析处理。在进入数据仓库之前必须经过综合、计算,同时抛弃一些分析处理不需要的数据项,必要时还要增加一些可能涉及的外部数据。2)数据仓库每一个主题所对应的源数据在源分散数据库中有许多重复或不一致之处,必须将这些数据转换成全局统一的定义,消除不一致和错误之处,以保证数据的质量;显然,对不准确,甚至不正确的数据分析得出的结果将不能用于指导企业做出科学的决策。3)源数据加载到数据仓库后,还要根据决策分析的需要对这些数据进行概括、聚集处理。(3)稳定性即非易失的业务系统的数据库中一般只存储短期数据,因此在数据库系统中数据是不稳定的,它记录的是系统中数据变化的瞬态。但对于决策分析而言,历史数据是相当重要的,许多分析方法必须以大量的历史数据为依托。没有大量历史数据的支持是难以进行企业的决策分析的,因此数据仓库中的数据大多表示过去某一时刻的数据,主要用于查询、分析,不像业务系统中的数据库那样,要经常进行修改、添加,除非数据仓库中的数据是错误的。(4)随时间而变化即时变的数据仓库中数据是批量载入的,是稳定的,这使得数据仓库中的数据总是拥有时间维度。从这个角度,数据仓库实际是记录了系统的各个瞬态,并通过将各个瞬态连接起来形成动画,从而在数据分析的时候再现系统运动的全过程。数据批量载入(提取)的周期实际上决定了动画间隔的时间,数据提取的周期短,则动画的速度快。2.1.2数据仓库与操作数据库系统的区别操作数据库系统的主要任务是联机事务处理OLTP日常操作:购买,库存,银行,制造,工资,注册,记帐等。数据仓库的主要任务是联机分析处理OLAP数据分析和决策支持,支持以不同的形式显示数据以满足不同的用户需要。OLTP和OLAP的比较(1/3)用户和系统的面向性面向顾客(事务)面向市场(分析)。数据内容当前的、详细的数据历史的、汇总的数据。数据库设计实体-联系模型(ER)和面向应用的数据库设计星型/雪花模型和面向主题的数据库设计。OLTP和OLAP的比较(2)数据视图当前的、企业内部的数据经过演化的、集成的数据。访问模式事务操作只读查询(但很多是复杂的查询)任务单位简短的事务复杂的查询。访问数据量数十个数百万个。OLTP和OLAP的比较(3)用户数数千个数百个。数据库规模100M~数GB100GB~数TB。设计优先性高性能、高可用性高灵活性、端点用户自治。度量事务吞吐量查询吞吐量、响应时间。2.1.3为什么需要一个分离的数据仓库?提高两个系统的性能DBMS是为OLTP而设计的:存储方式、索引、并发控制和恢复。数据仓库是为OLAP而设计:复杂的OLAP查询、多维视图和汇总。不同的功能和不同的数据:历史数据:决策支持需要历史数据,而这些数据在操作数据库中一般不会去维护。数据汇总:决策支持需要将来自异种源的数据统一(如聚集和汇总)。数据质量:不同的源使用不一致的数据表示、编码和格式,对这些数据进行有效的分析需要将他们转化后进行集成。数据提取业务和外部数据源数据质量假设数据清洗规则数据模式映射数据聚集规则数据仓库图例:元数据流数据流数据转换数据加载数据验证数据清洗数据集成数据聚集ETL过程各操作及其关系图2.1.4数据仓库中的关键名词1.ETL(Extract/Transformation/Load)—数据抽取、转换、加载工具ETL工具就是进行数据的抽取、转换和加载工具。(1)数据提取(DataExtract)从业务数据库只需提取出系统分析必需的那一部分数据。例如,某超市确定以分析客户的购买行为为主题建立数据仓库,则我们只需将与客户购买行为相关的数据提取出来,而超市服务员工的数据就没有必要放进数据仓库。现有的数据仓库产品几乎都提供各种关系型数据接口,提供提取引擎,从关系型数据中提取数据。(2)数据转换(DataTransform)由于业务系统可能使用不同的数据库厂商的产品,比如IBMDB2、Oracle、Informix、Sybase、NCRTeradata、SQLServer等,各种数据库产品提供的数据类型可能不同,因此需要将不同格式的数据转换成统一的数据格式。如时间格式“年/月/日”,“月/日/年”、“日-月-年”的不一致问题等。(3)数据清洗(DataClean)所谓“清洗”就是将错误的、不一致的数据在进入数据仓库之前予以更正或删除,以免影响决策支持系统决策的正确性。(4)数据加载(DataLoad)数据加载部件负责将数据按照物理数据模型定义的表结构装入数据仓库,包括清空数据域、填充空格、有效性检查等步骤。2.元数据(MetaData)“什么是元数据?”元数据是描述数据的数据。在数据仓库中,元数据是定义数据仓库对象的数据。元数据包括相应数据仓库的数据名和定义、数据提取操作时被提取数据的时间和地点以及数据清理或数据集成过程添加的字段等。它提供了有关数据的环境,用于构造、维持、管理、和使用数据仓库,在数据仓库中尤为重要。CREATETABLEstudent{noint;namechar(10);sexchar(2);classchar(8);}nonamesexclass1张三男1301…………数据数据的数据:元数据3.数据集市(DataMarket)数据仓库中存放的是整个企业的信息,并且数据是按照不同主题来组织的。比如市场发展规律的分析主题主要由市场部门的人员使用,我们可以在逻辑上或者物理上将这部分数据分离出来,当市场部门人员需要信息时,不需要到数据仓库的巨量数据中检索,而只需在相应的部门数据上进行分析,因此从效率和处理速度的角度出发,这种划分是合算的。这种面向企业中的某个部门(主题)而在逻辑上或物理上划分出来的数据仓库中的数据子集称为数据集市。换句话说,数据集市包含了用于特殊目的数据仓库的部分数据。数据仓库面向整个企业,而数据集市则是面向企业中的某个部门。典型示例是销售部门、库存和发货部门、财务部门和高级管理部门等的数据集市。数据仓库中存放了企业的整体信息,而数据集市只存放了某个主题需要的信息,其目的是减少数据处理量,使信息的利用更快捷、灵活。4.OLAPOLAP(On-lineAnalyticalProcessing,在线分析处理或联机分析处理)就是一个应用广泛的数据仓库使用技术。它可以根据分析人员的要求,迅速灵活地对大量的数据进行复杂的查询处理,并以直观的容易理解的形式将查询结果提供给各种决策人员,使他们能够迅速准确地掌握企业的运营情况,了解市场的需求。2.2多维数据模型2.2.1由表到数据立方体数据仓库和OLAP工具基于多维数据模型。在多维数据模型中,数据以数据立方体(datacube)的形式存在。数据立方体允许以多维数据建模和观察。它由维和事实定义。维是人们观察数据的特定角度,是考虑问题时的一类属性。属性的集合构成一个维(如时间维、机构维等)。维分层:同一维度还可以在细节程度不同的各个描述方面(如时间维可包含年、季度、月份和日期等)。维属性:维的一个取值,是数据项在某维中位置的描述(如2013年11月2日在时间维上位置的描述)。每个维都有一个表与之相关联,称为维表。一个数据立方体:多维数据模型围绕中心主题组织,该主题用事实表表示。事实表包括事实的名称或度量以及每个相关维表的关键字。事实指的是一些数字度量。学生课程分数100120018910022002831005200490┇┇┇学号姓名班号1张三1201┇┇┇学生1001┇课程编号名称20011C++┇┇┇学生维表成绩事实表课程维表OLTP系统是为了快速回答简单查询,而不是为了存储分析趋势的历史数据而创建的。一般的OLTP提供了大量的原始数据,这些数据不易被分析。查询某人买房记录。查询某房的价值。…一个英国房屋销售系统:两个系统数据组织模式比较示例1来源于事务型的数据库,如采用关系型数据库进行数据存储数据仓库需要回答更复杂的查询,而不仅仅是一些像“英国主要城市的商品平均销售价格是多少”之类的简单聚集数据查询。数据仓库需要回答的查询类型可以是简单的查询,也可以是高度复杂的,且还与终端用户使用的查询工具相关。2008年第三季度,整个英格兰的总收入是多少?2007年英国每一类房产销售的总收入是多少?2008年租借房产业务中每个城市哪个地域最受欢迎?与过去的两年相比有何不同?每个分支机构本月的房产销售月收入是多少,并与刚过去的12个月相比较。如果对于10万英镑以上的房产,法定价格上升3.5%而政府税收下降1.5%,对英国不同区域的销售会产生什么影响?在英国主要城市中,哪种类型的房产销售价格高于平均房产销售价格?这与人口统计数据有何联系?英国房屋销售数据仓库系统:来源于已处理的或汇总的数据,要预先采用数据结构如多维模型存放这些汇总的数据。两个系统数据组织模式比较示例2数据库系统面向“商品”、“供应商”和“顾客”的数据仓库系统商品数据仓库结构供应商数据仓库结构顾客数据仓库结构来源于的前面的多个表的数据从上述实例,不难看出:在从面向应用到面向主题的转变过程中,丢弃了原来有的但不必要的、不适于分析的信息;在原有的数据库模式中,有关商品的信息分散在各个子系统之中;面向主题的数据组织方式所强调的就是要形成关于主题一致的信息集合;不同主题之间有重叠内容。2.2.2多维数据模型time_keydayday_of_the_weekmonthquarteryeartime维表location_keystreetcitystate_or_provincecountrylocation维表Sales事实表time_keyitem_keybranch_keylocation_keyunits_solddollars_solditem_keyitem_namebrandtypesupplier_typeitem维表branch_keybranch_namebranch_typebranch维表数据仓库:事实表+维表度量在数据仓库中,数