|
olap建模中的统一维度方法讨论Zhu Sizheng 20060815 在erik thomsen的olap解决方案:创建多维信息系统一书中,提到的将所有维度统一对待的方法,称为统一维度方法,前面看微软的东西,也有udm(统一维度模型)这样一个概念,是越看越糊涂,不知道哪位大哥能帮助解释一下. Zhu Sizheng,您好! 统一维度方法; 统一维度模型; 维度vs.度量; byehill 20060815 维度的统一化模型应该有它的优势所在。举个小例子: 如果有一个表A: Date Brand Price 我们在做OLAP(或报表)的时候,如果需要以天为最小粒度对手机价格分品牌进行分析,并进行价格核算,如果我们将Price设置为度量,那么很显然前端展示出来的价格只能有一个3500(或3600)。如果我们将Price设置为维度,那么我们的问题就迎刃而解了。不过对于价格核算,维度的作用就要相对度量弱一些了,毕竟是一个实体性质的东西。目前这方面还没有研究。以上意见不太成熟,仅供参考,希望交流! Innovate511 20060816 不知道这些公司的产品有什么更多功能,但如何建模更多应该是建立实际和理论上,可能是工具能帮助建模吧。 我觉得统一维度建模应该是针对整个EDW,也就是Kimball说的conform table,而不是要统一维或者度量。在实际项目中,绝对统一的维或者度量都不是科学的,原因很简单,客户的需求是多样的,你凭啥要统一客户的需求呢?比如时间维,客户关系部门和财务部门对季度或者年的定义不同,如果你统一时间维,如何满足各自的需求呢?再如度量,美国分公司要求金额用美金,而中国分公司要求用RMB,总公司用欧元,这是完全合理的需求,你统一后,如何满足各自的需求呢? Zhu Sizheng 20060816 谢谢,qing兄,adam.cao,goldfish,byebill,innovate等兄台。 统一维度方法:所有结构化的数据用统一的维度定义。也就是说将所有的结构化数据用维度的方式统一对待。如 Essbase中,将变量(度量?朱建秋老师害人不浅啊,我在他翻译的书里前前后后找了几遍,都没有看到变量和度量的区别,也没看到原来的单词是否是同一个字)看成是"变量维度"中的一个成员。(书 p73) 将度量作为度量维度中的一个成员,那么就会隐式地创建一个数据维度。(书 p75) 由此看来,在朱建秋老师翻译的过程中,变量和度量应该是一个单词 variable,而我们平常所说的度量( measure)则被翻译成了测度。我最初对度量的理解就如同刘庆在《ttnn : 度量、指标和指示器之区别》中描述的一样,度量度量就是对一个刻度的丈量,是一个由数字和单位组合的集合的描述,它的值就是确定数字和确定单位组合后的集合,如 30元(还得注明:人民币还是美元,当然这是在元数据中定义的)。 看一个简单的例子。 元数据: 时间维 商店维 产品维 度量维 数据维?(隐含的) 时间 商店名 产品名 度量名 数据 1 :这个隐含的数据维度的问题(在多维数据源中并不包含一个对应于数据维度的元数据,还有就是数据并不都是一个类型的,什么整数,浮点数,货币,分数等…….. ,傻眼了!) 2 :对于上面例子中的数据你怎么计算阿(也就是所谓的断言或者组织良好公式的问题) 时间维 商店维 产品维 度量维 度量范围 时间 商店名 产品名 度量名 数据 学生 科目 成绩 考试开考时间 考生交卷时间 考生考试用时(分) 度量,用中文表示可以是名词,也可以是动词。名词的意思可以是 "度量" 的结果值或是指"度量" 过程。动词就是丈量、衡量这个行为。在英文里面,Measure可以是度量值的意思,也可以是作动词,而" 度量过程"这个名词用Measurement 来表示。 因此理解度量这个词,可以从其本身意义理解。度量,其相近含义包括丈量、衡量,首先得有个标准,譬如说丈量得有米尺,衡量有杆秤。度量出来的结果,度量值也就必须是有个单位的。例如重 15斤,长1.4 米等。此处,斤、米就是标准,有了这个标准,不同的度量值才有可能比较,你用15 斤和1.4米 比较可没什么意义。 度量和维度构成OLAP 的主要概念,这里面,对于在事实表或者一个多维立方体里面存放的数值型的、连续的字段,就是度量。这符合上面的意思,有标准,一个度量字段肯定是统一单位,例如元、户数。如果一个度量字段,其中的度量值可能是欧元又有可能是美元,那这个度量可没法汇总。 在OLAP 中还有计算度量的说法,用一个总费用除以用户数,得到每户平均费用。但这究竟还算不算度量了呢?我认为已经不是原本意义上的度量了,只是为了称呼方便而已。 这就得说到指标,英文的Metric 。在绩效管理软件里面,通常是有这个概念的。如果非得给Metric 一个定义,我愿意表述为"它是表示某种相对程度的值" 。区别于上面的度量概念,那是一种绝对值,尺子量出来的结果,汇总出来的数量等。而指标至少需要两个度量之间的计算才能得到,例如ARPU,用收入比上用户数,例如收入增长率,用本月收入比上上月收入。当然可能指标的计算还需要两个以上的度量。 而Indicator 的字面意思为指示器,在KPI 中,最后一个I就是它,但是用中文称呼它的时候,几乎总是叫" 关键绩效指标",而没有叫做" 指标器",也就造成一些混乱。 想想我们身边哪些东西是充当指示器的。红绿灯,提醒行人车辆是否等待或通行;监控室里的警报灯,提醒哪儿出现异常;汽车仪表盘,提醒驾驶员油是否足够,速度如何。它们起到的作用是传递一种宏观的信息,促使人的下一步行动。红灯停绿灯行;看到警报亮起要赶紧派人查看。目前常见的企业绩效管理软件中,仪表盘(有的地方称作驾驶舱)的展示界面也是必不可少,正是用这种直观而比较有象征性的指示器反映企业运营状况。 可以设想提出KPI 的初衷,是希望企业通过一些粗略(非细节)的信息(而非数据)来为下一步的决策作出依据。导致不同的决策行为必定是离散的输入,最简单的就是一个开关,是或不是(例如警报灯)。如果说度量和指标是定量话,指示器就是一种定性的。 现实中,大家对于三者的称呼并不那么严格, "指标" 是最通用的称呼,"度量" 显得有些学术和技术话,而"指示器" 很少听人提起。在电信的经营分析中,确实很多都实现KPI,正如上面所言,领导不可能去看细节的数据,他们关注的是宏观面的经营状况,因此需要一些" 指示器" 来反映。 然而,这些系统中的KPI 并非完全上面提到的指示器,很多系统建设称为度量系统或是指标系统。而对一个企业,哪些指标能够充分反映经营活动,这也是需要精心制定的,而不是让技术部门提出一堆似是而非的指标名称,诸如在网用户数、收入之类,这不是KPI 。 "度量 "是绝对的定量值; " 指标" 是基于两个或更多度量计算得出的相对值; " 指示器"是基于度量或指标,并依据某个基准值得到的定性结果; ----- 刘庆《ttnn: 度量、指标和指示器之区别》 smailagain 20060821 to Zhu Sizheng 数据:
如果用这种方式存放数据,把成本、销售当作描述性的维度指标,存放在关系型数据库中的话,你会发现,很多SQL很难写: 比如1月份各店、各产品的毛利润(成本-销售)是多少?所以,我觉得,如果采用关系型数据库来存放模型的话,不建议采用这种方式,还是将销售、成本当初度量来对待比较方便。 essbase采用的是Molap形式,文件存储,不用SQL访问,而用MDX语言。也许就不觉得这种方式别扭了(我对essbase也知之甚少)。
smileagain,您好! essbase对于此有2种数据装载方式 1、如你所写 时间 商店名 产品名 度量名 数据 2种数据装载方式的不同就在也rule files创建的方式不同。 essbase可以直接调用SQL做数据装载。在7X版本的ASO中是用MDX,BSO方式还有用的MXL脚本。 责编:姜玲 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
热门博文 |
|