您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 打印版 第5章 数据仓库的粒度和聚集
第5章数据仓库中的粒度及聚集本章目标(1)粒度的估算及划分(2)粒度的级别(3)聚集事实表(4)星座模型(5)对维度建模的要求2006-10weizhidong@yahoo.com.cn25.1粗略估算数据仓库开发者需要解决的最重要的单一设计问题是数据仓库中的粒度确定。确定合适的粒度级的起点,是粗略估算数据仓库中将来的数据行数和所需DASD(直接存取存储设备)数。毫无疑问,即使在最好的情况下我们也仅能做一下估计。但在建立数据仓库之初,所需的只是一个数量级上的估计。2006-10weizhidong@yahoo.com.cn3空间和行数计算1.对每一个已知的表:计算一行所占字节数的-最大估计值-最小估计值对一年内:最大行数可能是多少?最小行数可能是多少?对五年内:最大行数可能是多少?最小行数可能是多少?对表的每个键码:该键码的大小(按字节)是多少?一年总的最大空间=最大行大小×一年内最大行数一年总的最小空间=最小行大小×一年内最小行数累加索引空间2.对所有已知的表重复第1步。2006-10weizhidong@yahoo.com.cn45.2粒度划分过程的输入使用空间估计的结果2006-10weizhidong@yahoo.com.cn55.3双重或单一的粒度?根据数据仓库环境中将具有的总的行数的大小,设计和开发必须采取不同的方法。实际上任何设计都行100,000实际上任何设计都行10,000认真设计1,000,000认真设计100,000双重粒度级10,000,000双重粒度级1,000,000双重粒度级且认真设计20,000,000双重粒度级且认真设计10,000,000五年期一年期粒度的阈值2006-10weizhidong@yahoo.com.cn65.4确定粒度的级别5.4.1粒度级别确定需反复分析经验规则:在第一次的设计周期中,如果50%的工作是正确的,那么整个设计就是成功的。•快速建立数据仓库的很小的子集并认真听取用户的反馈意见。•用原型法。•看看别人做了些什么。•找一个有经验的用户协同你工作。•看看机构现在已经有了些什么。•用模拟的输出进行JAD(联合应用程序设计)会议。2006-10weizhidong@yahoo.com.cn75.4.2一些反馈循环技巧用很小而很快的步伐建立数据仓库最初的几个部分,仔细聆听最终用户的意见。随时准备做快速的调整。如果可以使用原型工具的话应用原型法,并使用从原型中收集的观察结果而使反馈循环起作用。看看别人是怎样确定他们的粒度级别,学习一下他们的经验。与一个对整个过程了解的有经验的用户一起进行反馈的处理。不论什么时候都让你的用户在暗中作为反馈循环的动力。看看本机构现在有什么系统正在运转。进行JAD会议并模拟其输出以得到想要的反馈。有好多方法用来提高数据的粒度,如以下所列:当源数据置入数据仓库时,对它进行汇总。当源数据置入数据仓库时,对它求平均或进行计算。把最大/最小的设定值置入数据仓库。只把显然需要的数据置入数据仓库。用条件逻辑选取记录的一个子集置入数据仓库。2006-10weizhidong@yahoo.com.cn85.4.3示例例1:银行帐户的例子在左边是操作型数据,可以看到银行六十天的活动数据都存储在操作型的联机环境中。右边是轻度汇总级的数据,总共是十年的活动记录。真实档案级的数据存储在适合于大量数据管理的媒体上,包括每一个细节的记录。2006-10weizhidong@yahoo.com.cn9例2:银行客户管理的例子操作型环境中显示了当前使用的准确的客户数据。在轻度汇总级存放的也是同样的数据,但只是一个月中某个时刻的快照。还有一个连续的文件存放长时间范围的数据(过去10年的数据),它是从每月文件中产生的。2006-10weizhidong@yahoo.com.cn10例3:制造业的例子在操作级上是完成若干给定部件的组装的生产线的记录。轻度汇总级包括两个表,一个汇总某一部件一天中的生产情况,另一个汇总生产线上的生产情况。部件生产累计表存放的是90天内的数据,而组装表只存放一天汇总的的生产情况数据。真实档案级的数据包括每个生产活动的详细记录。2006-10weizhidong@yahoo.com.cn11例4:保险业的例子在当前的索赔系统中(环境的操作型部分),存储了索赔的大量详细数据。当一个索赔已解决(或已确定不予解决),或者索赔隔了好长时间还未办理,这个索赔的信息就被传送到数据仓库中去。在传送时,索赔信息用多种方式汇总:按每个代理在每个月,按每个月索赔的类型,等等。在一个较低的详细级别上,索赔信息在真实档案级上无限期地保存着。2006-10weizhidong@yahoo.com.cn125.5事实表的聚集(AggregatingFactTables)聚集是从最低粒度的事实表中衍生出来的预先计算的汇总数据。这些汇总数据形成一组独立的聚集事实表。聚集数据主要是为了使用户获得更好的查询性能聚集模型设计时应该注意将聚集数据存储在其事实表中,并与其底层数据相区别。我们从一个大型连锁商店销售情况的星型模型开始。•基础事实表位于最低粒度•基础事实表大约有20亿条最低粒度的记录•依次查询、检索的效率非常低下•可以根据用户的需要对一些汇总数据进行预先计算2006-10weizhidong@yahoo.com.cn13一个大型连锁商店销售情况的星型模式2006-10weizhidong@yahoo.com.cn14维度的层次结构时间维度的多层结构上最低层是天,最高层是年;商店维度的多层结构上最低层是商店;产品维度的多层结构上最低层是产品。2006-10weizhidong@yahoo.com.cn15多路聚集事实表构造聚集事实表有多种方法:(1)单路聚集:如果从一个维度层次结构的一次层次升到更高层次,而其他维度保持在最低粒度,就生成一个单路聚集表。如:按照日期,按照商店的产品分类。(2)二路聚集:如果从两个维度层次结构的一次层次升到更高层次,而其他维度保持在最低粒度,就生成一个二路聚集表。如:按照日期,按照地域的产品分类。(3)三路聚集:如果从三个维度层次结构的一次层次升到更高层次,而其他维度保持在最低粒度,就生成一个三路聚集表。如:按照月份,按照地域的产品分类。所有的聚集表都是从基础事实表衍生出来的,衍生的聚集表同一个或多个衍生出来的维度表相连。2006-10weizhidong@yahoo.com.cn16多路聚集事实表2006-10weizhidong@yahoo.com.cn17衍生的聚集表同一个或多个衍生出来的维度表相连2006-10weizhidong@yahoo.com.cn18聚集事实表应注意的问题聚集模型设计时应该注意将聚集数据存储在其事实表中,并与其底层数据相区别;设计聚集模型时,首先需要考虑用户的使用要求;其次要考虑数据仓库的粒度模型和数据的统计分布情况;建立聚集模型时还需要考虑作为聚集属性的数量因素;通过将当前加载数据添加到系统中的累积“桶”中,将数据的聚集与数据仓库的加载过程组合为同一处理过程;每次在加载数据仓库数据时,都需要对各种聚集进行计算和增加,及时保持聚集与基本数据的同步性;要根据使用情况删除不经常使用的聚集;需要减少层次过于接近的聚集生成。2006-10weizhidong@yahoo.com.cn19星型模型族(星座模型)一组相关的星型模型称为星型模型族,它的事实表共享维度表,多个维度表也可能共享一个事实表。2006-10weizhidong@yahoo.com.cn20星型模型族的形成构造星型模型族的原因很多:–可以通过增加聚集事实表和衍生维度表来形成;–也可以通过构造一个与所有客户都相关的核心事实表,以及为特定用户群服务的定制事实表来形成星型模型族。当一个维度表为多个事实表所共享的时候,维度表构成各星型模型间的通用连接,一定要注意“维度一致”问题,如帐户维度表被核心表和定制表共享时,它的属性的含义应该在两个事实表中是一致的。2006-10weizhidong@yahoo.com.cn21星型模型族的形成2006-10weizhidong@yahoo.com.cn225.6对维度建模的要求无论采用星型模型、雪花模型还是星座模型,预期的标准维度模式应该能够满足数据仓库环境所要求的以下重要特性:•有效性:数据库结构一致,开放式地允许各种工具的访问;•处理需求变化的能力:最好能支持特定的用户查询;•可扩展性:典型修改包括(a)加入新的事实数据维;(b)加入新的维;(c)加入新的维属性;(d)在一个专门的时间点上把某一维的记录降至低一级粒度上。•为一些公有商情建立模型的能力:标准方法越来越多;•可预见的查询能力:如下钻操作等。2006-10weizhidong@yahoo.com.cn23思考题(1)数据量是如何估算的?(2)粒度级别如何划分?(3)举出一个银行业数据仓库的双重粒度的例子。(4)举出一个制造业数据仓库的双重粒度的例子。(5)什么是聚集事实表,它是怎样形成的?(6)什么是星型模型族,它是怎样形成的?(7)维度建模应满足哪些要求?
本文标题:打印版 第5章 数据仓库的粒度和聚集
链接地址:https://www.777doc.com/doc-26729 .html