原子指标与派生指标
原子指标是对指标统计口径算法的一个抽象,等于业务过程(原子的业务动作)+ 统计方式。例如,支付(事件)金额(度量),曝光(事件)次数(度量)。
不同的派生指标可能具有相同的原子指标,这样派生指标就定义了一种等价关系,而属于相同的原子指标就构成了一个对指标体系的划分。在每一个划分中,存在一个可以派生出其他指标的最小派生指标,即最细粒度。
让我们规范化定义,记录 (业务过程事实表),
定义了一个统计方式(ex: sum, count, max, count distinct...)。
对于的一个分拆
,如果
,则
具有派生的可加性,如sum, max, count...但是我们都知道count distinct(简写ctd)是一个例外,一般不具有可加性。这是因为count distinct 蕴含了一个分拆
(count distinct c = count(select c from group by c)),而不是上述分拆
的子分拆(
,不存在
)。
但是如果我们定义一个,而
是
的子分拆,这显然是可以找到的。那么我们就可以让ctd函数具有可加性,而
可作为
的维度属性。例如,用户每日购买的首个商品,用户归一化的来源渠道。
下面我们提出这样一个问题,是否可以找到一个,使得我们事实表中
,同时满足上述ctd度量的可加性。答案是肯定的,前提是
。
我们进一步提出这样一个想法,是否可以对每一个,
,这样我们定义出
便具有实际的意义。也就是我们将每一条记录赋予一个新的column
,即
,其中
可以视为数据表的主键,
surjective,
即为新的一列,可视为
的维度属性。则对于
而言,
,
: fixed points,
,
non-fixed points。
然而这样的想法是保证不了严格的成立,设想数据中每一个用户都购买了某一种商品
,其中有一些用户购买了商品
,那么
,因为
是
的函数,所以数据中每一条记录的
都等于
。那么对于
而言,
一定等于0。