如何设计一个AB实验平台
请设计一个支撑日均千万级实验流量、数千个AB实验同时在线的AB实验平台。包括:1)分流方案(Hash分流/分层分流);2)实验指标计算(实时指标+离线指标);3)数据一致性保障(SRM问题);4)实验管理平台设计;5)统计显著性检验方法。
回答
Yahuda
AB实验平台设计
分流方案:
- 分层分流(Google Overlapping Experiment):每层正交,流量可复用
- Hash分流:用户ID哈希取模,保证同一个用户命中同一实验
- 分流服务:Redis存储实验配置,SDK侧本地Hash,延迟<1ms
指标计算:
- 实时指标:Flink消费埋点日志,滑动窗口聚合(PV/UV/转化率)
- 离线指标:Spark/Hive计算次日留存、ARPU等复杂指标
- 指标存储:HBase(实时)+ ClickHouse(离线+明细查询)
SRM问题(Sample Ratio Mismatch):
- 原因:分流不均、埋点丢失、过滤条件不一致
- 检测:卡方检验监控每天的分流比例是否显著偏离预期
统计检验:
- 双样本Z检验(比率类指标)
- T检验(均值类指标如人均时长)
- 多重比较校正(Bonferroni/FDR)
- 必备实验追踪:MDE效应量、统计功效计算
实验管理:可视化创建实验→流量分配→指标配置→自动出报告