数据仓库技术DataWarehouse薛涛2008.9.8提纲数据仓库技术的产生数据仓库的定义和特征数据仓库中的数据组织数据的粒度数据仓库的数据组织结构数据的分割数据仓库的数据组织模式ETL数据集市OLAP定义和实例OLAP的多维数据分析OLTP与OLAP数据仓库系统(DWS)1数据仓库技术的产生数据仓库(DataWarehouse)技术完全是在决策需求的驱动下产生与发展起来的。“数据太多,信息不足”的现状异构环境的数据的转换和共享利用数据进行数据处理转换为利用数据支持决策操作型数据库无法满足决策支持系统对数据库系统的要求专为决策服务的数据库系统称为数据仓库(DataWarehouse,简称DW)。2.1数据仓库的定义以1992年W.H.Inmon出版《BuildingtheDataWarehouse》为标志,数据仓库速度发展起来,Inmon也被誉为“数据仓库之父”。W.H.Inmon对数据仓库的定义是:“数据仓库是支持决策过程的、面向主题的、集成的、随时间变化的、持久的数据集合。2.2数据仓库的特征是面向主题(Subject-Orientation)的;数据仓库是集成(Integration)的;数据仓库是稳定/非易失性(Nonvolatile)的;是随时间变化(TimeVagrancy)的;是信息的概括和聚集。3数据仓库中的数据组织3.1数据的粒度3.2数据仓库的数据组织结构3.3数据的分割3.4数据仓库的数据组织模式3.5数据的追加3.1粒度粒度——是指数据仓库的数据单位中保存数据的细化或总合程度的级别。细化程度越高,粒度级就越小;细化程度越低,粒度级就越大。粒度——细节的级别粒度的划分决定了数据仓库中数据量的大小和查询的详细程度。多重粒度粒度的一个例子高细化低细化每月200个记录每月40,000个字节每月一个记录每月200个字节通过检索可以回答无细节无法回答询问某一电话的细节3.2数据仓库的数据组织结构元数据高度综合级轻度综合级(数据集市)销售细节级2000-2001操作型转换早期细节级每月销售1994-2001每周销售1994-2001当前细节级销售细节级1994-19993.3分割分割——将当前细节数据分散到各自的物理单元中去以便能分别独立处理,以提高数据处理效率。分片——数据分割后的独立单元。数据的分割提高了数据管理的灵活性重构、索引、重组、恢复、监控分割的标准:日期、地域、业务领域。分割的一个例子分片9分片8分片72001分片6分片5分片42000分片3分片2分片11999事故保险生命保险健康保险3.4数据仓库的数据组织模式星型模式(starschema)雪花模式(snowflakeschema)混合模式事实表维量维表中间有一个单一表,沿半径向外连接到多个表是星型模式的扩展,每一个点都沿半径向外连接到多个点3.5ETL数据抽取、转换、装载(ETL)是建立数据仓库的重要步骤,需要花费开发数据仓库70%的工作量。数据抽取、转换和装载(ETL)数据仓库的数据来源于多个数据源,主要是企业内部数据;存档的历史数据;企业的外部数据。这些数据源可能是在不同的硬件平台上,使用不同的操作系统。源数据是以不同的格式存放在不同的数据库中。数据仓库需要将这些源数据经过抽取、转换和装载的过程,存储到数据仓库的数据模型中。可以说,数据仓库的数据获取需要经过抽取(Extraction)、转换(Transform)、装载(Load)三个过程即ETL过程。3.5.1数据抽取1.确认数据源2.数据抽取技术1.确认数据源列出对事实表的每一个数据项和事实列出每一个维度属性对于每个目标数据项,找出源数据项一个数据元素有多个来源,选择最好的来源确认一个目标字段的多个源字段,建立合并规则确认一个目标字段的多个源字段,建立分离规则确定默认值检查缺失值的源数据2.数据抽取技术当前值。源系统中存储的数据都代表了当前时刻的值。当商业交易时,这些数据是会发生变化的。周期性的状态。这类数据存储的是每次发生变化时的状态。例如,对于每一保险索赔,都经过索赔开始、确认、评估和解决等步骤,都要考虑有时间说明。3.5.2数据转换1.数据转换的基本功能2.数据转换类型3.数据整合和合并4.如何实施转换1.数据转换的基本功能选择:从源系统中选择整个记录或者部分记录。分离/合并:对源系统中的数据进行分离操作或者合并操作。转化:对源系统进行标准化和可理解化。汇总:将最低粒度数据进行汇总。清晰:对单个字段数据进行重新分配和简化。2.数据转换类型(1)格式修正(2)字段的解码(3)计算值和导出值(4)单个字段的分离(5)信息的合并(6)特征集合转化(7)度量单位的转化(8)关键字重新构造(9)汇总(10)日期/时间转化3.数据整合和合并数据整合和合并是将相关的源数据组合成一致的数据结构,装入数据仓库。(1)实体识别问题数据来源于多个不同的客户系统,对相同客户可能分别有不同的键码,将它们组合成一条单独的记录。(2)多数据源相同属性不同值的问题不同系统中得到的值存在一些差别,需要给出合理的值。4.如何实施转换自己编写程序实现数据转换使用转换工具3.5.3数据装载(1)数据装载方式(2)数据装载类型1.数据装载方式基本装载按照装载的目标表,将转换过的数据输入到目标表中去。追加如果目标表中已经存在数据,追加过程在保存已有数据的基础上增加输入数据。破坏性合并用新输入数据更新目标记录数据。建设性合并保留已有的记录,增加输入的记录,并标记为旧记录的替代。2.数据装载类型最初装载这是第一次对整个数据仓库进行装载。增量装载由于源系统的变化,数据仓库需要装载变化的数据。完全刷新这种类型的数据装载用于周期性重写数据仓库。3.5.4ETL工具数据转换引擎代码生成器通过复制捕获数据4.1数据集市的概念数据集市(DataMart)——具有特定应用的数据仓库,主要针对某个具有战略意义的应用或者具体部门级的应用,支持用户利用已有的数据获得重要的竞争优势或者找到进入新市场的具体解决方案。人力资源数据集市财务数据集市销售数据集市市场数据集市等4.2数据集市的种类独立的数据集市(IndependentDataMart),数据直接来源于数据源。从属的数据集市(DependeantDataMart),数据来源于中央的数据仓库。数据源数据源分析工具分析工具独立数据集市两种数据集市分析工具中央数据仓库数据源数据源从属数据集市分析工具分析工具5.1OLAP的定义联机分析处理是是一种软件技术,他使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。联机分析技术是共享多维信息的快速分析。—快速性5秒内作出反应—可分析性逻辑分析和统计分析—多维性支持多维表—信息性及时获取信息一个3维的模型,3个维为:部门,时间,销售。三维立方体,三维表OLAP实例时间部门销售19981999汽车家具服装销售量利润增长%5.2OLAP的多维数据分析切片和切块(sliceanddice)固定多维表的某一维或某几维,使一些列或行不显示。钻取(drill)各粒度级别(维的层次)之间的访问。Ж上钻(drillup)Ж下钻(drilldown)旋转(pivoting)平面数据的坐标轴转换。5.3OLTP与OLAPOLTP系统——联机事务处理On-LineTransactionProcessing事件驱动,面向应用。如:银行的储蓄系统OLAP系统——联机分析处理On-LineAnalyticalProcessing跨部门,面向主题。OLTP与OLAP对比面向分析,分析驱动面向应用,事务驱动面向决策人员,支持管理需要面向操作人员,支持日常操作用户数量相对较少用户数量大响应时间合理对响应时间要求高一次处理的数据量大一次处理的数据量小周期性更新经常更新历史数据当前数据综合性数据细节性数据数据库/数据仓库数据(分析型)数据库数据(操作型)OLAPOLTP6数据仓库系统(DWS)数据仓库系统=数据仓库(DW)+仓库管理+分析工具关系数据数据文件其它数据综合数据当前数据数据仓库管理工具抽取、转换装载元数据库数据建模工具历史数据用户查询工具C/S工具OLAP工具DM工具源数据仓库管理数据仓库分析工具参考书籍数据仓库(BuildingtheDataWarehouse)W.H.Inmon机械工业出版社数据仓库技术及联机分析处理王珊等编著科学出版社Q&A谢谢!决策支持系统对数据库系统的要求:详细数据与总结数据(summarydata)当前数据与历史数据数据源的异构性和分布性即时更新与按需更新联机事务处理OLTP与联机分析处理OLAP操作型数据与分析型数据操作型数据分析型数据细节的综合的在存取的瞬间是准确的代表过去的数据可更新不更新操作需求预先知道操作需求预先不知道事务驱动分析驱动面向日常业务应用面向分析决策一次操作数据量少一次操作数据量多对响应时间的要求高对响应时间的要求低2.1面向主题汽车人寿健康意外伤亡操作性环境应用顾客保险单保险费索赔数据仓库主题主题是数据归类的标准2.2集成数据库应用Am,f应用B1,0应用Cx,y应用D男,女数据仓库m,f编码应用A管道cm应用B管道inches应用C管道mcf应用D管道yds管道cm属性度量数据进入数据仓库之前,必须经过加工与集成应用A描述应用B描述应用C描述应用D描述应用Achar(10)应用Bdecfixed(9,2)应用Cpic‘9999999’应用Dchar(12)多重信息源描述char(12)冲突的键码集成操作性数据仓库JJones女1945年7月20日。。。。。JJones去年有两张罚单一次大事故。。。。。JJonesMain大街123号已婚。。。。。JJones两个孩子高血压。。。。。人寿保险汽车保险房产保险健康保险JJones女1945年7月20日出生去年两张罚单一次大事故已婚两个孩子高血压。。。。。。顾客2.3非易失性插入删除插入修改删除访问修改访问数据的逐个记录方式处理数据的批量载入/访问数据库数据仓库2.4随时间变化数据库数据仓库时间期限:当前到60—90天记录更新键码结构可能包括也可能不包括时间元素时间期限:5—10年数据的复杂快照键码结构包括时间元素粒度——细节的级别高细化——低粒度例如:一个顾客一个月内的每个电话的细节低细化——高粒度例如:一个顾客一个月内的电话的综合数据的分割难以管理容易管理分片3.3.1简单堆积文件1月1日1月2日1月3日……2月1日2月2日2月3日……3月1日3月2日3月3日……………………3.3.2轮转综合文件星期一星期二……星期天第一周第二周……第五周一月二月……十二月………………3.3.3简化直接文件数据库快照姓名顾客号地址张平C960100北京王珂C960101上海刘辉C960102天津李强C960103成都...一月份顾客表操作性数据生成简化直接文件3.3.4连续文件姓名顾客号地址张平C020100北京王珂C020101上海张顺C020102天津李强C020103成都姓名顾客号地址张平C020100北京王珂C020101上海张顺C020101广州李强C020103成都刘诚C020105杭州姓名顾客号日期地址张平C0201001-2月北京王珂C0201011-2月上海张顺C0201031月天津张顺C0201032月广州李强C0201031-2月成都刘诚C0201052月杭州1月份顾客表2月份顾客表1-2月份顾客表元数据(Metadata)元数据——关于数据的数据,它描述了数据的结构、内容、码、索引等。元数据的内容不仅为数据仓库的创建提供必要的信息、描述和定义,还为DSS分析人员访问数据仓库提供直接的或辅助的信息。数据仓库中元数据必须包含的内容数据仓库的主题描述:主题名、主体的公共码键、有关描述信息等外部数据和非结构化数据的描述:外部数据源名、存储地点、存