【AB平台数据建设】从实验平台到数据管道

文章目录

    • 前言
    • 1.从AB实验平台聊起
      • (1)AB平台在业务中的发挥那些作用
      • (2)AB平台进行实验工作流介绍
    • 2.实验平台底层数据管道最小MVP解构
      • (1)数据管道数据从哪里来?
      • (2)数据管道的输出数据有哪些?
    • 小结

前言

AB实验平台是一种通过小范围放量,测试不同方案对业务指标影响的归因工具,它可以帮助我们科学优化产品设计和提高用户体验。然而,要实现一个高效和可靠的AB实验平台,一个强大的数据支撑,包括数据采集、数据处理、数据统计和数据展示等环节。本文,借着渭佬对hive解决实际业务问题的开坑需求,计划出一个系列来和大家聊聊怎么用hive这项工具实现AB实验平台底层的数据管道搭建,系列计划从三个环节进行讲解:

  • 最小的实验平台级别dmeo的底层数据管道方案如何设计?
  • 实验数据管道数据处理部分问题有那些?如何通过hive实现?
  • 实验数据管道数据统计、检验部分问题有那些?如何通过hive实现?

本篇主要围绕AB平台demo的底层数据管道方案设计话题展开

1.从AB实验平台聊起

这章通过下楼学习法的方式向读者讲解:首先理解AB平台在发挥什么作用?使得AB平台的发挥作用的工作流程讲解、再基于工作流程下楼推导引出满足工作流程的数据链路应该包含那些信息表以及它们的作用,希望可以帮助读者更好的理解

(1)AB平台在业务中的发挥那些作用

AB平台的核心是通过在线对照实验(Online Controlled Experiment,OCE),将用户随机、均匀地分为不同的组,同一组内的用户在实验期间使用相同的策略,不同组的用户使用相同或不同的策略。然后,通过收集和分析用户的行为数据和业务数据,评估不同策略的效果,从而做出数据驱动的决策,在实际业务场景中,AB平台主要可以起到以下作用:

  • **科学决策:**在消除客户体验((UI)设计、营销策略、算法优化等)中不同意见的纷争场景,通过实验平台科学决策可以消除纷争。如:如营销场景中想要知道8折促销和满100减20谁带来的营销提升大,这是通过实验平台建立一个以销售额为评价指标的不同促销策略的AB实验进行观测,就可以很好的得出答案
    图来自:如何支持亿级用户分流实验?AB实验平台在爱奇艺的实践
  • **试错成本最小化:**通过AB平台基于目标显著计算可得到满足实验进行的最小样本量,进而进行小范围分流测试,在确保得到可信实验结果同时将无法确定效果的新功能上线后带来的风险控制在了最小,规避直接全量的发布带来对用户带来大范围使用体验影响和关键指标波动难科学归因的风险
  • **快速实验,验证因果:**AB另一个好处就是可以快速敏捷验证产品的猜想,帮助产品找到问题的真正原因,并量化影响因素的大小,提高产品设计和运营水平

(2)AB平台进行实验工作流介绍

在数据分析实际工作,一个最小的实验demo发起最少应包括以下环节:

  • 前期分析,制定策略:,对于分析同学来说,比较理想的情况是大部分的AB实验发起来自分析师分析中对产品、算法同学负责业务场景数据分析报告的优化建议:分析师通过数据分析发现xxx场景存在xxx问题,建议xxx做xxx优化以提升/解决。由此为契机,协助业务同学制定业务的优化策略,并沟通好策略评价指标与需要同时观测的关注指标 (这部分在数据链路系列不做详细讲解)

