|
如何同时展现不同粒度的度量?Nina 20060712 目前我遇到一個很大的問題,經過多方的請教,今天終於解決,多謝happycry。 我建了一個數據倉庫,有兩個事實表,這兩個事實表也是有對應關系的。 資料表 ID 總量 不良量 抽樣量 體不良信息表 ID 個數 不良描述 如果就讓這樣建立cube,資料表中的數據可以正常讀出來,但是,具體不良信息表就只能讀一個總數:出現如下情況: 一開始就只是在緯度設計裡面做調整,無論怎麼調整都不行,後來,在happycry的提議下,新建一個相關的view,沒想到就解決了,真好,呵呵 在這裡再次感謝happycry!!
Nina 20060712 對,你說的沒錯,比我自己說都要清楚,事實上我自己都不知道怎麼去說,專家就是專家,因為我對術語還不是很明白呢 抽樣量是什麼意義的,在不良看來,只是業務系統紀錄的一個值而已。 Goldenfish 20060713 这个问题是指标并非与所有维度关联的情况。在本例中,是总不良量与“不良描述”这个维度没有关系,或者说事实表中没有关于总不良量针对不良描述维度的取值(或,在同一ID下,无论不良描述维度取值是什么,总不良量总是一个固定值)。 Cognos对这种情况有Allocation机制加以解决。 Allocation Description Transformer automatically allocates a measure to an entire dimension when the source of the measure does not reference that dimension. By default, Transformer allocates the measure value as a constant throughout the dimension. You can change the default to N/A (do not allocate) or to By Measure (proportionally allocate, based on values in another measure). 如果有“抽样量”这种指标与“不良描述”维度无关,则可以缺省使用常量,即无论该维度是什么,都取同样的在ID下规定的抽样量的值;也可以使用N/A(我没试过,猜测显示结果是N/A);也可以指定按另一个指标进行分配,例如“抽样量”按“不良量”同比例分配。 同道理,Cognos还提供针对维度层次的Allocation。例如计划值只是到年,实际销售额是按月,则在时间维度上,在月的粒度上查看计划值,也能以常量(看到的是年计划的值)、N/A、同比分配的方式查看。 goldenfish举出cognos的例子,我想大多工具都已经有处理这些问题的方法。深入探讨,发现还可以得到更多的结论。 T1(D1, D2, M1) (这样的设计多少有些奇怪,一次检验必定是针对厂商的,但在T2中,却只给出这个厂商总的不良数量,至于不同不良原因的数量,却在T1中,那里却无法区分到厂商。这是设计的问题,有时候会不得不出现这样的情况,这里姑且不论,还是来看看这两个不同粒度的表如何关联起来做分析。) 假使将这两个表用D1关联起来,做成一个视图,结构为V(D1,D2,A2,M1,M2,M3),这是一个按照细粒度表T1为准的视图,那么M2, M3针对不同的D2值(可以理解为不良原因),是重复冗余的。如图0所示,基于这个数据,来看看不同的展现结果。为了称呼方面,此处将出现在界面上的维度或者作为过滤条件的维度叫做"分析维度"。 [图0:附件-gran0.jpg] 第一种情况,将D1、D2、A2都作为分析维度,参见图1,这样的结果能说得过去。但要注意由不良原因"多漆",I002,以及抽样数确定的单元格中那个200指的是I002检验时的200,虽然这本身不是非常合逻辑,但至少这个200是能够解释的,下面都有同样的问题。所以,这张表可以视为正确。 [图1:附件-gran1.jpg] [图2:附件-gran2.jpg] 第三种情况,将D2、A2作为分析维度,参见图3。这个报表展现不同厂商、不同原因的不良数、抽样数和检验不良总数。看不良数,没问题,但看这个抽样数和检验不良总量数,就有些奇怪了,它们对应的维度值是"不圆"和"神奇",这是什么意思?其实它是依赖检验批次的,是指I003次检验,抽样了20,其中不良的6个。但"不圆"原因只出现在一次检验中,那次的抽样数为20而已。因此在这个报表中,没有将检验批次作为分析度量,让数字有些难以理解。 第四种情况,仅将D2作为分析维度,参见图4。表示不同原因的不良数、抽样数等。同样,因为"不圆"原因只在I003次检验中出现,因此不圆那一行的抽样数20,检验不良总量6也是不好理解的 。其实,如果论抽样,也应该是320个(100+200+20)。 [图4:附件-gran4.jpg] 第五种情况,仅将A2作为分析维度,参见图5。表示不同厂商的不良数,抽样数。显然,抽样数、检验不良总量是重复汇总了。 [图5:附件-gran5.jpg] 第六种情况,将D1、A2作为分析维度,参见图6。因为A2是唯一依赖D1的,所以和单独以D1作为分析维度没什么区别。但明显,其中的抽样数和检验不良总量,也是因为忽略了不良原因,造成重复汇总。 [图6:附件-gran6.jpg] 从上面六种情况可以看到,第一、二种情况的报表是可以理解的。第三、四种情况,出现在粗粒度表种的度量数字不能理解。第五、六种情况呢,干脆就是数据重复汇总,更加不能容忍的。 为此,可以基本得出一些结论,当粗粒度表T2和细粒度表T1关联起来做分析展现时: 2、细粒度表中作为主键的维度,但并非粗粒度表中主键维度的,需要作为分析维度。因为少这种维度,就会发生汇总,而这个汇总对于粗粒度的度量值来说,就存在重复汇总的错误。第五、六种情况就是如此。) 如此看来,最终的结论是为了让报表数字能够理解,并且不会发生重复汇总。细粒度表T1中所有主键维度都必须作为分析维度。属性维度则是可选的。 责编:姜玲 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:kaiyun体育官方人口
文章著作权分属kaiyun体育官方人口
、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
热门博文 |
|