【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实验:科学归因和增长的利器》

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安装两个WIN10/WIN11系统到两个盘中,第二个系统依赖原系统盘引导的问题

前段时间折腾装一个双系统,主要两个方面考虑: 1. 原来的系统又许多软件,想着先保留; 2. 系统想安装到一个固态硬盘中; 在安装的过程中遇到了一些问题,这里记录分享一下。 问题1,运行系统自动安装…

深入 C 语言和程序运行原理 实战项目代码在CentOS 7上编译

cat /etc/redhat-release看到操作系统的版本是CentOS Linux release 7.6.1810 (Core),uname -r可以看到内核版本是3.10.0-957.21.3.el7.x86_64。 安装gtest 参考博客《使用gtest和lcov测试代码覆盖率》 wget https://github.com/google/googletest/archive/refs/…

Android NDK项目创建的时候C++版本选择都有什么区别

Android ndk项目在创建的时候有C版本选择有4个选项,分别是Toolchain default, C11,C14,C17。 C是一种广泛使用的编程语言,它不断地发展和更新,以适应不同的需求和场景。C的语言标准是由国际标准化组织&…

2.qml 3D-View3D类学习

本章我们来学习View3D类。 View3D是用来渲染3D场景并显示在2D平面的类,并且该类可以放在QML2D下继承于Item子类的任何场景中,比如将View3D放在Rectangle中: Rectangle {width: 200 height: 200color: "red"View3D { anchors.fill: parent…

九章量子计算机:引领量子计算的新篇章

九章量子计算机:引领量子计算的新篇章 一、引言 随着科技的飞速发展,量子计算已成为全球科研领域的前沿议题。九章量子计算机作为中国自主研发的量子计算机,具有划时代的意义。本文将深入探讨九章量子计算机的原理、技术特点、应用前景等方面,带领读者领略量子计算的魅力…

什么是OV SSL证书?

OV SSL证书是组织验证SSL证书的缩写,是三个SSL验证级别之一的名称。 OV是指实名类型的SSL证书,这个实名其实只要证明发布者身份就可以签发,无论是个人还是企业都可以进行申请。 SSL证书大家都知道就是用于网站地址的http改成https加密协议的…

gromacs学习及使用(1)

1.Gromacs的使用 2.Gromacs 的第一步_能量最小化 3.分子动力学模拟Gromacs一般使用步骤(空蛋白) 4.GROMACS优化(没看懂) 5.GROMACS快速入门(有好东西) GROMACS中文教程 gmx editconf -f xxx -o xxx6.GROMACS运行参数之em.mdp文…

Burp Suite序列之目录扫描

如果你是一名渗透测试爱好者或者专业人士,你一定知道目录扫描是渗透测试中非常重要的一步。通过目录扫描,我们可以发现网站的敏感信息,隐藏的功能,甚至是后台入口。目录扫描可以帮助我们更好地了解目标网站的结构和漏洞。 但是&a…

四大视角看EMC设计:滤波、接地、屏蔽、PCB布局

电磁干扰的主要方式是传导干扰、辐射干扰、共阻抗耦合和感应耦合。对这几种途径产生的干扰我们应采用的相应对策:传导采取滤波,辐射干扰采用屏蔽和接地等措施,就能够大大提高产品的抵抗电磁干扰的能力,也可以有效的降低对外界的电…

Shell循环:for(三)

示例:使用for实现批量主机root密码的修改 一、前提 已完成密钥登录配置(ssh-keygen)定义主机地址列表并了解远程修改密码的方法 [rootlocalhost ~]# ssh-keygen #设置免密登录[rootlocalhost ~]# ssh-copy-id 192.168.151.151 二、演示…

【趣味JavaScript】一文让你读懂JavaScript原型对象与原型链的继承,探秘属性的查找机制! 《重置版》

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享博主 🐋 希望大家多多支持一下, 我们一起学习和进步!😄 🏅 如果文章对你有帮助的话,欢迎评论 💬点赞&a…

【Linux】第二十三站:缓冲区

文章目录 一、一些奇怪的现象二、用户级缓冲区三、用户级缓冲区刷新问题四、一些其他问题1.缓冲区刷新的时机2.为什么要有这个缓冲区3.这个缓冲区在哪里?4.这个FILE对象属于用户呢?还是操作系统呢?这个缓冲区,是不是用户级的缓冲区…

STM32 自定义UART数据格式(串口通信点亮LED实验)

起始位:0xaa告诉机器我们要开始传输数据了。 校验位:等于前几项数据位的相加。 结束位:结束传输。 自定义UART数据格式: 1》CPU与CPU之间 2》外设与CPU之间 这里举例,利用串口调试助手发送一串数据,…

Java数据结构之《循环队列》题目

一、前言: 这是怀化学院的:Java数据结构中的一道难度中等的一道编程题(此方法为博主自己研究,问题基本解决,若有bug欢迎下方评论提出意见,我会第一时间改进代码,谢谢!) 后面其他编程题只要我写完…

11.26电梯控制器设计分析

项目三 电梯控制器设计(*****) 设计一个多楼层的电梯控制器系统,并能在开发板上模拟电梯运行状态。可以利用按键作为呼叫按键,数码管显示电梯运行时电梯所在楼层,led灯显示楼层叫梯状态。 就是初始默认在1楼&#xff0…

【MySQL】MySQL安装 环境初始化

MySQL安装 MYSQL官网 安装完成后,傻瓜下一步即可 配置一下环境变量即可 (1) 初始化MySQL, 管理员身份运行 mysqld --initialize-insecure(2) 注册 mysqld mysqld -install# 如果记录以前的版本执行下面指令 mysqld -remove(3) 启动MySQL服务 // 启动mysql服务 net start …

Nginx配置文件全解析【深度剖析细节】

文章目录 💥 简介💫 基本结构🍉 事件处理器🥭 配置分析🍏 配置示例 🍉 HTTP服务器🥭 配置分析🍏 配置示例 🍉 虚拟主机 🍊 优化🍔 总结 &#x1f…

卡码网15 .链表的基本操作III

链表的基础操作III 时间限制:1.000S 空间限制:128MB 题目描述 请编写一个程序,实现以下链表操作:构建一个单向链表,链表中包含一组整数数据。 1. 实现在链表的第 n 个位置插入一个元素,输出整个链表的…

计算机基础知识62

模型层回顾:基本使用 # 模型层有orm框架:对象关系映射 数据库中:一个个表 :user表,book表,一条条的记录 程序中:一个个类,一个个对象 数据库中一张表---->程序中一个…

【JavaSE】:String类(一):基本使用方法

String类 一.String类的基本构成二.字符串比较1.比较相等2.比较大小 三.字符串查找四.字符串转换五.字符串替换六.字符串的拆分七.字符串的截取八.其他操作方法 在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以…