1、Principles and Applications of Business IntelligenceChap 8: 数据仓库 1Introduction to商务智能方法与应用第8章 数据仓库Chapter 8: Data WarehousingPrinciples and Applications of Business IntelligenceChap 8: 数据仓库 2主要内容 8.1 数据仓库的基本概念 8.2 数据仓库的体系结构 8.3 多维数据模型 8.4 数据仓库项目的开发Principles and Applications of Business Intelligence
2、Chap 8: 数据仓库 38.1 数据仓库的基本概念Principles and Applications of Business IntelligenceChap 8: 数据仓库 4构建数据仓库的动机 数据的积累.- 操作型系统(operational system):辅助企业业务运营的信息系统,极大地提高了企业的运营效率,是企业日常运作系统不可分割的组成部分- 传统的操作数据库系统是基于任务需求的联机事务处理和批处理,利用它可以将商业过程自动化,从而提高工作效率。同时也积累了数据 探索有价值的信息的需求- 只有自动化是不够的,效率不再是商场上取胜的唯一关键,灵活性和敏感性也是竞争中取胜的
3、重要因素。Principles and Applications of Business IntelligenceChap 8: 数据仓库 5现有系统存在的问题 信息系统的垂直分割 (象垂直的烟囱管) 应用(用户)驱动的操作型系统的开发销售管理财务生产.销售计划库存管理.供应商.债务管理.库存管理统一存取数据Integration System 收集并合并信息 提供集成的视图,统一的用户界面 支持共享WorldWideWebDigital LibrariesScientific DatabasesPersonalDatabasesPrinciples and Applications of B
4、usiness IntelligenceChap 8: 数据仓库 7解决方法1数据源数据源数据源. . .集成系统. . .元数据用户WrapperWrapperWrapperv基于查询驱动的方法 (lazy, on-demand)Principles and Applications of Business IntelligenceChap 8: 数据仓库 8基于查询驱动的方法 缺点- 查询处理的延迟有的信息源系统的查询处理本身慢复杂的过滤和数据集成- 对于频繁的查询效率低- 与各系统的操作环境竞争资源 优点Principles and Applications of Business In
5、telligenceChap 8: 数据仓库 9解决方案2:数据仓库用户数据源数据源数据源. . .Extractor/Monitor集成系统. . .元数据Extractor/MonitorExtractor/Monitorv数据事先集成到一起v集成的数据物理存放在数据仓库中,可以进行直接的查询和分析Principles and Applications of Business IntelligenceChap 8: 数据仓库 10数据仓库:优势 查询性能提高 与源数据所在系统隔离,因而不会妨碍源系统的性能- 在数据仓库中进行复杂的查询- 数据源所在系统进行联机事务处理 数据仓库中的数据-
6、对源数据进行一定的聚集运算,统一表示方法- 可以是历史数据,定期进行刷新Principles and Applications of Business IntelligenceChap 8: 数据仓库 11什么是数据仓库 数据仓库最早由美国计算机科学家William H. Inmon于1991年提出,他也因此被称为“数据仓库之父”。他对数据仓库的定义是:“- 数据仓库是一个面向主题的(subject-oriented)、- 集成的(integrated)、- 随时间变化的(time-varying)、- 稳定的(non-volatile)- 用于支持组织决策的数据集合。”Principles
7、and Applications of Business IntelligenceChap 8: 数据仓库 12面向主题 面向主题的数据。主题对应企业中某一宏观分析领域所涉及的分析对象,- 例如,对于保险公司,客户、保单、索赔、产品、销售等都可以作为一个主题。- 面向主题的数据需要将与一个主题有关的各方面的数据进行集成,提供有关该主题的一个完整的统一的数据及其之间联系的描述。Principles and Applications of Business IntelligenceChap 8: 数据仓库 13集成 为提供有关一个主题的完整信息,需要从企业内部(操作型系统)及外部抽取数据并进行综合
8、 需解决的问题- 数据的编码、命名等在不同的数据源中各不相同- 集成到数据仓库中时需要进行转换 操作型环境 数据仓库性别 集成应用1:f, m应用2: 1, 0 f, m应用3: 男,女Principles and Applications of Business IntelligenceChap 8: 数据仓库 14随时间变化的数据 操作型系统中的数据通常存储的是当前的数据或少量历史数据 数据仓库需要存储当前以及过去的一段时间内的历史数据 数据仓库中的数据通常都有一个时间维度 DW中通常存放 (510 年)内的历史数据,远远长于操作型数据库中的数据 (2 3 月).Principles an
9、d Applications of Business IntelligenceChap 8: 数据仓库 15稳定的数据 操作型环境的数据通常要进行频繁地数据更新操作 数据仓库中的数据通常是稳定的,定期进行分批载入或刷新,不进行数据库环境中一般意义上的增、删、改。 由于数据仓库中的数据通常只是被读取,因此不需要复杂的事务处理Principles and Applications of Business IntelligenceChap 8: 数据仓库 16数据集市(data mart) 数据集市是一种部门级的数据仓库,它包含的数据量较少,是面向一个部门的分析需求而建立的- 提供更快速的数据访问-
10、 便于控制信息的访问权限Principles and Applications of Business IntelligenceChap 8: 数据仓库 178.2 数据仓库的体系结构Principles and Applications of Business IntelligenceChap 8: 数据仓库 18数据源和ETL工具 数据源部分包括企业内务部数据- 企业内部,操作型系统中的数据以及已经存档的数据- 企业外部,竞争对手及行业统计数据、地理区域的人口统计数据,社会媒体的数据等 ETL工具:抽取(Extraction)、转换(Transform)和加载(Load)- 从不同的数据源
11、把需要的数据读取出来就是抽取过程- 转换过程主要涉及数据清洗、数据集成和数据汇总等主要功能- 加载过程分成两种情况:初始导入和定期加载Principles and Applications of Business IntelligenceChap 8: 数据仓库 19元数据(meta data) 是对数据仓库中数据的描述信息。元数据相当于数据库系统中的数据字典。 它主要描述三方面的信息:- 数据源数据信息、数据抽取与转换方面的信息以及数据仓库中的数据信息。- 数据源数据方面的元数据记录各个数据源数据的格式,从中抽取的数据的属性名、类型、长度等信息。- 数据抽取与转换方面,主要记录数据的抽取频率
12、、抽取方法以及数据的转换方法,Principles and Applications of Business IntelligenceChap 8: 数据仓库 208.3 多维数据模型Principles and Applications of Business IntelligenceChap 8: 数据仓库 218.3 多维数据模型 8.3.1 多维数据模型的概念 8.3.2 多维数据模型的构建方法Principles and Applications of Business IntelligenceChap 8: 数据仓库 22多维数据模型 多维数据模型(multidimensional
13、 data model):- 上世纪六十年代:通用磨坊(General Mills)公司和美国达特茅斯学院 (Dartmouth College)- 它是一种从业务分析的角度来对数据进行逻辑建模的方法,具有简单、易于理解、方便查询等优点,因而是一种常用的数据仓库建模方法产品产品?谁销售谁销售?时间时间?多少多少?地点地点?Principles and Applications of Business IntelligenceChap 8: 数据仓库 23多维数据模型 又称维度数据模型(dimensional data model),由维度表(dimension table)和事实表(fact
14、table)两种类型的表构成Principles and Applications of Business IntelligenceChap 8: 数据仓库 24事实表 度量:衡量业务性能的指标- 2个度量:销售量和销售额 维度属性:考察度量的一个视角、方位- 时间、商品编号、连锁店号和地点编号 粒度:维度属性综合起来限定了度量的取值粒度。- 如果时间编号对应的是一次交易的时间,则该事实表中的度量的粒度是针对发生在某地理位置的某个连锁店内一个商品在一次交易中的销售记录。Principles and Applications of Business IntelligenceChap 8: 数据仓
15、库 25可加性度量 度量通常是数值型属性,便于进行汇总计算。度量最好具有可加性(additive)。具有可加性的度量针对事实表中的任一维度都可以做加和- 如:销售量时间商品编号 连锁店号地点编号销售量2013-1-11011号店地点122013-1-11021号店地点1102013-1-11013号店地点312013-1-11011号店地点152013-1-21022号店地点25Principles and Applications of Business IntelligenceChap 8: 数据仓库 26时间商品编号 连锁店号地点编号销售量2013-1-11011号店地点172013-1
16、-11021号店地点1102013-1-11013号店地点312013-1-21022号店地点25时间连锁店号地点编号销售量2013-1-11号店地点1172013-1-13号店地点312013-1-22号店地点25时间商品编号地点编号销售量2013-1-1101地点172013-1-1102地点1102013-1-1101地点312013-1-2102地点25时间商品编号连锁店编号销售量2013-1-11011号店72013-1-11021号店102013-1-11013号店12013-1-21022号店5可加性度量Principles and Applications of Busines
17、s IntelligenceChap 8: 数据仓库 27半可加性 有些度量具有半可加性,即对于部分维度具有可加性,对于另外一些维度不具有可加性。日期账号支行号账户余额2003-2-2810001支行120002003-3-3110001支行110002003-2-2810002支行1100002003-3-3110002支行150002003-2-2810003支行210002003-3-3110003支行25000Principles and Applications of Business IntelligenceChap 8: 数据仓库 28不可加性度量 有些度量不具有可加性,即对于事
18、实表中的任一维度都不能加和汇总时间商品编号商店号利润率2013-1-11011号店10%2013-1-11021号店20%2013-1-11013号店12%2013-1-21022号店15%Principles and Applications of Business IntelligenceChap 8: 数据仓库 29维度表 维度表中每个属性都是对事实表中相应维度的描述信息,通常为定性属性- 这些属性使得度量的含义更容易理解,用于表达查询条件、分组条件以及制作报表。- 数量通常很多,几十个,甚至上百个都比较常见- 维度表中的属性名通常不要缩写,而是采用便于最终用户理解的名字- 如果属性取值
19、中包含多个隐含的含义,例如,如果商品编号隐含商品的类别,则将隐含的信息抽取,单独作为属性- 允许有一定程度的冗余存在,换来的是查询效率的提高以及查询表达更加容易Principles and Applications of Business IntelligenceChap 8: 数据仓库 30多维模型 将事实表和维度表组合起来- 星型模式(star schema)- 雪片模式(snowflake schema)- 事实星座(fact constellation)Principles and Applications of Business IntelligenceChap 8: 数据仓库 31
20、星型模式 最常用Principles and Applications of Business IntelligenceChap 8: 数据仓库 32雪片模式 减少冗余Principles and Applications of Business IntelligenceChap 8: 数据仓库 33事实星座Principles and Applications of Business IntelligenceChap 8: 数据仓库 348.3.2 多维数据模型的构建方法 多维数据模型的构建过程分为四个步骤:1. 选择业务过程或主题2. 选择粒度3. 确定维度4. 确定度量Principle
21、s and Applications of Business IntelligenceChap 8: 数据仓库 35选择业务过程或主题 选择标准有两个:- 一个是该业务过程或主题存在需要迫切解决的问题,问题的解决有助于提升业务- 第二个标准是该业务过程积累了一定的数据,可以作为数据仓库的来源。 典型的业务过程包括:销售、采购、库存和物流等Principles and Applications of Business IntelligenceChap 8: 数据仓库 36选择粒度 选择事实表中每行取值的粒度。粒度反映了度量取值的粗细程度,分为三种类型:- 交易事实表(transaction fa
22、ct tables)- 周期快照事实表(periodic snapshot fact table)- 累积快照事实表(accumulating snapshot fact table)Principles and Applications of Business IntelligenceChap 8: 数据仓库 37不同粒度的事实表 交易事实表是最细粒度的事实表,它的每一行记录了一个瞬间发生的事件的相关信息。 周期快照事实表比交易事实表的粒度粗,它按照一定的周期,记录每个周期末的状态。- 例如,设定周期为天,则库存事实表中的每一行对应的是每天结束后每个产品在每个仓库的库存量 累积快照事实表是最
23、粗粒度的事实表。它记录的是与事物或客户相关的整个生命周期内的主要事件的相关信息,这些事件是事先已知可能发生的。- 例如,有关订单的事实表,表中的一行可以记录一个产品从下订单,到生产制造、到库存、到货运等各个环节的主要信息Principles and Applications of Business IntelligenceChap 8: 数据仓库 38确定维度 确定事实表中的一行涉及的维度有哪些。通常,粒度确定之后,维度基本确定。粒度越细,维度越多。维度通常涵盖事件发生的时间、地点、主体(事物或人)、原因以及如何发生等方面的角度。- 例如,交易型的销售事实表涉及的维度包括时间、地点、商品、顾客
24、、促销类型等等维度Principles and Applications of Business IntelligenceChap 8: 数据仓库 39确定度量 度量是用于衡量业务性能的指标,通常业务人员对此非常熟悉。- 例如,衡量销售业绩的指标是销售量、销售额等。属于一个事实表中的各个度量的粒度必须相同。Principles and Applications of Business IntelligenceChap 8: 数据仓库 40案例 某国际零售连锁集团在世界各地几十个国家设有零售连锁店,在中国设有上百家零售超市,与千余家供应商有供货关系。为了更好地进行业务决策,集团决定构建数据仓库,
25、在采购、销售、物流等业务过程中经过分析,确定销售是当前最迫切需要进行数据分析的业务过程,近期商品在定价方面屡遭顾客投诉,影响了销售业绩。为此针对这一主题先构建多维数据模型Principles and Applications of Business IntelligenceChap 8: 数据仓库 41业务过程和事实表粒度 销售过程有大量的数据记录,顾客购买的每一件商品都通过POS系统记录下来。特别地,很多顾客持有会员卡。通过分析这一业务过程,目的在于分析商品在什么地理区域、在什么促销手段下、在什么时间、被什么样的顾客购买 选定业务过程之后,需要选择事实表粒度。为了提供最大的灵活性,粒度选择交
26、易事实表类型。这样,可以提供最丰富的维度信息,也为数据分析提供最大的灵活性。因此,在本例中,顾客每次购物小票上的每个商品记录对应事实表中的一行Principles and Applications of Business IntelligenceChap 8: 数据仓库 42维度和度量 维度的确定一方面取决于事实表的粒度,同时还取决于分析的目标。前面提到构建此模型的目的在于分析商品在什么地理区域、在什么促销手段下、在什么时间、被什么样的顾客购买。因此维度包括商品、时间、连锁店、顾客、促销5个方面 度量方面,考虑到最好使用具有可加性的度量,因此,可以包含商品个数、总价、成本、利润等,单价可通过商
27、品总价除以商品总个数得到,利润率可通过汇总的利润除以汇总的总价得到,这样可以避免直接设置单价和利润率而造成的不可加性Principles and Applications of Business IntelligenceChap 8: 数据仓库 43事实表销售事实表时间编号商品编号连锁店号顾客会员号促销编号小票编号销售量销售额Principles and Applications of Business IntelligenceChap 8: 数据仓库 44维度表Principles and Applications of Business IntelligenceChap 8: 数据仓库 4
28、5细化维度表 每个维度表的属性尽量包含丰富的信息,例如,时间维度表,除了包含年、月、日之外,还可以包括星期、是否周末、是否节假日、季节、是否有重大事件、财政年度等等Principles and Applications of Business IntelligenceChap 8: 数据仓库 46时间维度Date keyDateFull datedescriptionDay of weekCalendarmonthCalendaryearFiscalYear-monthHolidayindicatorWeekday indicator101/01/2003 January 1, 2003 We
29、dnesday January2003F2003-01HolidayWeekday201/02/2003 January 2, 2003 ThursdayJanuary2003F2003-01Non-holiday Weekday301/03/2003 January 3, 2003 FridayJanuary2003F2003-01Non-holiday Weekday401/04/2003 January 4, 2003 SaturdayJanuary2003F2003-01Non-holiday Weekend501/05/2003 January 5, 2003 SundayJanua
30、ry2003F2003-01Non-holiday Weekend601/06/2003 January 6, 2003 MondayJanuary2003F2003-01Non-holiday Weekday701/07/2003 January 7, 2003 TuesdayJanuary2003F2003-01Non-holiday Weekday801/08/2003 January 8, 2003 Wednesday January2003F2003-01Non-holiday WeekdayPrinciples and Applications of Business Intell
31、igenceChap 8: 数据仓库 47退化维 维度“小票编号”,但它没有对应的维度表,这样的维度称为退化维(degenerate dimension)。- 由于事实表中的一行对应小票中的一个商品,如果没有小票编号,则无法记录哪些商品是一次购买行为所包含的。利用小票编号可以分析一次购物的整体信息。销售事实表时间编号商品编号连锁店号顾客会员号促销编号小票编号小票编号销售量销售额Principles and Applications of Business IntelligenceChap 8: 数据仓库 48星型模型Principles and Applications of Business
32、 IntelligenceChap 8: 数据仓库 498.4 数据仓库项目的开发 8.4.1 数据仓库开发模式 8.4.2 数据仓库开发过程Principles and Applications of Business IntelligenceChap 8: 数据仓库 508.4.1 数据仓库开发模式 数据仓库系统的开发方法主要分为两类:自顶向下和自底向上。 自顶向下的方法是先构建企业范围内的数据仓库,然后,根据各个业务过程的分析要求,将数据仓库内的数据调入数据集市进行分析。 自底向上的方法则相反,想根据各个业务过程的分析需求,按照紧迫程度先后构建各个数据集市,然后,集成数据集市中的数据最终
33、构成数据仓库。Principles and Applications of Business IntelligenceChap 8: 数据仓库 51自顶向下 自顶向下的方法因为从企业整体出发,考虑到各个主要业务过程的分析需求,能够对数据进行有效的集成,避免冗余,提供统一的数据访问。缺点是,由于涉及的范围广,需要花费的时间、人力、财力都相对更多,风险高,短期内不容易看到效果。Principles and Applications of Business IntelligenceChap 8: 数据仓库 52自底向上 自底向上的方法则从单个的业务过程出发,快速构建数据集市,能够很快看到实施的效果,
34、成功率高,花费少,风险小。但是由于是从局部出发,没有纵观企业全局的考虑,可能导致每个不同的数据集市中的数据存在不一致性和冗余。Principles and Applications of Business IntelligenceChap 8: 数据仓库 538.4.2 数据仓库开发过程 数据仓库项目的开发可以分为六个阶段:- 项目规划- 需求分析- 概念设计- ETL设计- 逻辑和物理设计- 实现与培训Principles and Applications of Business IntelligenceChap 8: 数据仓库 54项目规划 此阶段主要了解总体需求,界定项目实施的范围,评估
35、项目的必要性和可行性, 撰写数据仓库项目的规划文档。- 数据仓库的构建要面向业务需求,因此要与业务人员密切沟通,了解现在存在的急需解决的问题,以及解决这些问题可能给企业带来的回报。- 初步调查解决这些问题的可行性,包括构建数据仓库的数据源以及可以利用的系统资源等。- 将业务需求按照重要性和可行性进行排序,界定数据仓库实施的边界,即哪些可以实现,哪些暂时不实现。Principles and Applications of Business IntelligenceChap 8: 数据仓库 55需求分析 需求分析阶段,进一步详细了解需求,确定分析主题以及相关的维度和度量 了解已有信息系统的功能、结
36、构和模型 确定数据仓库中应该包含的数据,以及相关的数据来源 撰写需求分析说明书。Principles and Applications of Business IntelligenceChap 8: 数据仓库 56概念设计 利用概念模型描述数据仓库包含的主题及其关系。常用的概念模型是信息包图(information package diagram)- 包括3个要素:度量、维度和层次。- 层次指的是描述每个维度的属性之间的层次关系例如时间维度中,年、月、日之间存在层次关系,即日属于月,月属于年Principles and Applications of Business Intelligence
37、Chap 8: 数据仓库 57概念设计 信息包图Principles and Applications of Business IntelligenceChap 8: 数据仓库 58ETL设计 ETL设计,包括数据抽取、转换和加载设计三部分- 数据抽取设计包括抽取接口设计和抽取策略设计- 抽取策略包括抽取时机、抽取周期以及抽取方式的设计。- 数据转换设计,主要设计从数据源抽取的数据如何进行转换的方法和转换的时机。常用的转换的时机包括在抽取过程中转换和在加载过程中转换。- 数据加载主要涉及加载策略的制定,包括直接追加和覆盖等方式。直接追加效率最高,指的是将抽取的数据直接加到数据仓库相应的数据中,
38、不更新已有数据。覆盖加载指的是新抽取的数据完全把已有数据取代Principles and Applications of Business IntelligenceChap 8: 数据仓库 59逻辑和物理设计 逻辑和物理设计阶段,设计数据仓库的逻辑模型和物理模型。- 逻辑模型常用的是多维数据模型- 物理模型主要涉及数据的存储结构和索引技术的选择。存储结构可以选择RAID(redundant array of inexpensive disk)中的不同级别。索引技术可以提高数据仓库中数据的存取效率,常用的索引技术包括B+树索引、位图索引和广义索引。Principles and Applicati
39、ons of Business IntelligenceChap 8: 数据仓库 60实现与培训阶段 包括数据仓库系统的实现和用户使用的培训。 系统实现主要是构建数据仓库,加载数据,配置系统参数,获得用户反馈,根据反馈进行一定的修改 培训是很重要 另外,制定系统下一步进一步完善的计划以及基于数据仓库开发应用的计划。 数据仓库交付用户使用之后,还需要对系统的运行进行监控和维护,进行系统参数的配置调整,调整系统的安全设置等Principles and Applications of Business IntelligenceChap 8: 数据仓库 61成功的数据仓库项目 一个成功的数据仓库项目通常具备这样几个的特点:- 得到高层管理人员的支持- 解决实际的业务问题- 目标明确- 业务和IT技术人员密切合作- 从小范围的实现做起- 良好的培训和持续的系统完善Principles and Applications of Business IntelligenceChap 8: 数据仓库 62