系统分析与设计2019/8/1第三章第三章数据仓库的数据存储与处理系统分析与设计2019/8/1第三章数据查询CLAP工具CLAP工具经营数据外部数据详细信息集合信息元数据仓库管理器加载管理器查询管理器信息数据决策3.1数据仓库组成系统分析与设计2019/8/1第三章数据仓库的管理器•加载管理器执行程序:抽取与加载程序功能:抽取并加载数据、在加载数据之前与进行中执行简单的转换•仓库管理器执行程序:数据整理与转换程序、备份与备存程序功能:转换并管理数据仓库数据、备份与备存数据•查询管理器执行程序:查询管理程序功能:引导并管理数据仓库的查询系统分析与设计2019/8/1第三章加载管理器•功能支持数据抽取与加载•实现途径(1)外购的软件工具(2)针对特殊要求而编写程序、存储过程以及脚本文件系统分析与设计2019/8/1第三章加载管理器加载控制器控制程序存储程序数据拷贝管理工具快速加载程序暂时数据存储所数据仓库结构文件结构系统分析与设计2019/8/1第三章加载管理器建议用户尽量选用适合的软件工具来协助进行整个加载管理的工作;但是,因为源数据的特性存在很大的差异,数据仓库中加载管理器的功能无法一致,所以不可能完全使用外购的软件工具,而必须自行设计针对特殊需要而编写的程序、存储过程或是脚本文件。系统分析与设计2019/8/1第三章加载管理器的具体功能•抽取来自源系统的数据•将抽取的数据快速加载临时保存介质•执行简单的数据转换任务•将转换后数据加载至与数据仓库类似的数据结构之中系统分析与设计2019/8/1第三章仓库管理器•功能执行管理一个数据仓库所需的必要程序•实现途径(1)外购的系统管理工具(2)针对特殊需要而编写的程序以及脚本文件•复杂度因自动化的程度而异系统分析与设计2019/8/1第三章仓库管理器仓库控制器控制程序SQL脚本备份/还原工具存储方式暂时数据存储所星型、雪花型摘要集合表格系统分析与设计2019/8/1第三章仓库管理器的具体功能•检验各字段相互之间的关系与一致性•将临时保在存储介质中的数据转换与合并,然后加载至数据仓库•对数据仓库数据添加索引、视图、数据分区•根据需要进行数据的标准化•根据需要生成新的集合信息•更新已有的集合信息•备份数据仓库(完整或是递增式)•备存数据仓库中过时的数据(另存至其它存储介质)系统分析与设计2019/8/1第三章查询管理器•功能执行管理数据仓库系统中所有查询工作的相关处理程序。•实现途径(1)外购调度软件(2)使用用户存取工具(3)数据仓库系统所提供的系统监控工具(4)数据库管理系统所提供的管理工具(5)针对特殊需要而编写程序以及脚本文件•复杂度视数据仓库系统而定。系统分析与设计2019/8/1第三章查询管理器查询管理器查询向导存储过程查询管理工具查询调度元数据事实数据与维度数据集合数据工作站工作站工作站系统分析与设计2019/8/1第三章查询管理器的具体功能•将查询引导至正确的表•实现客户查询的调度查询管理器将把查询统计分析的结果存入查询概述文件,供仓库管理器使用,以决定为哪些项目执行数据集合的工作。系统分析与设计2019/8/1第三章3.2数据粒度定义粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。粒度深深地影响存放在数据仓库中数据量的大小,同时影响数据仓库所能回答的查询类型。在数据仓库中的数据粒度与查询的详细程度之间要做出权衡。系统分析与设计2019/8/1第三章3.2数据粒度当提高粒度级别时,数据所能回答查询的能力会随之降低。换言之,在一个很低的粒度级别上,几乎可以回答任何问题,但在高粒度级别上,数据所能处理的问题的数量是有限的。系统分析与设计2019/8/1第三章左图是一个低粒度级,每个活动(在这里是一次电话)被详细记录下来,数据的格式如图所示。到月底每个顾客平均有200条记录(全月中每个电话都记录一次),因而总共需要40000个字节;右图的边是一个高粒度级。数据代表一位顾客一个月的综合信息,每位顾客一个月只有一个记录,这样的记录大约只需200个字节。系统分析与设计2019/8/1第三章问题:“上星期某某顾客是否给某某人打了电话?”在低粒度级别上,完全可以回答这一问题,虽然这种回答将花费大量资源去查询大量的记录,但是问题结果是可以确定的。在高粒度级别上,则无法明确地回答这个问题。假如在数据仓库中存放的只是所打电话的总数,那么就无法确定其中是否有一个电话是打给某人的。系统分析与设计2019/8/1第三章3.3数据模型数据模型是对现实世界的一种抽象,根据抽象程度的不同,可形成不同抽象层次上的数据模型。与数据库的数据模型相类似,数据仓库的数据模型也分为三个层次:概念模型逻辑模型物理模型系统分析与设计2019/8/1第三章•概念模型客观世界到计算机系统的一个中间层次,它最常用的表示方法是E-R法(实体-关系)。目前,数据仓库一般是建立在关系型数据库的基础之上,所以其概念模型与一般关系型数据库采用的概念模型相一致。3.3数据模型系统分析与设计2019/8/1第三章•逻辑模型指数据的逻辑结构,如多维模型、关系模型、层次模型等。数据仓库的逻辑模型描述了数据仓库的主题的逻辑实现,即每个主题对应的模式定义。3.3数据模型系统分析与设计2019/8/1第三章•物理模型是逻辑模型的具体实现,如物理存取方式、数据存储结构、数据存放位置以及存储分配等。在设计数据仓库的物理模型时,需要考虑一些提高性能的技术,如表分区,建立索引等。3.3数据模型系统分析与设计2019/8/1第三章目前,对数据仓库模型的讨论大多集中在逻辑模型,其中最常用的是多维模型。维人们观察数据的特定角度。例如,企业常常关心不同销售数据随时间的变化情况,所以时间就是一个维;维的层次人们观察数据的某个特定角度还可以存在细节程度不同的多个描述,这就是维的层次。一个维往往有多个层次,比如描述时间维时,可以从年份、季度、月份、天等不同层次来描述,那么年份、季度、月份和天就是时间维的层次;3.3数据模型系统分析与设计2019/8/1第三章维成员维的一个取值称为该维的一个成员。如果一个维是多层次的,那么该维的成员就是在不同层次取值的组合。例如时间维分为年、月和天三个层次则分别在其上各取一个值组合起来即得到日期维的一个成员,即“某年某月某日”;度量描述了要分析的数值,例如话费、用户数量等;3.3数据模型系统分析与设计2019/8/1第三章•数据仓库的数据模型星型结构雪花型结构星型雪花型结构•数据仓库的数据=事实数据+维度数据不论是星型、雪花型或者是星型雪花型结构都是以事实表为中心。不同点只是在外围维度表相互之间的关系不同而已。3.3数据模型系统分析与设计2019/8/1第三章•星型架构的维度表只会与事实表生成关系,维度表与维度表之间并不会生成任何的关系。•雪花型架构描述可合并在一起使用的维度数据。3.3数据模型系统分析与设计2019/8/1第三章星型结构的实例time_keydayday_of_the_weekmonthquarteryeartimelocation_keystreetcityprovince_or_streetcountrylocationSalesFactTabletime_keyitem_keybranch_keylocation_keyunits_solddollars_soldavg_salesMeasuresitem_keyitem_namebrandtypesupplier_typeitembranch_keybranch_namebranch_typebranch系统分析与设计2019/8/1第三章雪花结构的实例time_keydayday_of_the_weekmonthquarteryeartimelocation_keystreetcity_keylocationSalesFactTabletime_keyitem_keybranch_keylocation_keyunits_solddollars_soldavg_salesMeasuresitem_keyitem_namebrandtypesupplier_keyitembranch_keybranch_namebranch_typebranchsupplier_keysupplier_typesuppliercity_keycityprovince_or_streetcountrycity系统分析与设计2019/8/1第三章星型雪花型结构的实例time_keydayday_of_the_weekmonthquarteryeartimelocation_keystreetcityprovince_or_streetcountrylocationSalesFactTabletime_keyitem_keybranch_keylocation_keyunits_solddollars_soldavg_salesMeasuresitem_keyitem_namebrandtypesupplier_typeitembranch_keybranch_namebranch_typebranchShippingFactTabletime_keyitem_keyshipper_keyfrom_locationto_locationdollars_costunits_shippedshipper_keyshipper_namelocation_keyshipper_typeshipper系统分析与设计2019/8/1第三章将原来业务系统的数据经过抽取、转换、加载到数据仓库所在的中心存储库的过程称为ETL(Extraction,TransformationandLoading)过程,制定这个过程的策略称之为ETL策略,而完成ETL过程的工具则是ETL工具。相对于数据仓库中的表而言,业务系统数据库中的表称为源表,业务系统数据库称为源数据库,数据仓库中所有的数据都来自于业务系统数据库。在打造一个数据仓库的过程中,ETL的实施是一项繁琐、冗长而艰巨的任务,因为它关系到数据仓库中数据的质量问题,如果导入的数据漏洞百出,对决策者来说无疑是个噩耗。ETL过程是搭建“数据仓库”时最重要的和最易误解的步骤之一。3.4ETL系统分析与设计2019/8/1第三章ETL过程不仅仅是数据的迁移(Migration)或净化(Cleansing),也应该是企业数据管理策略中不可缺少的一部分。ETL过程的功能是:发现数据仓库需要的数据,将其从源系统中抽取出来,并进行一定的处理,然后装载到数据仓库中去。1.7ETL系统分析与设计2019/8/1第三章ETL功能-提高数据质量•数据清洁–补充缺失值,平滑噪声数据,识别与删除异常数据以及有效解决数据的一致性问题•数据集成–多个数据库、数据立方体或文件的数据整合•数据转换–实现数据的归一化•数据简化–在不影响分析结果的前提下,缩减数据量•数据离散化–对于数值型数据可通过取样实现离散化以降低数据量系统分析与设计2019/8/1第三章ETL功能-提高数据质量系统分析与设计2019/8/1第三章ETL功能-搭建数据仓库现有数据的特点–分散的–非整合的–难以访问的–多种的数据源–多种的平台–低劣的数据质量–冗余的数据–难于理解–不能分析–数据量很大,甚至是海量的LegacyApplicationsVSAMIDMSIMSCICSCOBOLMultimediaDocumentsERPApplicationsGroupwareDatabasesWebOperationalActivities系统分析与设计2019/8/1第三章ETL功能-搭建数据仓库•“数据仓库”中的信息为战略经营提供决策支持–整合的–便于多维分析和报表–根据历史信息预测未来的发展趋势WarehouseStorageDataWarehouseODSWarehouseDelivery&Access系统分析与设计20