1、.1 nBI的价值n如何构建BIn 数据仓库设计中的几个重要概念 n维度建模目目录.2 操作型数据 如:某商场1瓶价格为88元的葡萄酒在被购买的过程中,收银员实际收到100元,找零12元。 特点:细节化,分散化关键概念.3关键概念 决策型数据 如:该商场在1月9日上午一共卖出了多少瓶葡萄酒?该商场的所有葡萄酒总销量在一年中什么时候最高和最低? 特点:综合化,集成化.4企业对应用集成的需求我要了解企业目前的运转情况!(实时监控)我要知道某地区近5年内的销售情况以制定未来的发展策略!(决策支持)我要知道哪些是值得发展的优质的顾客!(预测).5BI应用带来的关键效益获得对业务绩效,流程和客户的可见性
2、和洞察力更好的进行决策和执行决策,以快速应对机会和挑战协同一致横跨多个业务和数据源,获得唯一的、一致的企业信息在各业务层面中协同战略和执行.6BI应用带来的关键效益中层管理分析 :专注点是 绩效的战术应用 与目标相比,我做的如何? 问题在哪里高层领导分析 : 专注点是 计划战略 & 目标制定 业务发展得如何,我们下一步该往哪里走通过集成实时与历史数据,将分析转换为执行力一线分析 :专注点是 执行有效性与行动 我每天要做哪 3-5 件事情 哪些信息能让我更有效地执行这些行动? 回答问题: 我现在该做哪些事情?.7数据仓库的概念.8 nBI的价值n如何构建BIn 数据仓库设计中的几个重要概念 n维
3、度建模目目录.9BI BI应用架构BI 应用.10BI BI系统架构Microsoft OfficeBI ServerBI Presentation Server交互式信息板 即席查询 报表分析 预警提醒 商务智能应用前端展示层商务智能服务层前端展示层应用服务层数据库层ERP系统其他应用系统财务平台Excel XML业务流程数据源层商务智能应用模型架构:财务、销售、订单、服务、市场、供应链、人力ETL商务智能应用数据存储星型模型DWCube.11构建BI BI涉及的开发工具查询工具与电子制表ETL 与元数据管理报表与文档管理OLAP多维分析DataMining数据挖掘Portal门户网站主流产
4、品:ETL: Informatica、Datastage 、Kettle、SSIS前端展现:Oracle BIEE、Business Object、MicroStregy、 Cognos、Oracle Essbase、SmartBI整体解决方案:Oracle BI Apps.12数据仓库设计中的几个重要概念.13数据仓库设计中的几个重要概念 .14数据仓库设计中的几个重要概念 .15数据仓库设计中的几个重要概念 .16数据仓库设计中的几个重要概念ExternalDataODSCentral DataWarehouseDataMartDataMartDataMartDataMartCentral
5、 DataWarehouseExternalDataODSpartpartpartpartpartpart1.建造企业数据仓库n 建设中心数据模型n 一次性的完成数据的重构工作n 最小化数据冗余度和不一致性n 存储详细的历史数据2.从企业数据仓库中建造数据集市n 得到大部分的集成数据n 直接依赖于数据仓库的可用性1.创建部门的数据集市n 范围局限于一个主题区域n 快速的ROI - 局部的商业需求得到满足n 本部门自治 - 设计上具有灵活性n 对其他部门数据集市是一个好的指导n 容易复制到其他部门 n 需要为每个部门做数据重建n 有一定级别的冗余和不一致性2.扩大到企业数据仓库n 创建EDB作为
6、一个长期的目标投资效益的时间?建设中心数据模型的必要性和可能性?初始费用 ?自上而下VSVS自下而上数据集市的数据都是可用的吗?能生成数据模型吗?如何解决不一致性?.17目录nBI的价值n如何构建BIn数据仓库设计中的几个重要概念 n维度建模n基础术语n建模中的三种模型n维度的类型n常用的事实表类型n建模的一般过程.18基础术语 事实表是指其中保存了大量业务度量数据的表。事实表中的度量值一般称为事实。在事实表中最有用的事实就是数字类型的事实和可加类型的事实。事实表的粒度决定了数据仓库中数据的详细程度。 一般事实表中只存放数字或者一些Flag用来统计(Count),如收益、数量、支出等销售事实收
7、益数量支出毛利.19基础术语 维度表可以看作是用户分析数据的窗口,维度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息。客户维时间维商场维产品维销售事实时间ID客户ID产品ID商场ID收益数量支出毛利.20基础术语 粒度是指数据仓库中数据的细化或综合程度的级别,也就是数据的详细程度。细节程度越高,粒度级就越低,反之亦然。我可以用很多的数据,但同样我也可以只用必需的数据。而这起决于存储器。如果有很大的硬盘,那就没有我们不能存的事情。设计粒度是设计数据仓库中的一个重要前提高细化低细化每月200个记录每月40,000个字节每月
8、一个记录每月200个字节通过检索可以回答无细节无法回答询问某一电话的细节.21基础术语 粒度是指数据仓库中数据的细化或综合程度的级别,也就是数据的详细程度。细节程度越高,粒度级就越低,反之亦然。我可以用很多的数据,但同样我也可以只用必需的数据。而这起决于存储器。如果有很大的硬盘,那就没有我们不能存的事情。设计粒度是设计数据仓库中的一个重要前提高度综合级轻度综合级(数据集市)销售细节级2000-2001操作型转换每月销售1994-2001每周销售1994-2001当前细节级.22目录nBI的价值n如何构建BIn数据仓库设计中的几个重要概念 n维度建模n基础术语n建模中的三种模型n维度的类型n常用
9、的事实表类型n建模的一般过程.23建模中的三种模型.24建模中的三种模型 事实表被维度所包围,维表和事实表通过主关键字和外关键字联系在一起,且维度没有被新的表连接客户维时间维商场维产品维销售事实时间ID客户ID产品ID商场ID收益数量支出毛利.25建模中的三种模型 事实表被多个维表或一个或多个层次所包围,雪花模型一般在处理大的且相对静态的层次的时候使用客户维时间维商场维产品维销售事实时间ID客户ID产品ID商场ID收益数量支出毛利联系人维区域维.26目录nBI的价值n如何构建BIn数据仓库设计中的几个重要概念 n维度建模n基础术语n建模中的三种模型n维度的类型n常用的事实表类型n建模的一般过程
10、.27维度的类型.28维度的类型,简称 缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流失发生缓慢的变化(如:组织结构的调整、客户更改了他的名称或地址)。这种随时间发生变化的维度我们一般称之为缓慢变化维,并且把处理维度表的历史变化信息的问题称为处理缓慢变化维的问题,有时也简称为处理SCD的问题。 处理缓慢变化维的方法通常有三种方式: 第一种方式是直接覆盖原值,通常简称为“TYPE 1” 。这样处理,最容易实现,但是没有保留历史数据,无法分析历史变化信息。 第二种方式是添加维度行,通常简称为“TYPE 2” 。这样处理,需要代理键的支持。实现方式是当有维度属性发生变化
11、时,生成一条新的维度记录,主键是新分配的代理键,通过自然键可以和原维度记录保持关联。 第三种方式是添加属性列,通常简称为“TYPE 3” 。这种处理的实现方式是对于需要分析历史信息的属性添加一列,来记录该属性变化前的值,而本属性字段使用TYPE 1来直接覆盖。这种方式的优点是可以同时分析当前及前一次变化的属性值,缺点是只保留了最后一次变化信息。.29维度的类型 客户Simmy将自己的地址由原先的Addr1改为Addr2。这时我们需要将这个记录了客户Simmy的记录中Address从Addr1更新为Addr2,且不记录历史ID:111Name:SimmyAddress:Addr1ID:111Na
12、me:SimmyAddress:Addr2OLD记录ID为111的客户Simmy的信息的记录中地址直接更改为Addr2,不保存历史Addr1NEW.30维度的类型 客户Simmy将自己的地址由原先的Addr1改为Addr2。这时我们需要将这个记录了客户Simmy的记录中的有效截止日期改为现在,并重新添加一条有效截止日期为现在的和一个新的版本号且Address为Addr2的记录ID:111Version:1Name:SimmyAddress:Addr1Effective Start Date:2007-4-21Effective End Date:NowID:111Version:2Name:S
13、immyAddress:Addr2Effective Start Date:NowEffective End Date:NullID:111Version:1Name:SimmyAddress:Addr1Effective Start Date:2007-4-21Effective End Date:Null更新为添加新的记录.31维度的类型ID:111Name:SimmyCurrent Address:Addr1Old Address:NullID:111Name:SimmyCurrent Address:Addr2Old Address:Addr1.32维度的类型Rapidly Chang
14、ing Dimension,RCDn 当某个维度的变化是非常快的时候,我们认定他为快速变化维(具体要看实际的变化频率),比如:客户的地址、联系电话等。 数据仓库中最有意思的维度是一些非常大的维度,比如客户,产品等等。一个大的企业客户维度往往有上百万记录,每条记录又有上百个字段。而大的个人客户维度则会超过千万条记录,这些个人客户维度有时也会有十多个字段,但大多数时候比较少见的维度也只有不多的几个属性。.33维度的类型 以客户维度举例来说,如果维度表中有数百万行记录或者还要多,而且这些记录中的字段又经常变化,这样的维度表一般称之为快变超大维度。对于快变超大维度,设计人员一般不会使用TYPE 2的缓
15、慢变化维处理方法,因为大家都不愿意向本来就有几百万行的维度表中添加更多的行。 这时,有一项技术可以解决这个问题。解决的方法是,将分析频率比较高或者变化频率比较大的字段提取出来,建立一个单独的维度表。这个单独的维度表就是微型维度表。 微型维度表有自己的关键字,这个关键字和原客户维度表的关键字一起进入事实表。有时为了分析的方便,可以把微型维度的关键字的最新值作为外关键字进入客户维度表。这时一定要注意,这个外关键字必须做TYPE 1型处理。 在微型维度表中如果有像收入这样分布范围较广的属性时,应该将它分段处理。比如,存储¥31257.98这样过于分散的数值就不如存储¥30000¥34999这样的范围
16、。这样可以极大的减少微型维度中的记录数目,也给分析带来方便。 .34维度的类型 .35目录nBI的价值n如何构建BIn数据仓库设计中的几个重要概念 n维度建模n基础术语n建模中的三种模型n维度的类型n常用的事实表类型n建模的一般过程.36常用的事实表类型.37常用的事实表类型是原子事实表上的汇总数据,也称为汇总事实表。即新建立一个事实表,它的维度表是比原维度表要少,或者某些维度表是原维度表的子集,如用月份维度表代替日期维度表;事实数据是相应事实的汇总,即求和或求平均值等。在做数据迁移时,当相关的维度数据和事实数据发生变化时,聚集事实表需要做相应的刷新。物化视图是实现聚集事实表的一种有效方式,可
17、以设定刷新方式,具体功能由DBMS来实现。.38常用的事实表类型 是指将位于不同事实表中处于相同粒度的事实进行组合建模而成的一种事实表。即新建立一个事实表,它的维度是两个或多个事实表的相同维度的集合;事实是几个事实表中感兴趣的事实。在Kimball的总线架构中,由合并事实表为主组成的合并数据集市称为二级数据集市。合并事实表的粒度可以是原子粒度也可以是聚集粒度。在做数据迁移时,当相关的原子事实表的数据有改变时,合并事实表的数据需要重新刷新。合并事实表和交叉探察是两个互补的操作。 聚集事实表和合并事实表的主要差别是合并事实表一般是从多个事实表合并而来。但是它们的差别不是绝对的,一个事实表既是聚集事
18、实表又是合并事实表是很有可能的。因为一般合并事实表需要按相同的维度合并,所以很可能在做合并的同时需要进行聚集,即粒度变粗。比如“营销事务事实表”和“库存快照事实表”就会有相同的维度表,“日期维度”、“产品维度”和“商场维度”。这时,如果有个需求是想按共有维度来对比查看销售和库存的事实,这时就需要发出两个SQL,分别查出按维度统计出的销售数据和库存数据。然后再基于共有的维度进行外连接,将数据合并。这种发出多路SQL再进行合并的操作就是交叉探查。.39常用的事实表类型是将一条记录中的多个事实字段转化为多条记录,其中每条记录保存一个事实字段的一种建模方法。或者反过来,也可以由多条记录转化为一条记录。
19、旋转事实表建模方法的使用通常是为了简化前端数据展现的查询。它通过改变后端的事实记录存储方式,使相应的查询需求的性能得到的极大的提高。如果在SQL或者查询工具中进行这种转换会非常麻烦,效率也很差。和合并事实表类似,有时当基础表中没有记录时,旋转事实表也要存储一些零值在里面。.40常用的事实表类型是通过对事实表和维度表的联合查询而生成的一类汇总表。在预连接聚集表中,保存有维度表中的描述信息和事实表的事实值。通过预连接,可以避免在用户查询时RDBMS的连接操作,所以预连接聚集表的查询效率要高很多。在这个销售事实表,前五个字段都来自于维度表的描述字段,后两个字段来自于事实表的事实字段。这样在用户提交查
20、询后,RDBMS就不需要连接维度表和事实表了,只需直接在该表中查询即可。产品名称商标名称年份月份销售人员名称销售量销售金额销售事实表.41常用的事实表类型预连接聚集表有一个很大的缺点,它需要占用大量的存储空间。预连接事实表的记录和事实表一样多,每条记录的长度和维度表一样长,所以对存储空间的需求是非常大的。除非情况特殊,或者该表是高度汇总的,否则不建议建立预连接聚集表。在建立预连接聚集表时需要平衡效率和存储空间的矛盾。预连接聚集表的生成方式较为简单,直接使用SQL查询即可生成。如果聚集导航器的功能很强大的话,也可以处理预连接聚集表。否则,需要用户理解预连接聚集表,并在SQL中直接使用该表。预连接
21、聚集表在数据仓库领域有着很重要的作用,是汇总表的一种。它的优点和缺点都很明显,在使用时需要综合考虑。.42常用的事实表类型事实表通常会保存十个左右的维度外键和多个度量事实,度量事实是事实表的关键所在。在非事实型事实表中没有这些度量事实,只有多个维度外键。非事实型事实表通常用来跟踪一些事件或者说明某些活动的范围。下面举例来进行说明:第一类非事实型事实表是用来跟踪事件的事实表。例如:学生注册事件,学校需要对学生按学期进行跟踪。维度表包括学期维度、课程维度、系维度、学生维度、注册专业维度和取得学分维度,而事实表是由这些维度的主键组成,事实只有注册数,并且恒为1。这样的事实表可以回答大量关于大学开课注
22、册方面的问题,主要是回答各种情况下的注册数。第二类非事实型事实表是用来说明某些活动范围的事实表。例如:促销范围事实表。通常销售事实表可以回答如促销商品的销售情况,但是对于那些没有销售出去的促销商品没法回答。这时,通过建立促销范围事实表,将商场需要促销的商品单独建立事实表保存。然后,通过这个促销范围事实表和销售事实表即可得出哪些促销商品没有销售出去。这样的促销范围事实表只是用来说明促销活动的范围,其中没有任何事实度量。.43常用的事实表类型切片事实表中的字段结构和相应的基础表完全相同,差别在于存储的记录的范围。切片事实表中保存记录的是相应基础表中记录的子集,记录数通常与某个维度记录数相同。这种建
23、模方法一般用来满足特殊需要,如需要分析某些特殊问题时,可以将与之相关的数据切片出来。相反,这种方法也常用于合并存储在不同地区的数据,即各个地区都保存自己地区的数据,总部和所有地区的表结构都相同,然后总部将所有地区的数据合并在一起。切片事实表的结构与相对应的基础表相同,数据来源于相对应的基础表。切片事实表由于缩小了表中数据的记录数,所以查询的效率得到了很大的提高。.44目录nBI的价值n如何构建BIn数据仓库设计中的几个重要概念 n维度建模n基础术语n建模中的三种模型n维度的类型n常用的事实表类型n建模的一般过程.45建模的一般过程 确定详细数据的粒度级别 此过程必须是在建模之前最需要考虑的问题
24、 比较典型的粒度指的是单独的,基于时间的或聚集在一个常用的维度的事务.46建模的一般过程 确定是否需要同时存储编号和描述,或者只是编号,或者只是描述的信息 确定哪些字段的值需要被筛选掉或者需要存在.47建模的一般过程 对于时间维度,我们需要确定的是年,季度,月,周,日等不同的层次 对于产品维度,我们需要确定的是产品大类,产品小类,产品等不同的层次 需要注意的是比如在销售中,地理位置的层次可能和真正的地理位置的层次会有不同.48建模的一般过程 通常的维度包括时间,产品,投保人,代理人,和地理等常见对象 请注意,创建的维度需要和与其连接的事实的粒度保持一致.49建模的一般过程 需要根据具体业务来确
25、定事实及其量度 对于每个聚合事实需要在应用(ETL)过程中进行计算.50建模的一般过程 根据需求,对缓慢变化维进行相应的处理比如: 对于一个需求为不保留历史的客户维度,我们使用第一种类型的缓慢变化维来处理; 对于一个需求为需要保留历史的产品维度,我们需要使用第二种类型的缓慢变化维来处理.51一个实例 步骤1:选定某一业务过程,如:库存管理业务安全政策瓦斯监测设备检测设备报修工作面防护巷道管理水文检测地区管理销售销售管理客户关系合同管理成本库存运输方式定货发运物资计划物资采购成套设备管理设备维修设备租赁库存管理市场分析产品考察销售预测人事计划招聘人员福利政策新矿投产旧矿整改环境保护财务计划资本获
26、取资金管理借方贷方流动资金工资成本会计预算计划利润分析煤种分类煤种定价规格说明生产能力计划生产调度工序安排设备控制煤炭加工.52对库存管理业务建模 步骤2:根据各用户的需求(关注的主题),定义该业务处理的粒度。例如:主题1及其粒度:矿厂中每种产品库存水平的日快照主题2及其粒度:每种特定产品的仓库库存事务每日情况主题3及其粒度:每种特定产品每日的入库装运情况.53对库存管理业务建模 步骤3:选定每个事实表的维度例如:主题1事实表维度:日期、矿厂、产品主题2事实表维度:日期、仓库、产品、供应商、事务类型主题3事实表维度:到货日期、检测日期、入库日期、销售批准日期、分拣日期、装箱日期、装运日期、最近
27、回收日期、产品、供应商、仓库.54对库存管理业务建模 步骤4:确定每个事实表的数字型事实例如:主题1事实表数字型事实:现有数量主题2事实表数字型事实:仓库库存事务金额主题3事实表数字型事实:到货量、检测量、退货量、入库量、批准销售量、分拣量、装箱量、装运量、回收量、顾客退货量。.55完成后的模型 主题1:矿厂中每种产品库存水平的日快照日期关键字产品关键字矿厂关键字现有数量矿厂库存快照事实日期关键字日期属性。日期维度矿厂关键字矿厂属性。矿厂维度产品关键字产品属性。产品维度.56完成后的模型 主题2:每种特定产品的仓库库存事务每日情况产品接收产品送检合格产品分发次品退货产品入柜产品销售审批产品出柜
28、产品包装发货回收从库存中删除.57完成后的模型日期关键字产品关键字仓库关键字供应商关键字库存事务类型关键字库存事务金额仓库关键字仓库名称仓库地址仓库所在城市仓库所在省仓库所在地区仓库邮政编码仓库总面积。仓库维度库存事务类型关键字库存事务类型描述库存事务类型组。库存事务类型维度仓库库存事务事实产品维度供应商维度日期维度 主题2:每种特定产品的仓库库存事务每日情况.58完成后的模型 主题3:每种特定产品每日的入库装运情况到货日期关键字检测日期关键字入库日期关键字。到货量检测量入库量。仓库库存累积事实到货日期维度检测日期维度入库日期维度。.59数据质量管理为什么我的问题还没有解决?客户投诉我不是我的
29、错!两个系统的报表怎么不一致?目标完成没有?未来趋势怎样?客户客户经理管理者领导n 实际发生的损失n资金的流失n客户的流失n生产效率的影响n提升的障碍n客户服务质量提升n市场的扩展n利润的增长不同的系统数据不一致不知道数据应该以谁为准数据的混乱状况处于发散状态。数据的重要性不亚于业务功能!.60数据质量管理数据质量问题分析.61数据质量管理思路 方法:质量问题的发现、评估、清洗与改进,是一个循环、长期持续的过程,而不是一次性工作。要让数据质量管理成为一项日常工作,就像订单受理系统每天受理订单一样。 (执行) 架构:像功能系统规划一样来规划数据,确定数据的整体架构,确定数据的归属划分,确定数据交互与共享规则,制定数据质量评价规则,建立完整的数据管理体系。(基础、根本) 组织:有专门的组织负责数据质量管理工作(管理) 流程:建立闭环的数据质量管理机制:发现、分析、规则、执行、修正、考核(系统加管理手段)数据质量在各个环节都可能不断被放大、增加,处于发散的状态,通过闭环管理确保数据质量处于收敛的状态才能控制数据质量问题.62Q&AQ&A交流与讨论