
3.2 数据指标中心的设计思路
3.2.1 定义指标并将其归集到对应的主题域
指标的本质是量化的目标,常见的例子如下。
(1)我们要把用户的盘子做大,对应的指标就是已注册用户数。
(2)我们要统计今天的销售额,对应的指标就是总支付金额。
(3)我们要衡量一次活动的效果,对应的指标就是下单率。
从上面的例子中我们可以看到,比较常用的几类指标是存量型指标(已注册用户数)、事务型指标(总支付金额)、转化型指标(下单率)。另外,还有比例型指标、统计型指标、排名型指标等,这些指标不常用,所以此处不做介绍。
这些指标分散在产品的不同功能模块中,所以为了更好地规范与管理这些指标,我们需要将这些指标按照主题域的方式归集起来。我们在数仓模型中心对主题域进行创建与定义,在这里我们只需要将对应的指标划归到对应的主题域中即可,如表3-1所示。
表3-1

3.2.2 拆分原子指标与派生指标
先来看原子指标与派生指标的概念。
(1)原子指标:事实逻辑表中某个字段的统计值(sum、count、max、min、avg),如下单用户数、下单金额等。
(2)派生指标:基于原子指标,进行维度组合后产生的指标,如近1天商城下单用户数、本周商城黄金会员下单金额等。
原子指标无业务意义,它只是预定义的代码片段。我们在业务中用到的指标基本都是派生指标。新建原子指标如图3-1所示。

图3-1
3.2.3 定义原子指标与派生指标的生产逻辑
前文提到过“将指标的组成部分解耦拆分开来,并在逻辑表中进行规范的定义”,这个解耦和定义的过程就是把一个派生指标拆解成统计周期、聚合粒度、限定维度、原子指标,再重新拼装,生成新的派生指标的过程,如图3-2所示。

图3-2
我们可以这样理解上面的例子。
(1)统计周期是这个原子指标进行统计运算的时间范围,在这里是本周。
(2)聚合粒度是指标的主体,即按照哪个维度来进行聚合,在这里是黄金会员。
(3)限定维度限制原子指标的计算范围,这里限定在商城,即只计算与商城相关的数据。
(4)原子指标是预定义的某个字段计算规则,在这里是求和(下单金额)。
创建派生指标如图3-3所示。

图3-3
3.2.4 通过指标管理平台对指标进行规范生产
1.规范指标命名
命名规范对后期大量的指标管理来说非常重要,因为当指标很多时,我们要寻找一个指标就经常需要用到检索功能,而检索的前提是我们对指标有一些前置的认知。这就需要我们规范指标命名。
指标命名规范有3个重点。
(1)简洁明了、易懂:最好让人只要看到指标名,不需要看注释就可以知道它的含义、归属等。
(2)格式统一:每个指标的格式都是相同的。
(3)生成统一:原子指标与继承自它的派生指标的规范是一致的。
以与商城相关的指标为例。
(1)所有业务下单与支付指标,默认以“主单”为统计口径,不用带与“主单”相关的字眼,如商城下单次数;当统计口径为“子单”时,则需要在命名中标出,如商城子单下单次数。
(2)所有与人相关的指标都默认以“注册用户”为统计实体,不需要带与“用户”相关的字眼,如访问次数;当统计主体为“游客”时,则需要在命名中标出,如游客访问次数。
(3)无指定业务范围的指标默认为平台指标,不需要带与“平台”相关的字眼,如近30天支付人数;如果限定了业务范围,就需要加上业务名称,如商城-近30天支付人数。
(4)无指定时间周期的指标默认为“近1天”(但需要保存小时粒度,便于后续下钻),不需要带与“时间”相关的字眼,如注册人数;如果限定了时间范围,就需要加上时间周期,如近7天注册人数。
完整的指标命名规范为商城(业务板块)+用户(实体)+近7天(统计周期)+新增(业务动作)+子单(类型)+单日(间隔周期)+平均(统计运算规则)+支付金额(原子指标),如商城-用户近7天新增子单单日平均支付金额(没有的部位可留空,如商城-汇总支付金额)。
2.规范统计口径
当指标主体为实体(名词),如游客、用户、商品等时,则只需定义单位为“人/个”即可,如游客人数、用户人数、商品个数。
当指标为业务动作(动词),如点击、支付、下单等时,则除将单位定义为“次数”外,还需考虑与这个动作关联的实体的单位,如当实体为“商品”时,则需要多定义一个单位“笔数”;当实体为“用户”时,则需要多定义一个单位“人数”等。因此,一个下单动作的指标会有多个不同的统计口径,如下单次数、下单笔数、下单人数等。
我们在定义指标名称时,需要清楚地定义指标名称,避免出现“下单数”这样模糊的指标。
3.规范指标等级
随着企业的发展,产品在不断地进行迭代,功能的增删与业务的变化势必影响指标的发展,一些旧的指标被不断更新或废弃,而新的指标也不断增加。这时,对指标的管理就成了一个问题,哪些指标由谁开发?后续由谁来维护?……
一个比较好的解决方案就是对指标进行等级划分。我们可以将指标划分为两个等级。
(1)一级指标,即原子指标与小部分全平台的核心指标,在从各个业务部门收集需求后,统一由数据中台来产出,有一套完整、规范的开发流程:需求—评审—排期—开发—测试—验收—上线。所有维护管理工作都由数据中台负责。
(2)二级指标,即派生指标,由各个业务部门自行通过指标中心生成,没有严格的开发流程,各个业务部门根据需要自行创建,但需要遵守指标命名规范。所有维护管理工作都由部门内部负责。
指标等级划分如图3-4所示。

图3-4