实验指标报表¶
AB实验最终是以提升业务的指标为目的。上线实验后,我们期望可以可视化的看到实验效果及指标数据。本文介绍的实验指标系统包括3部分, 指标数据源的接入, 指标的定义, 实验指标的可视化展示。
整体架构¶
PAI-Rec 引擎是我们的推荐服务,里面集成了配置中心的 SDK,实验信息从配置中心获取到。在推荐服务返回接口中,会记录实验id exp_id, 以及请求的标识 reqid 等。这些数据会埋点在服务的 APP 上。
当用户产生行为时,最终数据会回流到系统中,我们现在支持数据源在 ODPS 中。 当配置中心配置了若干个指标后,我们会动态组装 SQL, 然后对 ODPS 的数据进行计算、统计,并把结果存到 Hologres 中。在报表页面,可以实时查询到指标数据。
数据源定义¶
数据源包含两部分,数据来源表,以及数据结果表。来源表是 ODPS 表, 结果表是 Hologres 表。并且需要遵循一定的 schema 规范。
实验报表来源表¶
字段名称 |
字段含义 |
是否必填 |
说明 |
---|---|---|---|
user_id |
用户id |
是 |
用户标识,可以是用户的 uid, 也可以是设备 devcie_id, imei 等 |
exp_id |
实验id |
是 |
ab 服务返回的实验id, 通过埋点回流。如果是用户的自己的推荐服务,设置自定义的标识即可。exp_id:ER1_L1#EG1#E1_L2#EG2#E2 |
维度字段 |
比如操作系统 os |
否 |
可以根据此维度字段过滤对应的指标 |
计算字段 |
比如 曝光, show_count, 点击,click_count |
是 |
计算字段是用户填写的数值类型,比如曝光数,点击数,观看时长等 |
dt |
日期分区 |
是 |
格式:yyyyMMdd |
hh |
小时分区 |
否 |
24小时制, 00 ~ 23 |
mm |
分钟分区 |
否 |
00 ~ 59 |
来源表可以离线产出,也可以实时产出,主要看客户的业务系统。如果是离线产出, user_id, exp_id, dt 是必须的。 如果是实时的,user_id, exp_id, dt, hh 是必须的,mm 分区不是必须的。
指标也分为离线和实时。如果是实时产出的数据源,离线、实时指标可以共用一个数据源。如果是离线产出的数据源,只能创建离线指标,无法创建实时指标。
上面的维度字段也不是必须的,加上维度字段可以对指标进行维度分析。比如常见的维度字段有性别、操作系统(IOS, 安卓)等。这样报表的数据可以分 男女,ios 和 安卓进行查看。
实时报表结果表¶
字段名称 |
字段含义 |
是否必填 |
说明 |
---|---|---|---|
exp_id |
实验id |
是 |
ab 服务返回的实验id, 通过埋点回流。如果是用户的自己的推荐服务,设置自定义的标识即可。如果是ab 服务的实验id, exp_id 是拆分开的,具体到某一个实验上。 比如 L1#EG1#E1, L2#EG2#E2 |
维度字段 |
比如操作系统 os |
否 |
可以根据此维度字段过滤对应的指标 |
metric_name |
指标的名称,比如 pv, uv, ctr 等 |
是 |
|
metric_value |
指标的值 |
是 |
float64 值 |
dt |
日期字段 |
是 |
格式:yyyyMMdd |
hh |
小时字段 |
否 |
24小时制, 00 ~ 23 |
mm |
分钟字段 |
否 |
00 ~ 59 |
结果表字段基本都是固定的,只有维度字段是可变的。维度字段的定义与来源表中的定义保持一致即可。
离线指标和实时指标不能混用一个结果表。离线指标结果表只需要有 dt 日期字段即可。实时指标至少要有 hh 小时字段 。
配置举例¶
来源表配置
结果表配置
指标定义¶
从生成方式上来说,指标分为离线和实时指标。从类型上来说,分为单一指标和衍生指标。衍生由两个单一指标组成,并支持 + - * / 计算。
指标定义,如果 ODPS 支持的 function 都可以支持。
离线指标¶
在指标的定义中,我们可以指标模板来快速创建指标。
实时指标¶
衍生指标¶
指标诊断¶
指标定义之后,可以使用指标诊断功能,来判断可能出现的问题,防止配置错误。
指标统计流程¶
指标测试和数据重跑¶
当新增加一个指标时,可以使用指标测试功能,快速的验证设置的指标是否是正确的。 指标测试是对昨天的数据进行重跑。
重跑的结果可以通过离线任务列表来查看。 如果重跑失败, 可以查看 message 相关的信息。可以把 message 相关的信息拷贝到 dateworks 里执行,来查看具体的错误原因。
如果重跑成功,可以查看相关的报表,看下相关的数据是否正确。
如果指标测试成功,需要跑多天的数据,可以使用数据重跑功能。 如果有时候当天的数据源没有正确产出,数据修复后,也可以使用数据重跑功能。
实验指标报表¶
离线指标和实时指标分别对应不同的报表。报表查看可以直接通过实验组来看到各个实验的指标值以及与base 实验的差异。
这里还可以设置维度,比如根据操作系统来区分实验效果。 不设置维度值,会把维度的所有值拿出来对比。