image.png

  • **设计开发、发布实验:**制定好优化策略并完成开发后,业务同学就可以在实验平台中进行实验的注册,并完成实验对应指标信息的填写后发布实验。21年版本的火山AB平台的实验注册为例主要需要完成基本信息、版本信息的填入与指标、实验样本的选择。
    21年版本的火山AB平台的实验注册流程
  • 实验生效、数据回收:实验发布后,一般通过哈希分流的方式将对应比例的用户随机分流到实验对照组中,各组的用户数据一般通过埋点方式采集回收至数仓,用于后续的数据统计分析
  • 统计检验,生成结论:过数据仓库对埋点数据进行清洗后,进一步统计得到指标数据,基于指标数据可以再得到检验的结果数据后将ads层的数据统计检验结果上传到平台用户展示、与结论的生成解读
  • **基于结论,决策实验:**根据数据分析的结果,分析和业务同学判断实验是否符合预期目标,而做出决策,是否要大规模的放开优化策略,同后续数据持续跟踪(这块细节 数据管道系列不会展开)

2.实验平台底层数据管道最小MVP解构

基于上述最小实验demo的工作流介绍,笔者以前端类实验为例绘制一个简单的AB实验平台数据管道流转图:
AB实验平台数据管道实现最小MVP构成
章节2围绕图(AB实验平台数据管道实现最小MVP构成)向大家介绍想要一个支撑AB实验平台跑通的数据管道至少需要获取那些数据源以及向平台输出那些数据

(1)数据管道数据从哪里来?

由图(AB实验平台数据管道实现最小MVP构成)不难看出,想要实现实验平台数据管道自动化跑动,至少需要获取以下两个渠道的数据:

  • 实验平台侧的实验信息数据
  • 产品侧AB实验进组用户的埋点行为数据

实验平台侧,这里继续以火山的AB平台为例,为了后续数据管道的跑通:最少需要平台中:

  • 实验列表信息:即实验的名称、实验id、实验版本信息、版本id、实验指标信息、指标id等;
  • 指标管理信息:即指标名称、指标id、指标统计类型(是均值类指标(如日活)还是比率类指标(如点击率)等)、指标统计id(均值类需要曝光埋点、比率类需要分母、分子类埋点)
    注:这里需要注意的是笔者提及需要来源数据解决方案均实验平台所在公司没有指标管理平台建设或指标平台未和AB平台打通;如下火山为例,AB平台内自嵌了一个指标管理

火山AB平台首页(包含实验、指标、feature管理)
**产品侧:**产品的数据主要需要前端上传埋点类的行为数据用于后续实验的指标统计,至少需要用到:

  • 用户的行为数据信息:一般来自前端埋点页面的曝光、点击等埋点日志信息
  • 用户所在实验进组情况信息:用户所在实验组别信息一般通过埋点内字段信息携带

图来自《关键迭代》中bing广告陈列实验

(2)数据管道的输出数据有哪些?

数据管道的输出数据是指数据管道将处理后的数据发送给实验平台的数据,这些数据是实验平台进行监控和分析的基础。数据管道的输出数据可以分为两类:实验指标数据和实验结论数据。这里以腾讯云AB平台实验报告页为例,一份可以支持数据驱动业务决策的实验平台页至少包含以下数据:

数据类型数据含义数据用途
实验指标数据(Experiment Indicator Data,EID)包含实验中关键关注指标的实时(当天)、历史情况数据用于业务、分析同学监控数据,观察实验的效果和趋势
实验结论数据(Experiment Conclusion Data,ECD)包含实验的Z/T检验结果、基于结果推导出的是否通过的结论用于业务、分析同学做出数据驱动的决策,确定是否全量或调整实验方案

腾讯云AB平台实验报告页

小结

本文主要介绍了实验平台的作用与使用流程,以及底层的数据管道的链路图。通过下楼讲解的方式,帮助大家理解平台的作用,以及底层数据管道设计的逻辑思路。不足之处,欢迎大家多多指正,关于实验更多细节欢迎文末评论区提出讨论。
在下一部分,笔者将深入探讨数据管道的实现细节,包括:

  • 如何使用hive对回收的实验信息、实验用户行为数据进行处理清洗的思路以及落地代码(需要一定的Hive中高阶段处理知识如:开窗、行列转化、字符处理等前置知识);
  • 如何设计hive调度实现各类指标统计,完成Z/T检验(Z-test/T-test)结果如何通过Hive完成计算(需要一定的统计检验前置知识)。

