c语言sscanf函数的用法是什么
318
2022-11-19
构建数仓指标体系4:理解原子、复合、派生指标(1/3)
指标肯定与建模是有关系的了,目前世界上两种主流的数仓建模方式,会有Kimball先生的维度建模和Immon先生的主题建模(3范式)。别看互联网上Kimball先生的维度建模是主流,但像金融领域Inmon先生的主题建模(3范式)才是主流。
由于本人的工作经历关系,如没有特别标注,使用的都是维度建模的理论体系。
要了解原子指标等指标分级体系,首先得知道维度(表)与事实(表)的概念,这也是维度建模的核心,但由于我们这次的课题不是建模,因此只需要在概念上有个大概的理解便可。
一、维度的定义
维度的正式定义是:维度表是事实表不可或缺的组成部分。维度表包含与业务过程度量事件有关的文本环境。它们用于描述与“谁、什么、哪里、何时、如何、为什么”有关的事件。(The dimension tables contain the textual context associated with a business process measurement event. They describe the “who, what, where, when, how, and why” associated with the event.)
PS.国内正式出版译本把textual context翻译为文本环境,有的书会翻译为“文本的上下文”或“文本的语境”等。我个人更倾向于直译为“文本的上下文规则”。关于上下文这个词,正式翻译可以翻译为“语境”,但这个翻译还是很别扭,IT中可以译为“因素”或“脉络”。即textual context="行文脉络",意指维度是用来度量事实的脉络(因素)。
我自己的理解:维度是用来分类业务过程数据的,或者说业务过程是按维度来度量其工作的好坏;
再粗暴及技术一点的理解:维度是一些用于分类业务或者度量业务的枚举值(有例外情况,后面会提到);
各位同学可能很奇怪为什么说维度是分类业务数据的,又为什么是事件的度量(关于事件的描述及原由,请看下文第二大点“事实的定义”)。我拿订单来举几个例子,把分类、度量、业务做一个关联:
区域维度表:如广州、深圳等,是把订单按城市维度划分,也就是按城市来分类订单,或者说按城市来度量订单情况,也就是按城市来度量业绩(卖得不好的城市总负责人估计就要背锅了);
产品维度表:如iphone13、mate40等,是把订单按产品维度划分,也就是按产品分类订单,或者说按产品来度量订单情况,也就是按产品来度量业绩(卖得不好的产品就要咔嚓掉了);
各位同学可能很难接受这种这么奇怪的解释,让我们回到维度表的正式定义:它们用于描述与“谁、什么、哪里、何时、如何、为什么”有关的事件。
谁(Who):即人的维度表,或者是会员的维度表;
什么(What):如产品、产品线、业务线条等;
哪里(Where):即区域维度表,如北上广深;
何时(When):即时间维度表,时间维表上一篇文章介绍过了;
为什么(Why):即原因,如产品购买的原因,可以是“促销”、“价格便宜”、“外观漂亮”等;
其实除了这个5W1H,我们现实中,还可以举出更多的例子,如支付能力“高/中/低”等,技术一点来说,这些全都是枚举值,用于度量事实的枚举值。
注意,维度的例外情况:有些枚举值不是维度,如表示状态(有效、无效),大厂们叫“普通修饰词/修饰词/口径”。当然,我们也可以不按大厂的定义,按Kimball大神的理论这些也可以定义作维度的。
例:有促销员进驻的(促销员列的值为:1),有效的门店(门店状态列的值为:有效),线上生鲜门店(渠道列的值为:线上)
二、事实的定义
事实的正式定义是:维度模型中的事实表存储组织机构业务过程事件的性能度量结果。“事实”这一术语表示某个业务度量。从市场角度观察,记录销售的产品的数量单位,以及每种产品在每个销售事务中涉及的销售额。(The fact table in a dimensional model stores the performance measurements resulting from an organization’s business process events.The term fact represents a business measure. Imagine standing in the marketplace watching products being sold and writing down the unit quantity and dollar sales amount for each product in each sales transaction.)
PS.国内正式出版译本把performance翻译为性能,大家或者可以尝试理解为效果(业绩/绩效)也可以。
事实比较好理解,就是业务过程,如订单、物流等的,其特点是连续数据(连续指不停产生的数据,不是指12345这种连在一起的数据),不是枚举值,也不是累加值。连续的方法一般是时间、地点等的维度进行连续。值得一提的是,维度建模把业务过程产生数据记录的动作,称为事件,这也是维度的定义中事件的这个词的由来。其实也好理解,如客户下了一个订单,就是产生了一个订单的事件。
也就是说,事实表是由无数个连续的事件构成,而这些事件的度量脉络(因素),就是维度。
注意:随着业务越来越复杂,有些表已经很难单纯用维度和事实来表示,很难界定是事实还是维度。如患者与医生的关系表,就会出现多多的关系,若是使用Immon先生的理论建数仓,这种表多的是;但如果要用维度建模,就要冗余到事实表中,会造成计算量的暴增。因此,我们建数仓的时候,很多时候会以维度建模为主体,少量数据保持3范式,总之一句话,性能怎么高就怎么来...
三、两家大厂对指标的定义和理解
阿里:
原子指标用于明确业务的统计口径和计算逻辑,是基于用户的业务活动(即业务过程)创建的,用于统计业务活动(请参阅前文业务过程,同义)中某一业务状况的数值。例如,用户的业务活动为购买,则原子指标就可以指定为支付金额。
派生指标是由原子指标、时间周期、修饰词构成,用于反映企业某一业务活动在指定时间周期及目标范围中的业务状况。例如,某企业近一周上海地域的销售金额。本文为您介绍如何创建并使用派生指标。
详细请参阅:Data WareHouse ToolKit Third Edition》
(2)关于Context的英文详细注解,请参阅:http://englishtextualconcepts.nsw.edu.au/content/context
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~