欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数据仓库基本原理.ppt

    • 资源ID:6296231       资源大小:890.50KB        全文页数:131页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据仓库基本原理.ppt

    第二章 数据仓库基本原理,第2章 数据仓库的基本原理,2.1 数据仓库的体系结构2.1.1 数据仓库的体系结构 数据仓库的体系结构可以用图2-1来表示。由于数据库和数据仓库应用的出发点不同,数据仓库将独立于业务数据库系统,但是数据仓库与业务数据库系统息息相关。数据仓库不是简单的对数据进行存储,而是对数据进行“再组织”。,2.1.1 数据仓库的体系结构,2.1.2 数据仓库的关键名词,下面我们沿着数据的流向详细说明数据在数据仓库处理的过程,以及一些关键名词。1.数据提取(Data Extraction)从数据仓库的角度来看,并不是业务数据库中的所有数据都是决策支持所必需的。通常,数据仓库按照分析的主题来组织数据,我们只需要提取出系统分析必需的那一部分数据。例如,某超市确定以分析客户的购买行为为主题建立数据仓库,则我们只需将同客户购买行为相关的数据提取出来,而超市服务员工的数据就没有必要放进数据仓库。现有的数据仓库产品几乎都提供各种关系型数据接口,从关系型数据中提取数据。,2.1.2 数据仓库的关键名词,2.数据清洗(Data Cleaning)由于企业常常为不同的应用对象建立不同的业务数据库,比如一个电信运营公司拥有计费数据库、账务数据库、客户数据库、客户投诉数据库等业务系统,这些业务系统中可能包含重复的信息,比如客户数据库中的部分客户基本信息也在客户投诉数据库中存在。由于不同的数据库可能使用不同数据库公司的产品,不同的业务系统可能有不同的软件开发商提供,这使得各个业务数据库中的数据存在不一致的现象,数据库使用人员的操作失误也会造成数据的不一致。,2.1.2 数据仓库的关键名词,如图2-2所示,显示了一个数据不一致的例子。客户数据库中有一张客户基本信息表,其中记录了客户的客户号、姓名、年龄等基本信息。在客户服务数据库中有一张客户咨询信息表用于记录客户咨询问题的内容和解答。由于数据库使用人员的失误,使得在客户基本信息表中的100号客户“张山”,在客户咨询表中的客户姓名被错误的录入为“张三”。,2.1.2 数据仓库的关键名词,由于冗余的数据存放在不同的数据库中,如果不同数据库间的数据刷新不是实时的,则可能出现数据不同步的情况。如图2-3所示,在客户基本信息表中记录了100号客户“张山”的手机状态正常,如果此时张山去办理停机手续,在客户业务变更表中,张山的手机状态将被修改为“停机”,如果数据刷新不够实时,客户基本信息表中的手机服务状态将与客户业务变更表不同步。,2.1.2 数据仓库的关键名词,对于决策支持系统来说,最重要的是决策的准确性,因此确保数据仓库中数据的准确性是极其重要的。从多个业务系统中获取数据时,必须对数据进行必要的清洗,从而得到准确的数据。所谓“清洗”就是将错误的、不一致的数据在进入数据仓库之前予以更正或删除,以免影响决策支持系统决策的正确性。,2.1.2 数据仓库的关键名词,3.数据转化(Data Transformation)由于业务系统可能使用不同的数据库厂商的产品,比如IBM DB2、Informix、Sybase、SQL Server、NCR 等,各种数据库产品提供的数据类型可能不同,因此需要将不同格式的数据转换成统一的数据格式。比如图2-4中所示的不同时间格式的差异。,2.1.2 数据仓库的关键名词,4.提取仓库(Extraction Store)由于业务数据库系统中的数据和数据格式存在不一致的问题,因此在把数据放进数据仓库前需要进行缓存,以等待清洗和转换,这些数据缓存的位置即提取仓库。5.提取日志(Extraction Log)当从业务系统提取数据时,需要记录提取数据的过程,这个过程被记载在提取日志中。提取日志详细记录了数据的来源,数据的转化过程等,它是数据仓库元数据的重要组成部分,它对于保证数据质量非常重要,并且便于数据管理员验证数据的质量。,2.1.2 数据仓库的关键名词,6.数据管理员 在数据仓库中,还有一个重要的角色,就是数据管理员。数据管理员不同于数据库管理员和系统管理员。数据库管理员负责数据库系统的数据备份、恢复、性能优化等工作,系统管理员负责操作系统级的维护和管理,而数据管理员是负责数据质量的专业人员,数据管理员查阅提取日志,发现其中记载的数据提取中出现的错误,有时候数据管理员还要检测源业务系统的错误,比如业务系统中的程序或者不正确的数据项造成的错误。,2.1.2 数据仓库的关键名词,7.外部数据源(External Source)外部数据源就是从系统外部获取的同分析主题相关的数据。对于一个好的决策,不但需要系统内部的信息,还需要来自系统外部的相关信息。比如,超市的采购部门要确定采购货单,不但要了解超市内部产品的销售情况,还需要了解市场上各种商品的价格水平、质量水平、竞争对手的采购信息等。因此一个好的决策支持系统必须综合考虑系统内部和外部的相关数据。,2.1.2 数据仓库的关键名词,8.数据仓库存储(Data Repository)数据仓库存储就是用于存放数据仓库数据和元数据的存储空间。数据的存储方式主要有3种:多维数据库、关系型数据库以及前两种存储方式的结合(在第3章OLAP的基本概念中将详细讲解)。9.数据 业务系统中提取的或者从外部数据源中导入的数据经过清洗、转化后成为数据仓库的原始数据,需要注意的是,它们是数据仓库数据的一部分,但不是全部。由于需要数据仓库进行OLAP分析和数据挖掘,因此需要在原始数据的基础上增加冗余信息,比如进行大量的预运算,建立多维数据库,以求迅速的展现数据。,2.1.2 数据仓库的关键名词,10.元数据 数据是对事物的描述,“元数据”就是描述数据的数据,它提供了有关数据的环境。数据仓库的元数据主要包含两类数据:第一种是为了从操作型环境向数据仓库环境转换而建立的元数据,它包括所有源数据项的名称、属性及其在提取仓库中的转化;第二种元数据在仓库中是用来与最终用户的多维商业模型和前端工具之间建立映射的,这种数据称为决策支持系统(DSS)元数据,它包括:(1)数据仓库中信息的种类、存储位置、存储格式;(2)信息之间的关系、信息和业务的关系、数据使 用的业务规则;(3)数据模型;(4)数据模型和数据仓库的关系。,2.1.2 数据仓库的关键名词,下面通过一个简单的例子说明元数据的基本内容,如图2-5所示:我们从Customer业务数据库的user表中取出3列(user_id,user_name,address),在清洗转换过程中,将user_name从char(20)转化成varchar(50)格式,最终放进User维表(User_ID,User_Name,Address)中。在转换后,(User_ID,User_Name,Address)3列原始的存放位置、进行的清洗转化处理、数据最终的存放位置、数据格式、数据使用的规则等等都将作为元数据的一部分。通常数据库将建立专用的元数据库来存放和管理元数据。,2.1.2 数据仓库的关键名词,11.数据集市(Data Market)数据仓库中存放的是整个企业的信息,并且数据是按照不同的主题来组织的。比如市场发展趋势的分析主题主要由市场部门的人员使用,我们可以将这部分数据逻辑上或者物理上分离出来,当市场部使用数据时,不需要到数据仓库的巨量数据中检索,而只需要在这些数据上进行分析,因此从效率和处理速度的角度出发,这种划分是合理的。我们把这种面向企业的某个部门(主题)而在逻辑上或物理上划分出来的数据仓库中的数据子集称为数据集市。数据仓库面向整个企业,而数据集市则是面向企业中的某个部门。数据仓库中存放了企业的整体信息,而数据集市只存放了某个主题需要的信息,其目的是减少数据处理量,使信息的利用更快捷、灵活。,2.2 数据仓库的特点,通过对数据仓库体系结构的完整介绍,我们对数据仓库有了一定的感性认识。现在我们来分析数据库和数据仓库在功能、技术上的差异,以加深理解。2.2.1 数据库的功能和特点 对于一个大型的处理多用户并发的数据库系统,数据的安全性、数据处理的并发性、事务处理的可靠性、数据的一致性和完整性可能是其最为关心的问题。,2.2.1 数据库的功能和特点,1.数据的安全性 首先是本地数据的安全性。数据库应当防止数据被不必要的用户访问,因此需要使用数据加密技术,使得数据不能轻易的被读取。可以为数据库系统定义不同的角色,每个角色具有不同的访问权限,从而控制不同用户的访问权限。当数据库通过网络被访问时,还需要增加新的网络安全机制来确保网络的安全性,在网络传输中使用数据加密技术,防止数据在网络中被监听,防止管理员的口令泄漏。,2.2.1 数据库的功能和特点,2.数据处理的并发性 在多用户的环境下,多个进程将并发地访问数据库,这使得数据库管理系统必须提供高效的加锁解锁方法以实现进程间的同步和互斥,使用多线程、多进程技术、磁盘的存储优化、合适的索引等来提高并发访问的效率。3.事务处理的可靠性 为了保证业务逻辑的正确性,数据库系统必须提供良好的事务处理能力,一个原子操作(逻辑上不可分的操作)不能被分开执行,如果其中某个步骤失败,则数据库系统必须返回并更改操作,以确保数据的一致性和完整性。,2.2.1 数据库的功能和特点,4.数据的一致性和完整性 为了确保数据的一致性和完整性,需要在数据库的设计、应用程序的开发、系统的维护等环节上进行复杂的工作。由此可见,操作型的环境涉及到事务处理、封锁管理、数据备份恢复、系统日志管理、数据存储管理等一系列复杂技术。,2.2.2 数据仓库的功能和特征,在Building the Data Warehouse一书中列出了操作型数据和分析型数据的区别,如表2-1所示。,2.2.2 数据仓库的功能和特征,二者的区别从根本上体现了事务处理和分析处理的差异。传统的数据库系统由于主要用于企业的日常事务处理工作,存放在数据库中的数据基本符合操作型数据的特点。而为了适宜数据分析处理的要求而产生的数据仓库中存放的数据,基本符合分析型数据的特点。进而把数据仓库定义为“用于支持管理决策的面向主题、集成、稳定、随时间变化的数据集合”。他指出了数据仓库面向主题、集成、稳定、随时间变化这4个最重要的特征。,2.2.3 面向主题,业务系统是以优化事务处理的方式来构造数据结构的,对于某个主题的数据常常分布在不同的业务数据库中。这对于决策支持系统来说是极为不利的,因为这意味着访问某个主题的时间实际上需要去访问多个分布在不同数据库中的数据集合。如在电信企业的情况。该企业已经有计费数据库、帐务数据库、客户服务数据库、市场信息数据库。其中,计费数据库记录了客户的消费情况,客户服务数据库记录了客户的咨询和投诉情况,帐务数据库记录了客户的缴费情况,这些数据都是客户主题的相关数据。如果直接使用业务系统进行决策支持,则需要访问计费数据库、客户服务数据库、帐务数据库才能获得客户各个侧面的信息,这样将极大的浪费系统处理的时间和效率,并且数据之间的不一致性和不同步问题,将极大影响决策的可靠性。,2.2.3 面向主题,基于以上的原因,数据仓库将这些数据集中于一个地方,在这种结构中,对应某个主题的全部数据被存放在同一数据表,这样决策者可以非常方便地在数据仓库中的一个位置检索包含某个主题的所有数据。在图2-6 中,我们选择收益、客户、市场3个主题。则收益主题可以从计费数据库和账务数据库中了解公司各项业务的收入情况;客户主题可以从计费数据库、账务数据库、客户服务数据库中获得客户消费、交费、咨询等全方位的信息;市场主题可以从市场信息数据库分析市场的发展趋势。通过这种按主题的数据组织方法,数据仓库极大地方便了数据分析的过程。,2.2.3 面向主题,2.2.3 面向主题,如图2-7所示显示了以客户为主题的数据存储,2.2.3 面向主题,属于“客户”主题域的数据集合使用相同的公共键码“客户标识”来连接。从图2-7我们可以看出,数据在数据仓库中还是以数据表的方式进行存储,但是,数据的组织方式和建模方法已经同数据库系统有了较大的改变。,2.2.4 数据的集成性,决策支持系统需要集成的数据。全面而正确的数据是有效地分析和决策的首要前提,相关数据收集得越完整,得到的结果就越可靠。而当前绝大多数企业内现有的业务数据库系统中的数据是分散而非集成的。造成这种分散的原因有多种,主要有事务处理应用分散、“蜘蛛网”问题、数据不一致问题、外部数据和非结构化数据。如图2-8所示中,示例了一个数据集成的例子。某电信公司在建立数据仓库时包括了客户这个主题,公司的业务系统中,客户的信息分散在各个业务数据库中,需要从客户基本信息表、客户呼叫记录表、客户话费表、客户咨询表等表中将数据提取并进行集成。,2.2.4 数据的集成性,图2-8 数据从操作型环境提取到分析型环境的同时进行数据集成,2.2.4 数据的集成性,要实现数据的集成,就必须对数据进行清洗和转化。数据转化需要特别的注意,通常可能包含如下的问题:1.数据格式 不同的业务数据库设计者对于同一属性可能使用不同的格式,比如电话号码使用char(10)、varchar(50)、integer等格式,各个数据库没有统一的定义。2.测量单位 不同的数据库中对于统一属性的测量单位可能不同,比如时间使用微秒、秒、分钟、小时等来记录,各个数据库也没有进行统一的定义。,2.2.4 数据的集成性,3.数据代码含义混乱 在数据库的设计中常常需要定义代码和枚举类型的变量,比如用定义H-高、M-中、L-低分别表示收入级别。有的数据库设计者可能定义1-高、2-中、3-低分别表示收入级别。在处理这类问题时,必须仔细阅读业务数据库的物理设计文档。4.数据名称混乱 数据名称混乱使得数据项的实际含义模糊。比如客户名称,有的设计者定义为user_name,有的定义为name,有的定义为USERNAME等。在进行数据导入时,只有通过细致地阅读业务数据库的设计文档才能明确数据项的含义。,2.2.4 数据的集成性,图2-9中示例了在实际问题中可能遇到的需要进行数据转化的工作。,2.2.4 数据的集成性,如果更进一步考虑,决策支持系统需要的不是静态的集成,而是动态的集成。静态集成的最大缺点在于数据集成后数据源中的数据发生了变化,这些变化将不能反映给决策者,导致决策者使用的是过时的数据。因此数据仓库必须能够使集成数据以一定的周期(例如24小时)进行刷新,使决策者能够使用新增的数据,其过程如图2-10所示。,2.2.4 数据的集成性,实际系统的数据刷新周期应当取决于需要分析的问题。例如,如果我们想分析某超市这几年来的销售额的发展趋势,在数据刷新的周期可定为“月”,但是如果想分析这个月走俏的商品,则数据刷新的周期定为“日”比较合适。过短的数据刷新周期,不但没有必要,而且浪费了系统的处理资源,增加了数据仓库中的数据量。过长的数据刷新周期,可能使得许多细节信息丢失,不能达到分析的目的。,2.2.5 数据的稳定性,业务系统一般只需要当前的数据,在数据库中一般只存储短期数据,因此在数据库系统中数据是不稳定的,它记录的是系统中每一个变化的瞬态。但对于决策分析而言,历史数据是相当重要的,许多分析方法必须以大量的历史数据为依托。没有历史数据的详细分析是难以把握企业的发展趋势的,因此DSS对数据在空间和时间的广度上都有了更高的要求。,2.2.5 数据的稳定性,在数据仓库中,数据一旦被写入就不再变化了。数据仓库可以看成是一个虚拟的只读数据库系统。我们在数据集成性中说明了数据仓库在数据存储方面是分批进行,定期执行提取过程为数据仓库增加记录,但是这些记录一旦加入,就不再从系统中删除。正是由于数据仓库的这个显著的特点,使得数据仓库不需要在并发读写控制上投入过多的精力,因为所有用户只是以只读方式访问数据仓库。我们在图2-11中演示了一个简单的例子。,2.2.5 数据的稳定性,2.2.5 数据的稳定性,在3月23日,100号客户的消费金额为200元,当时间推移到3月24日,100号客户的消费金额变成220元,这一信息在业务系统中被更新了。但是在数据仓库中(我们假定数据仓库每天进行一次数据提取),3月23日的数据提取结果是在数据仓库中增加了记录XXX,说明100号客户在3月23日的消费金额为200元,在执行3月24日的数据提取工作之后,原先的记录XXX并没有发生任何的改变,而是在数据仓库中增加了一条新的记录YYY,说明100号客户在3月24日的消费金额为220元。可见,数据仓库实际上是为100号客户的消费行为进行了定期的快照,并将快照存储起来供后续的分析工作使用。,2.2.6 数据随时间变化的特点,由于在数据仓库中数据只增不删,这使得数据仓库中的数据总是拥有时间维度。数据仓库实际上就是记录系统的各个瞬态,并通过将各个瞬态连接起来形成动画,从而在数据分析的时候再现系统运动的全过程。数据提取的周期实际上决定了动画间隔的时间,数据提取的周期短,则动画的速度快,图2-12示意了这种特点。,2.2 数据仓库的特点,数据仓库同数据库相比,还具有其他的特点。如数据仓库中的数据不再像数据库中的数据具有严格的规范化的特点,这也是有数据仓库的应用需求决定的。数据仓库为了能够在尽量短的时间内将数据呈现给使用人员,使用所谓的“空间换时间”的技术,牺牲了数据的规范化,增加了数据的冗余度,从而减小系统的响应时间。,2.3 数据仓库的数据组织,在对数据仓库的特点进行分析后,我们来学习数据仓库的数据组织结构和组织方式。2.3.1 数据仓库的数据组织结构 一个典型的数据仓库的数据组织结构图如图2-14所示。在数据仓库中,数据被分成4种级别,分别是高度综合级、轻度综合级、当前细节级、早期细节级。,2.3.1 数据仓库的数据组织结构,2.3.1 数据仓库的数据组织结构,当前的数据总是首先进入当前细节级,然后根据应用的需求,通过预运算将数据聚合成轻度综合和高度综合级。比如,在电信公司中的电话呼叫数据中记录了每个用户的每次呼叫。进行OLAP分析时,常常需要不同层次的数据颗粒度,因此可以通过预运算将数据综合成每个用户每“天”的通话次数,还可以进一步聚合成每个用户每“月”的通话次数。随着时间的推移,系统中的一些细节数据已经老化了,很少会被用户使用,此时为了节省系统的存储空间,可以将这些老化的细节数据导出到备份设备上。如图2-15所示是一个数据仓库数据组织的示例。,2.3.1 数据仓库的数据组织结构,2.3.1 数据仓库的数据组织结构,由于客户呼叫数据的数据量很大,并且数据仓库的使用者常常只关心近期的细节数据,因此我们可以在系统中只保存近3个月的呼叫细节数据,而将3个月之前的详细数据导出到备份设备中。在数据仓库中,细节数据可以聚合成轻度和高度综合级别的数据,比如按“月”、“季度”、“年”统计,需要说明的是轻度和高度是一种相对的概念,而没有绝对的边界,并且在数据仓库中数据的综合程度常常有很多的级别。,2.3.1 数据仓库的数据组织结构,实际上综合数据也可能被导出系统。比如企业的管理者认为企业的决策只同企业近15年来的运营数据有关,则15年之前的综合数据也可以导出。对于高度综合的数据,由于其数据量已经很少,所以一般可以不考虑它们的导出问题。,2.3.1 数据仓库的数据组织结构,总的来说,数据仓库的这种组织方式的核心思想是:在系统中保留最有可能被用户使用的数据,而用户很少使用的数据则备份出系统。,2.3.2 数据颗粒度,数据颗粒度是数据仓库中极其重要的概念。我们知道数据仓库是面向OLAP(联机分析处理)和DM(数据挖掘)的,对于OLAP和DM,数据颗粒度有不同的含义。OLAP的一个重要的功能就是给最终用户呈现不同综合程度的数据。第一种粒度就是对数据仓库中数据综合程度的一个度量。数据的综合程度不同,其数据量将相差很大。数据粒度越小,信息越细节,数据量越大。数据粒度越大,忽略了众多的细节,数据量越小。,2.3.2 数据颗粒度,如图2-16所示,按照每“月”统计的客户呼叫数据和按照每次呼叫记载的客户呼叫数据,两者的数据量相差极大。我们假定每个字段为8个字节,每个用户一天进行5次通话,则一个客户1个月的呼叫细节数据的数据量为:86305=7200字节,而一个客户1个月的呼叫汇总数据的数据量为84=32字节。,2.3.2 数据颗粒度,数据的综合程度还会影响数据的用途。对于多维查询来说,可能使用的是细节数据,例如要回答“王五在2001/3/21号是否在北京给赵六发送了短信”这样非常细致的问题,细节数据非常合适,而综合数据不可能回答,因为数据的综合使得细节信息丢失。但是,如果要回答“王五在2001/3到2001/7间的总话费是多少”这样的综合程度高的问题时,使用细节数据将需要进行统计运算后才能回答,这将增加用户的等待时间,而使用综合数据则可以迅速地回答这个问题。如图2-17所示的细节数据和综合数据用途上的差异和图2-18所示的细节数据和综合数据在回答综合问题上代价的差异。,2.3.2 数据颗粒度,2.3.2 数据颗粒度,2.3.2 数据颗粒度,从图中我们可以看出,综合程度不同的数据其用途不同,在数据仓库中多重的数据粒度是必不可少的。但是,由于数据仓库最主要的目的是反映企业的整体信息和DSS分析,回答综合程度较高的问题。如果为了回答许多细节问题,而使系统的数据量极度膨胀,从而降低系统的运营效率,就背离了系统建设的初衷,这也是我们在数据仓库数据组织方式中说明的,对细节数据和综合数据采用不同策略的原因。实际的工程项目中,我们可以将综合数据较高的数据存放在访问速率较高的磁盘上,而将细节数据定期导出到低速的磁带上。,2.3.2 数据颗粒度,例如,我们把近3个月的呼叫细节数据和按月综合的数据、按年综合的数据放在高速磁盘上,将以往的细节数据放在低速磁带上,如图2-19所示。需要注意的是:从数据仓库中导出的数据仍然属于数据仓库,只是在存储介质上发生了改变。,2.3.2 数据颗粒度,粒度的第二种形式是针对数据挖掘的。数据挖掘常常会使用非常复杂的算法(如神经元网络),其计算的复杂度较高,如果我们将数据仓库中存放的巨量数据直接运算,则计算时间和空间复杂度将太高,以致于系统难于承受。因此,我们在进行数据挖掘时,需要对数据仓库中的数据进行抽样。粒度的第二种形式是指抽样率,即以一定的抽样率对数据仓库中的数据进行抽样后得到一个样本数据库,数据挖掘将在这个样本数据库上进行,过程如图2-20所示。,2.3.2 数据颗粒度,2.3.2 数据颗粒度,这种抽样的思想是合理的,因为我们进行数据挖掘是为了建立分析模型,反应事务发展的规律和趋势。由抽样带来的模型误差可以在模型建立之后再次使用源数据对模型进行校验和调整,这样可以大大缩短模型建立的时间,提高模型的精确度。实际上,数据挖掘就是通过这样的循环来不断地改进分析模型,如图2-21所示。,2.3.2 数据颗粒度,2.3.2 数据颗粒度,在抽样中需要注意确定合适的抽样率和抽样方法。过大的抽样率将浪费系统的计算资源;过小的抽样率可能使得样本数据集合太小,而不能反映源数据特征。评价抽样率和抽样方法是否合适,关键在于抽样得到的样本集合是否能够反应源数据集合的特征。,2.3.2 数据颗粒度,一种常见的评价方法是通过比较样本集合间的数据值特征来评价样本集合和源数据之间的相似性。比如,我们使用某种抽样方法进行随机抽样,得到样本1和样本2,然后比较这两个样本集合之间如均值、方差等数值特征,如果这两个样本的数据特征不类似,则继续抽样。等到抽样获得的样本4、样本5、样本6它们的数值特征非常地相似,则认为在进行抽样的样本集合的数值特征也都类似,并且都同源数据具有类似的特征,抽样的过程到此即可结束,这个过程如图2-22所示。,2.3.2 数据颗粒度,2.3.3 数据的分割,数据的分割是数据仓库中的又一重要概念。由于数据仓库中的数据量极大,数据量大,使用起来会遇到很多问题,比如将19952001年的客户呼叫行为放在一张表中,则一次查询需要检索整张表,如果问题的范围只在2001年内,则我们仅需检索2001年的信息即可。另一种想法就是将客户呼叫行为按年分成1995、1996、1997、1998、1999、2000、2001等几张表,则我们只需检索2001表即可,如图2-23所示。对于一个数据量大的系统来说,这两种策略的效率相差很大。,2.3.3 数据的分割,2.3.3 数据的分割,所谓数据分割是指将数据分散到各自的物理单元中以便能够独立处理,提高数据处理的效率。数据分割后的数据单元称为分片。数据分割没有固定的标准,分割的方法和粒度应当根据实际情况来确定。分割的方法常常可以选择时间、地点、业务领域来划分。如图2-24所示,显示了按照地理位置进行的一个分割。如果问题涉及的数量非常大,可以按照问题的需求从多个角度进行分割,例如按照时间和地理位置两个角度进行分割,如图2-25所示。,2.3.3 数据的分割,2.3.3 数据的分割,2.3.3 数据的分割,按照时间进行分割符合数据仓库数据随时间变化的特点,并且分割后数据分布比较均匀,所以是最常见的分割方法。分割使得数据可以更容易索引、监控和顺序扫描,并且重构、重组简单。重构是分割的反面,而重组是对分割的数据进行新的组合,如图2-26所示。,2.3.4 数据仓库的数据组织形式,在数据仓库发展过程中,出现了不同的数据组织形式,这里介绍几种简单的组织形式。1.简单堆积文件 简单堆积文件就是将每天由数据库提取并处理后的数据逐天存储起来,如图2-27所示。还有一种形式被称为简单直接文件,它同简单堆积文件非常类似,只是按照一定的时间间隔对数据库进行快照并存储,但是时间的间隔不一定是每天。,2.3.4 数据仓库的数据组织形式,2.定期综合文件 这种方式中,数据存储单位被分成日、周、旬、月、季度、年等多个级别,如图2-28所示。数据被逐一的添加到每天的数据集合中,当一个星期过去了,每天数据被综合成周数据,以此类推,周数据被综合成月数据 定期综合文件的组织方式使得数据量比简单堆积文件方式大大减少,但是由于数据被进行高度的综合,使得数据的细节在综合中丢失。因此,定期综合文件的形式是牺牲数据的细节换取数据量级的减少。,2.3.4 数据仓库的数据组织形式,3.连续文件 定期综合文件数据量级小时丢失了数据细节,简单堆积文件保留细节但数据量级又很大,是否可以综合两者形式的优点呢?答案是肯定的。在简单堆积文件中,每天的数据表中有许多雷同的信息,如图2-29所示的某商场2001/1和2001/2的两张采购表,其中“牙膏”和“毛巾”在两个表都出现了。“牙膏”在2001/1是从上海购买的,而2001/2是在北京购买,其他的信息都相同。如果能够记录两表之间不同的信息,则既能保留细节信息,又能大大减少数据量。,2.3.4 数据仓库的数据组织形式,图2-30中显示了对两张表使用连续文件的形式进行存储的结果。对于两个表中相同的表项“毛巾”,只需在时间列上说明使用范围是“2001/12001/2”,对于两表不同的表项分别记录。,2.3.4 数据仓库的数据组织形式,随着时间的推移,如果又有新的数据表加入,则我们可以使用连续文件和新的数据表进行类似的处理,以达到“两全其美”的目的。如图2-31所示,我们将2001年1月2001年2月的连续文件和2001年3月的新文件进行综合,而后得到2001年1月2001年3月的连续文件。但是,我们应当指出:连续文件增加的“时间”列也会为查询带来一定的不便。一个系统某些性能的提高,总是通过牺牲其它的性能来获得的。,2.3.5 数据仓库的数据追加技术,数据的组织结构和数据的组织形式解决的是数据仓库数据的存储问题。数据追加是从数据库角度提出的,它解决的是在数据仓库初始数据加载后,如何再向数据仓库添加数据的问题。如果数据库中的数据没有发生变化,则不需要对数据仓库进行追加,因此,数据追加实际上只增加在上次数据输入后数据库中变化了的数据。要完成数据追加的工作,最关键的是“捕捉”数据变化,并将数据的变化记录下来。,2.3.5 数据仓库的数据追加技术,1.时标法 最早提出“时标法”的思想是为数据记录增加一个时间标记。当数据在上次数据导入完成后发生变化,则修改这条记录的时间标记。如图2-32所示,在完成2001/1的数据导入工作后,2001/1/2日数据条目(2001/1/1,1,牙膏,上海)发生了变化,这样在执行2001/1/2的数据导入的工作时,数据库会将检索到具有新时间标记的条目(2001/1/2,1,牙膏,北京)作为数据追加的内容。,2.3.5 数据仓库的数据追加技术,但是,在日常业务的数据库系统中,通常没有专门的时间标记。数据库应用的设计者主要是从事务处理的功能角度来考虑问题,因此,数据库应用的设计者通常不会增加时间标记列,因为该列对于事务处理系统来说是不必要的。由于这些原因,时标法虽然简单,很难得到应用。,2.3.5 数据仓库的数据追加技术,2.前后映像比较法 另一种简单的方法是前后映像比较法,其想法很简单:将上次执行完数据追加任务的数据库快照记录下来,同要执行新的数据追加任务前的数据库快照进行比较,比较这两次快照的不同,来生成追加的内容。如图2-33所示。,2.3.5 数据仓库的数据追加技术,这种方法简单,但是如果数据库的数量级很大,进行这样全数据的比较将会耗费大量的系统资源和时间,所以这种方法并不实用。,2.3.5 数据仓库的数据追加技术,3.DELTA文件法 后来,人们又提出了从应用程序来感知数据变化的方法“DELTA文件法”。其基本思想是:数据的变化是由数据库应用程序引发的,因此数据库应用程序应当知道它修改了哪些数据,应用程序可以将它执行成功的修改操作记录下来,形成DELTA文件作为追加的内容,如图2-34所示。数据库的应用程序主要是为了完成事务处理而设计的,要使所有的应用程序都支持DELTA文件的功能在实际的工程应用中很难,因此,这种方法也没有得到实用化。,2.3.5 数据仓库的数据追加技术,4.日志文件法 DELTA文件视图从能够感知数据变化的应用程序来生成追加文件,这种想法是很巧妙,但是它没有考虑到应用系统常常是由不同的软件开发商开发的,因此很难对其进行统一的规范。如果更进一步考虑能够感知数据变化的软件实体,就能够得到更好的答案。我们知道,各个应用程序都是通过同数据库服务器进程通信来实现其数据访问功能,最终数据的访问和处理工作是由数据库服务器来承担,因此数据库服务器能够感知数据的变化。如果数据库开启了系统日志,数据库服务器将会把它所执行的所有操作详细地记录下来。我们可以通过分析数据库日志来获取数据变化的情况,如图2-35所示。,2.3.5 数据仓库的数据追加技术,2.3.5 数据仓库的数据追加技术,在图2-36中我们示意了一段简化了的系统日志,它包含操作时间、操作人员、操作内容、操作结果(包括正确和错误)等基本信息。我们可以通过对数据追加任务完成后新生的系统日志进行分析,得到追加内容。,2.3.5 数据仓库的数据追加技术,例如,对于条目“2001/1/1:9:01:LiMing SELECT*FROM user WHERE user_id100;”我们可以忽略,因为它执行的是查询操作而不是对数据进行修改。对于条目“2001/1/1:9:00:LiMing UPDATE user.name=林冲WHERE user_id=100;”,数据库用户LiMing将100号客户name修改为林冲,但是我们发现后面的条目“2001/1/1:9:00:sa UPDATE user.name=林胜之WHERE user_id=100;”,sa将100号客户name修改为林胜之,我们只需将条目“2001/1/1:9:02:sa UPDATE user.name=林胜之WHERE user_id=100;”引起的变化记录下来即可。由此,可以知道并不是日志文件中所有的信息都是必须的,通过分析日志文件可以减少工作量。虽然日志文件法需要对日志本身进行比较复杂的分析,但是由于它能够极大程度的减少工作量,所以得到了广泛的应用。,2.3.6 清理数据仓库的数据,同任何系统一样,数据仓库系统中的数据也具有自身的生命周期,数据仓库系统并不是只装载数据而不清除数据的系统。数据清理是数据仓库设计人员需要重点考虑的问题之一。数据仓库的清理与普通系统中清理的含义有区别。在普通的系统中,数据清理意味着将数据删除。而数据仓库系统中清理并不是简单地删除,而是从细化级别的数据逐渐上升为高级综合度的数据,直到数据已经不再具备任何意义时被清除的过程。,2.3.6 清理数据仓库的数据,数据仓库中清理的过程如下:u 数据从操作型环境进入分析型环境;u 数据从细节数据逐渐转换为综合数据;u 数据失去实际意义,最终被清除;这个过程实际上也是数据在数据仓库中的生命周期。,2.4 数据仓库建设的两条技术路线,在讨论数据仓库建设技术路线的问题之前,我们首先将数据仓库的层次关系同企业管理结构的层次关系做一些对比。企业机构按照职能从低到高可分成基层操作管理,中层管理和高层管理。基层管理又称为操作管理,其主要任务是一般日常业务处理,其工作主要使用的是操作型环境。中层管理不仅包含一般的业务处理,还需要进行简单的分析,作出一般的决策,这些决策不同于高层决策,它们只面向具体部门,只考虑部门的短期发展趋势。因此,它们的决策通常不需要全局的数据。另外,从信息保密的角度考虑,让相关人员只能看见他需要了解的信息是必要的。,2.4 数据仓库建设的两条技术路线,高层管理的主要任务是进行企业发展的战略性决策分析,这需要经过复杂的分析加工,不但需要企业内部的信息,还需要从外部数据源补充信息。由于高层决策人员的数据量相对较少,每个人的决策习惯和角度可能不同,因此,为高层决策人员建立相对的决策支持是必要的。如图2-37所示的是不同人员对信息的不同需求。,2.4 数据仓库建设的两条技术路线,通过上面的分析,我们可以知道在企业中,数据处理的要求是多层次的,这就需要数据仓库的多层次化来与之配合,使企业中的不同人员能够获得其需要的数据,各尽其职,同时又能做到信息保密。部门级的局部数据仓库面向的是中层管理人员,它通常是从全局数据仓库中抽取部门相关信息建立起来的。个人级的数据仓库适合高层决策者使用,它具有很高的权限,并且可以从各个数据仓库、全局数据仓库中抽取数据。管理层与数据仓库的对应关系如图2-38所示。,2.4 数据仓库建设的两条技术路线,2.4 数据仓库建设的两条技术路线,在建立数据仓库层次性的概念后,一种直观的建设方法是“自顶向下”。首先建立全局级的数据仓库,然后从全局的数据仓库中为各个部门抽取必要的数据建立部门级数据仓库,最后建立个人级数据仓库。这种方法对于维护全局数据的一致性非常有利。所有的数据在进入全局数据仓库后都进行了清洗和整理,而后才分发到各个局部数据仓库中,数据的一致性只需在全局数据仓库的入口处做工作。,2.4 数据仓库建设的两条技术路线,但是,在实际的工程中,企业现有的业务系统很多,并且在建设数据仓库之初,企业人员本身很难提出比较清晰的需求,而负责建立数据仓库的技术人员对于企业决策方面的知识了解不足,这使得数据仓库的需求难于确定。即使需求确定,对于大型企业来说,要一步建立一个全局级的大规模数据仓库,项目实施的周期和难度将很长,并且投资大、风险高。实践证明,“自顶向下”的建设方法对于大型数据仓库系统并不适合。后来,通过人们的不断摸索,逐渐总结出了“自低向上”的建设方法,即首先建立一个或少数几个数据集市(局部数据仓库),随着项目的发展再逐渐推进,最后从各个数据集市中再次进行数据抽取建立全局数据仓库,如图2-39所示。,2.4 数据仓库建设的两条技术路线,关于数据仓库项目的规划和建设策略,我们在后续章节中将继续讨论,这是数据仓库项目中极为关键的问题,这个问题解决得好与坏,会影响这个项目的成败。,2.5 操作数据存储ODS,2.5.1 ODS的概念 数据仓库概念的提出使操作型处理和分析型处理得到了分离,从而形成了DB-DW两层体系结构。但是,企业中有时还会遇到介于操作型处理和分析型处理之间的问题。以超市采购为例,采购部经理要确定进货清单,需要了解商品存货是否充足,需要了解商品近期的销售情况,还需

    注意事项

    本文(数据仓库基本原理.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开