希望大家继续关注本系列的后续文章,从中学习到更多的知识和技能。
参考资料:
《关键迭代》
《AB实验:科学归因和增长的利器》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/189039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 网络爬虫(一):HTML 基础知识

《Python入门核心技术》专栏总目录・点这里 文章目录 1. 什么是 HTML2. HTML 的特点3. HTML 的标签和属性4. HTML 的结构4.1 文档类型声明4.2 根元素4.3 头部部分4.4 主体部分4.5 表格标签4.6 区块4.7 嵌套和层次结构4.8 表单4.9 注释 5. HTML 交互事件 大家好,我是…

#zookeeper集群+kafka集群

kafka3.0之前是依赖于zookeeper的。 zookeeper是开源,分布式的架构。提供协调服务(Apache项目) 基于观察者模式涉及的分布式服务管理架构。 存储和管理数据。分布式节点上的服务接受观察者的注册。一旦分布式节点上的数据发生变化&#xf…

【快速见刊|投稿优惠】2024年机电一体与自动化技术国际学术会议(IACMAT 2024)

2024年机电一体与自动化技术国际学术会议(IACMAT 2024) 2024 International Academic Conference on Mechatronics and Automation Technology(IACMAT 2024) 一【会议简介】 2024年机电一体与自动化技术国际学术会议(IACMAT 2024)即将召开,它以“机电一体&#xff0…

2023年【安全员-B证】最新解析及安全员-B证免费试题

题库来源:安全生产模拟考试一点通公众号小程序 安全员-B证最新解析是安全生产模拟考试一点通生成的,安全员-B证证模拟考试题库是根据安全员-B证最新版教材汇编出安全员-B证仿真模拟考试。2023年【安全员-B证】最新解析及安全员-B证免费试题 1、【多选题…

用友U8 ERP和面粉行业专版系统接口集成方案

面粉加工行业面临着数据管理和业务流程自动化的挑战。众诚ERP系统和用友U8系统的数据集成是解决这一挑战的关键。 解决方案 轻易云平台提供了一套完善的数据同步和集成解决方案,包括以下几个方面: 基础资料同步:包括物料、客户、供应商、仓…

解决:AttributeError: ‘NoneType’ object has no attribute ‘shape’

解决:AttributeError: ‘NoneType’ object has no attribute ‘shape’ 文章目录 解决:AttributeError: NoneType object has no attribute shape背景报错问题报错翻译报错位置代码报错原因解决方法今天的分享就到此结束了 背景 在使用之前的代码时&…

【数值计算方法(黄明游)】矩阵特征值与特征向量的计算(二):Jacobi 过关法(Jacobi 旋转法的改进)【理论到程序】

文章目录 一、Jacobi 旋转法1. 基本思想2. 注意事项 二、Jacobi 过关法1. 基本思想2. 注意事项 三、Python实现迭代过程(调试) 矩阵的特征值(eigenvalue)和特征向量(eigenvector)在很多应用中都具有重要的数…

c语言:模拟实现atoi函数

atoi函数的功能和用法&#xff1a; 主要功能&#xff1a;将字符串转换为整数。例如&#xff0c;将字符类型的“123”转换为整数123. #include <stdio.h> #include <stdlib.h>int main() {char str[] "123";int num atoi(str);printf("Converted …

【matlab程序】画海洋流场

