做指标管理要先做术语管理和定义原子指标。
如何定义原子指标?原子指标可能是某个业务过程的度量值,也有可能是某个业务过程的轻度汇总数据,也有可能是某几个业务过程,可能跨域的度量值或汇总数据。
原子指标根据产生的数据源分为以下六种。
一个业务过程 | 多个业务过程 | 多个业务过程并且跨域 | |
度量值 | 1 | 3 | 5 |
轻度汇总的聚合值 | 2 | 4 | 6 |
定义原子指标,就要先定义业务过程。
定义业务过程,就要做术语管理和数仓事实表。
所以整个指标管理的顺序是这样的:
值得注意的是,根据宽表的粒度不同,字段会分为以下几种情况
只要满足以上3点之一,就无法从A类和B类表中得到,必须设计C类表。
第二阶段:
根据业务发展的速度,C类表字段会越来越多,会产生口径问题,
因为A类+B类表中,与C类表会产生越来越多的相同的字段,(A类表和B类型不会冲突,因为粒度不一样)
此时就要做指标迁移。将尽量多的原子指标的定义,从A类表和B类型中迁移到C类表,规范取数口径,禁止再从A类表和B类表取数。
最后完成迁移,将C类表完全定义为原子指标层。
为什么一开始不定义C类表为原子指标层呢?因为C类表是以满足衍生指标,也就是业务需求而设计的,在一开始没有业务驱动的情况下很难设计。
第三阶段:
当不同业务,如财务,运营,都对某粒度的数据有大量指标需求的时候,该粒度的C类表的字段会越来越多,导致该C类表,不堪负重
这个时候就要拆分C类表,相同粒度下,不同业务目的分为不同的表。不同的表不同开发。此时略微会有口径的隐患
第四阶段:
如果相同粒度的C类表达到一定程度,就要设计分析域,将不同的分析目的的表,放入各自的分析域,相当于数据集市。
各个数据集市分别开发,一种粒度的表只会存在一张。
由于各个数据集市都是独立的,所以跨数据集市的相同字段,可能会出现口径问题。
口径问题没有办法完全避免,只能缓解,比如针对各个数据集市再做几张通用表。为了方便产出,会一定程度上牺牲口径的一致性。
原文:https://www.cnblogs.com/feizaijiawenzhu/p/14611888.html