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

news2024/11/20 20:30:47

文章目录

    • 前言
    • 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.coloradmin.cn/o/1275479.html

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

相关文章

leecode 【二】

相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返…

春秋云镜ED01-CMS v20180505 存在任意文件上传漏洞

靶场介绍 春秋云镜ED01-CMS v20180505 存在任意文件上传漏洞 漏洞分析: 文件类型未校验可以任意上传执行文件,获取服务器权限 登录注册界面 Hi-Lo-Yohttp://eci-2ze2qm1cbaon2lylin0q.cloudeci1.ichunqiu.com/registration.php 注册了几个发现注册不…

虚幻学习笔记8—蓝图操作其他虚幻模块

一、前言 蓝图不仅可以相互之间操作和通信,其他的资源、模块也有操作和通信的方法。文本主要针对蓝图和材质、Niagara、编辑器的通信进行讲解。 二、实现 2.1、蓝图和材质 1)首先,在材质蓝图中按住“4鼠标左键”创建一个参数为四维向量的参…

TZOJ 1402 Bitset

答案&#xff1a; #include <stdio.h> int main() {int n 0, j 0; while (scanf("%d", &n) ! EOF && (n>0 && n<1000)) //多组输入{int arr[32], i 0;while (n > 0) {arr[i] n % 2; //除2取余法n / 2;}for (j i -…

基于springboot+vue的秒杀商城(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

Java全栈基础篇--集合

集合 集合&#xff1a;集合是java中提供的一种容器&#xff0c;可以用来存储多个数据。 特点&#xff1a; 长度不固定&#xff0c;还可以存储不同的数据&#xff08;但是一般都用同一类型&#xff09; 集合和数组既然都是容器&#xff0c;它们有啥区别呢&#xff1f; 数组的长…

rust持续学习 COW

COW我第一次看见还以为是奶牛 很奇怪是个啥 后来了解到是clone on write 缩写的&#xff0c;大乌龙啊 这个有两种enum,一种是borrow&#xff0c;一种是own rust中&#xff0c;数据读写经常涉及到所有权 这个borrow&#xff0c;很显然&#xff0c;就是不可变借用了 own就是可以写…

稻盛和夫:毕生经验总结出的36条管理经验,总有一条能戳中你。

大家好&#xff0c;我是老原。 进入职场&#xff0c;每个道理在每个人身上都有不同的理解。 大家经理不同&#xff0c;血泪自然不同&#xff0c;毕竟人类的悲喜并不相通&#xff0c;只有总结下来的经验才最有用。 我平时给你们分享的硬干货比较多&#xff0c;这种软道理写的…

【软件推荐】卸载360软件geek;护眼软件flux;

卸载360软件geek f.lux: software to make your life better (justgetflux.com) 卸载完扫描残留 护眼软件 hf.lux: software to make your life better (justgetflux.com)https://justgetflux.com/https://justgetflux.com/

源码安装mysql

使用源码安装mysql&#xff0c;这里选择的版本是mysql5.7.35 ,系统是Centos7.6 官网下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 下载源码压缩包 [rootlocalhost ~]# cd /opt[rootlocalhost opt]# wget https://downloads.mysql.com/archives/get/…

冒个泡!OceanBase亮相 2023 新加坡金融科技节

近日&#xff0c;OceanBase 亮相 Singapore Fintech Festival 2023&#xff08;2023 新加坡金融科技节&#xff09;&#xff01;本届新加坡金融科技节于 2023 年 11 月 15 日至 17 日在新加坡博览展览中心举行&#xff0c;展会期间&#xff0c;OceanBase 得到了众多金融科技机构…

WiFi概念介绍

WiFi概念介绍 1. 什么是WLAN2. 什么是Wi-Fi3. Wi-Fi联盟4. WLAN定义范围5. WiFi协议体系6. 协议架构7. WiFi技术的发展7.1 IEEE802.117.2 802.11标准和补充 8. 术语 1. 什么是WLAN Wireless Local Area Network&#xff0c;采用802.11无线技术进行互连的一组计算机和相关设备。…

windows电脑申请hbuilderx打包证书

hbuilderx现在的最新框架uniapp&#xff0c;可以多端开发不同端的应用&#xff0c;包括小程序、公众号、ios app和安卓app&#xff0c;一份代码就可以生成不同的端。 但是不同的端是需要使用不同的端的证书的&#xff0c;是不能使用公共的证书上架的&#xff0c;必须使用自己的…

adb环境搭建(adb下载与安装)

文章目录 前言一、adb下载二、adb安装1.将下载的安装包解压缩2.将解压缩后的文件夹放到自己想存放的目录下&#xff08;不要放到带有中文的目录下&#xff09;——我这放到D盘根目录下3.配置环境变量3.1.鼠标放到 "此电脑"→鼠标右击→选择属性3.2.点击 "高级系…

Git常用命令#更改用户名

1.查看当前用户信息 git config user.name2.更改用户名 特定仓库中更改用户名 如果你只想在特定仓库中更改用户名&#xff0c;可以在不使用 --global 参数的情况下执行相同的命令&#xff0c;并进入特定仓库的目录进行修改。 cd /path/to/your/repository git config user.na…

0X04

看到一道有趣的misc题 misc签到题 打开后啥都没有&#xff0c;全选后发现每一行有空格&#xff0c;数了一行发现空格数量转ascil码后是f&#xff0c;猜测都如此&#xff0c; 后面就可以交个脚本了&#xff0c;统计之后转换成ascii from Crypto.Util.number import long_to_b…

Android Bitmap 使用Vukan、RenderEffect、GLSL实现模糊

文章目录 Android Bitmap 使用Vukan、RenderEffect、GLSL实现模糊使用 RenderEffect 模糊使用 Vukan 模糊使用 GLSL 模糊RS、Vukan、RenderEffect、GLSL 效率对比 Android Bitmap 使用Vukan、RenderEffect、GLSL实现模糊 本文首发地址 https://blog.csdn.net/CSqingchen/articl…

【PixPin】媲美QQ/Snipaste截图贴图OCR工具

PixPin PixPin是一款截图工具&#xff0c;它集成了截图、长截图、贴图、标注、OCR识别等众多功能&#xff0c;软件体积小巧&#xff0c;使用简单&#xff0c;是一款非常棒的截图工具。之前使用过Snipaste工具的小伙伴用起来应该是得心应手。 从左往右的功能依次是&#xff1a;…

Python编程题集(第三部容器操作 )

Demo61 指定等级 题目描述 读入学生成绩&#xff0c;获取最高分best&#xff0c;然后根据下面的规则赋等级值&#xff1a; &#xff08;1&#xff09;如果分数≥best-10&#xff0c;等级为A &#xff08;1&#xff09;如果分数≥best-20&#xff0c;等级为B &#xff08;1…

LeetCode105.从前序和中序遍历序列构造二叉树

这道题看完题想了几分钟就想到大概的思路了&#xff0c;但是在写的时候有很多细节没注意出了很多问题&#xff0c;然后写了1个多小时&#xff0c;其实这道题挺简单的。 首先&#xff0c;最基本的知识&#xff0c;先序遍历是根左右&#xff0c;中序遍历是左根右&#xff0c;那么…