【matlab程序】画海洋流场 clear;clc; file ( ‘0227.nc’); latncread(file,‘latitude’); lonncread(file,‘longitude’); uncread(file,‘water_u’); vncread(file,‘water_v’); [x,y]meshgrid(lon,lat); xx’; yy’; interval4; figure (1) set(gcf,‘color’,[1 1 1…

3D云参观红色革命纪念馆允许更多人在线交流、体验

生活在和平年代的新一代青少年&#xff0c;可能对革命先烈英勇事迹难以有很深的体会&#xff0c;无法切实感受到中国共产党无畏牺牲、誓死保家卫国的红色精神&#xff0c;因此借助VR虚拟现实制作技术&#xff0c;让参观者们走近革命先烈中&#xff0c;感受老一辈无产阶级革命家…

domjudge题目配置和开比赛

系统使用的是7.3.3&#xff0c;domjudge配置的方法请参考前文 domjudge配置-CSDN博客 题目导入 传统比较 首先可以去domjudge中随便下载一个题目&#xff0c;下载下来的压缩包应该是这样的 │ domjudge-problem.ini │ problem.pdf │ problem.yaml │ └─data└─sec…

模型层(回顾补充)

1.1基本使用 orm框架---》对象关系映射 数据库中&#xff1a;一个个表 &#xff1a;user表&#xff0c;book表&#xff0c;一条条的记录 程序中&#xff1a;一个个类&#xff0c;一个个对象 以后数据库中一张表---》对应程序中一个类 以后数据库中一条记录--》对应…

12月01日,每日信息差//阿里国际发布3款AI设计生态工具//美团买菜升级为“小象超市”//外国人永居证换新、6国游客免签来华

_灵感 &#x1f396; 阿里国际发布3款AI设计生态工具 &#x1f384; AITO问界系列11月交付新车18827辆 &#x1f30d; 美团买菜升级为“小象超市” &#x1f30b; 全球首个金融风控大模型国际标准出炉&#xff0c;由腾讯牵头制定 &#x1f381; 支付宝&#xff1a;支持外国人…

Python函数关键字参数及用法

在定义 Python 函数时可定义形参&#xff08;形式参数的意思&#xff09;&#xff0c;这些形参的值要等到调用时才能确定下来&#xff0c;由函数的调用者负责为形参传入参数值。简单来说&#xff0c;就是谁调用函数&#xff0c;谁负责传入参数值。 Python 函数的参数名不是无意…

Appium 元素定位与常用方法,让你轻松玩转自动化测试!

对测试人来说&#xff0c;Appium 是非常重要的一个开源跨平台自动化测试工具&#xff0c;它允许测试人员在不同的平台&#xff08;iOS、Android 等&#xff09;使用同一套 API 来写自动化测试脚本&#xff0c;这样可大幅提升代码复用率和工作效率。 本文汇总了从 Appium 基础到…

Python列表切片操作详解:提取、复制、反转等应用示例

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在Python中&#xff0c;列表切片是处理列表数据非常强大且灵活的方法。本文将全面探讨Python中列表切片的多种用法&#xff0c;包括提取子列表、复制列表、反转列表等操作&#xff0c;结合丰富的示例代码进行详细…

直饮水表与智能水表有哪些区别?

随着科技的不断进步,智能家居的概念正逐渐深入人们的生活。其中,直饮水表和智能水表作为创新科技的代表,在水资源的使用和管理方面发挥了重要作用。然而,这两者之间存在一些关键的区别。那么&#xff0c;直饮水表与智能水表到底有哪些区别呢&#xff1f; 直饮水表和智能水表都是…

java+springboot学生宿舍公寓管理系统xueshenggongy

经过查阅资料和调查统计发现&#xff0c;高校学生宿舍管理工作变得越来越繁重和琐碎&#xff0c;如在学生住宿安排&#xff08;特别是新生住宿安排&#xff09;、宿舍大幅调换、公共设施统计维护、宿舍杂费统计收取、宿舍卫生管理统计、出入登记记录等各个方法存在着大量问题和…

【Python 训练营】N_14 文件查找和替换

题目 新建一个test3.txt文件&#xff0c;内容如下图&#xff0c;然后从中查找字符串’five’&#xff0c;并统计出现的次数&#xff1b;替换其中的’five’字符串为’python’。 分析 类似Excel中的查找和替换&#xff0c;查找相应内容需用到正则&#xff0c;还考察文件打开、…

Leecode 【一】

环形链表: 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&…