《路帅-快手海量用户行为分析中台架构演进.pdf》由会员分享,可在线阅读,更多相关《路帅-快手海量用户行为分析中台架构演进.pdf(44页珍藏版)》请在三个皮匠报告上搜索。
1、快手万亿级用户行为分析平台演进主讲人:路 帅演讲嘉宾介绍路帅快手大数据应用技术负责人 快手大数据应用技术负责人,带队流量数据产品方向的研发 在万亿级数据处理、数据治理、分析产品等有丰富的实战经验 有5年的用户行为分析系统研发经验,10年+的数据中台的研发经验快手数据平台短视频直播电商商业化游戏平台快手数据平台的使命是“提升数据决策效率,利用数据助力业绩提升”万级EB级PB级万级百万级数据量级总存储量日净增数据量日活跃用户数日分析查询数秒级数据查询BP 平均日活23Q1 3.74亿 日均时长23Q1 126.8分钟 电商GMV23Q1 2248亿 短视频+直播电商,本地生活,招聘,积累驱动快手的
2、使命是“帮助人们发现所需、发挥所长,持续提升每个人独特的幸福感”关于快手与大数据平台什么是用户行为分析快手的用户行为分析(APP分析)Google Analytics埋点分析工具百度云统计神策/GrowingIO/友盟/火山引擎/北极星产品是快手一站式的行为分析平台,满足用户埋点数据统一上报、埋点设计、埋点测试、埋点数据等需求,实现对埋点数据从生产到分析全流程的闭环管理,提升埋点生产和消费的效率Saas服务/私有化/解决方案快手北极星体系=埋点平台 +APP分析快手行为分析产品行业行为分析产品CONTENT目录2023K+01快手APP分析平台介绍快手APP分析技术演进快手APP分析实战案例0
3、203总结与未来规划042023K+01快手APP分析平台介绍什么是埋点搜索视频观看视频页面曝光所谓“埋点”,是对用户在App内触发的一系列行为数据的采集,比如用户、观看、点赞等等,用来进一步优化产品、推荐策略提供数据支撑。WHO谁谁设备标识、登录IDWHEN什么时间什么时间事件发生时间WHERE发生地点发生地点事件发生的地理位置WHAT做了什么做了什么如观看、关注、点赞、购买等HOW埋点埋点发生时的状态发生时的状态埋点发生时,网络、来源渠道等埋点埋点WhoWhenWhereWhatHow埋点上报链路传输效率高,采用轻便高效的protobuf作为传输协议埋点模型巧,不同于业界的event_id
4、埋点模型,而是通过实体+Action,如点击、曝光、观看都是独立的事情流埋点参数精细,各类参数用途明确,业界大多是一个param大字段,快手是页面、元素、业务公参等三类快手APP分析平台愿景:致力于通过丰富埋点分析工具,打造一站式的行为分析平台,提升数据获取与分析效率。快手APP分析平台快手数据分析大部分数据来自客户端埋点,不同角色运用不同分析方法对不同数据进行分析,进而为产品迭代和发展提供方向2023K+02快手APP分析的技术演进问题与挑战万亿数据分析性能(秒级响应)灵活细分(应用场景多样)服务稳定性(产品易用)基于万亿级数据,提供灵活多维、秒级响应的行为分析有哪些技术挑战?及时性(明细宽
5、表)数据链路-及时性快手APP分析数据模型架构灵活的分析,基于ClickHouse明细数据的多维分析,足够灵活丰富的维度,丰富的用户、设备、分群等进行关联分析数据及时性,有体系化的保障机制,每天7点前T-1数据就绪埋点强管控,完整的埋点生命周期管理(注册、黑名单、采样)及时性-遇到的问题及挑战以往面临的挑战数据体量大:万亿级数据,数据增长快资源是瓶颈:计算资源不足,预算远比不上数据量的增长资源保障差:任务混部资源保障能力差,遇到高优任务经常被逐出重试成本高:任务出现运行失败,任务里的数据量大,重试成本高数据采集离线数据实时数据批处理层Hive/Spark任务流处理层Flink任务引擎层Clic
6、kHouseHbaseRedis应用层事件分析路径/漏斗留存分析归因分析客户端APP日志Web日志服务端日志及时性-问题分析及解决思路快手APP分析=聚合模型 +明细宽表高频维度(如平台、版本、机型等),用来加速查询明细数据,分析灵活,支持事件分析、漏斗/路径、路径归因等模型常见数据模型解决方案:及时性-hive2CK导数工具升级V1.0架构剖析架构剖析V2.0架构剖析架构剖析 基于基于v1.0 MR的的hive2CK流程原理流程原理 借助Clickhouse引擎,基于MR提升导数任务的稳定性和并发度 基于基于v1.0 MR的的hive2CK架构的缺点架构的缺点 1.数据写入并发数受限于集群s
7、hard数;2.离线导入过程中每个CK结点负载会很高 基于基于v2.0 MR的的hive2CK导数流程原理导数流程原理 支持bulkload将数据以CK的格式先写入至hdfs上,然后再加载到CK集群,实现读写分离架构 基于基于v2.0 MR的的hive2CK架构的优点架构的优点 读写架构分离,离线写入极大降低了对CK集群的负载通过对hive2CK导数任务的读写分离,降低大体量数据写放大的问题,极大释放集群负载及时性-ClickHouse数据模型升级通过引入埋点分组分区实现数据存储模型升级,提升hive2CK的并发度,同时降低查询时的扫盘次数V1.0架构剖析架构剖析 基于需求的烟囱式的数据链路基
8、于需求的烟囱式的数据链路 烟囱式的数据链路的缺点烟囱式的数据链路的缺点 数据链路重复建设,浪费大量计算资源,V2.0架构剖析架构剖析 基于基于埋点分组埋点分组分区实现多数据源整合分区实现多数据源整合在天/小时的分区的基础上,引入三级分区,提升导数并发度 基于基于埋点分组埋点分组分区数据模型的优点分区数据模型的优点1、并发度灵活;2、降低读盘次数及时性-数据链路分级保障除了在技术架构上的升级,在链路分级、埋点采样、埋点下线等方面的管控也十分重要无分级保障机制低/零热埋点浪费资源数据链路优先级头部埋点采样埋点生命周期快手有上千个产品,以及每个产品有多个分析模型,没有落地好产品及分析模型的重要程度,
9、如何避免资源核心链路的破线快手埋点量大,如何避免无效埋点造成的资源浪费?如何提升头部大埋点ROI?123按产品产品-模型模型-埋点埋点的重要等级进行链路分级P0/P1/P2加工采样加工采样-计算还原计算还原。通过埋点ROI评估模型,对底ROI的埋点在数据加工时进行采样,计算时按一定比例还原无效埋点无效埋点-黑名单黑名单。基于APP分析埋点热度模型,把0热度埋点通过黑名单拦截不入仓分析性能-秒级响应分析性能-问题分析及解决思路时间-情绪曲线用户情绪随等待时间的情绪变化曲线,等待时间越长,用户情绪越负向案例分享:客户端一个活动页面CTR转化率低于预期,问题原因是用户点击因落地页白屏时间长,因使用体
10、感差,快速退出快手APP分析以FMP P90 8.5PB/天)查询性能上,P90提升63.8%(65.2s-23.5s)通过引入“埋点分组”作为二级分区,在hive2ck导数上灵活配置并发度(1-N),在分析埋点时扫描数量降低62%灵活细分-更多分析场景增长的关键如何提升用户留存通过留存分析,分析用户使用产品的粘性,有针对性地调整策略,引导用户发现产品价值,留住用户结合用户画像进行留存分析结合用户画像进行留存分析结合用户画像属性,如年龄、性别、地域、教育程度等进行留存分析,如在你的产品中,18-26岁的用户群体留存高,那么可以结合这个群体的特点“年轻、校园、青涩、活力”等,规划产品策略结合首日
11、行为产品功能使用结合首日行为产品功能使用从用户使用行为(功能)的角度,来对比不同群体的留存表现。比如:有播放“二次元”视频的新设备留存显著优于 有播放“风景”视频的新设备留存结合渠道来源的留存表现结合渠道来源的留存表现不同渠道的用户留存往往有明显差异,假如oppo的留存确认为优质渠道,可从产品或者公司角度是否可以达成拓展合作,目的是为了增加优质渠道的用户群体,从而改善整体留存。留存标准差功能留存功能2功能8功能6功能3功能8功能8如下图(x轴为功能留存率、y轴为留存标准差、面积为用户群体)功能1上图中,功能8,功能留存高(黏性高)、留存标准差底(留存表现稳定)、用来群里相对较大,是一个较为理想
12、的“高粘度功能”如何建设灵活易用的留存分析基于hbase作为基座构建一个在万亿级数据规模下留存引擎,能够灵活配置埋点信息,并实现秒级分析数据转换:有两种方式,第一种是通过 mrjob 转换,第二种是在线计算或导入数据存储:主要存储两类数据,bitmap 索引和数据、转换字典的归档文件数据计算:负责计算和调度,并把 IO 数据计算结果返回给 ClientAPP分析:APP分析的应用层,把业务逻辑分装成一个个业务的接口留存分析整体架构原理留存分析整体架构原理如何建设灵活易用的留存分析留存分析引擎留存分析引擎-数据存储数据存储留存分析引擎留存分析引擎-数据计算数据计算基于hbase作为基座构建一个在
13、万亿级数据规模下留存引擎,能够灵活配置埋点信息,并实现秒级分析如何建设灵活易用的留存分析user_idcityageinterestversion0北京10_20足球5.11上海21_30足球5.12北京31_40足球,篮球5.13上海10_20羽毛球5.14上海0_9游泳,篮球5.1举例:比如在北京的用户,且兴趣是篮球,这样的用户有多少个?用户行为回放:如何高效看清用户的行为轨迹 人群圈选,按属性标签圈选用户群里 行为序列,按照时间顺序展示行为轨迹序列 统计分析,统计用户维度的指标信息及画像信息 组织呈现,以可视化方式呈现行为序列和统计数据在运营收到客诉或研发分析程序异常时,通过对行为日志进
14、行回放,可以看清用户的真实的行为轨迹序列用户行为回放工具技术方案用户行为回放数据架构用户行为回放数据架构基于Hbase的数据有序特性,将多条数据量进行合并,根据日期进行hash%15,导入到对应的数据表HBase性能优化经验分享性能优化经验分享遇到的问题及挑战:遇到的问题及挑战:数据体量大:每天万亿条数据查询耗时高:P99耗时恶化(8s-15s)解决方案:解决方案:通过hbase动态拆分,在集群没有资源合并小文件的情况下,极大较少读取数据量,P993s2023K+03快手APP分析实战案例高基维去重计数指标查询方案ClickHouse基于明细数据聚合查询速度之快,但对高基维指标的去重计数时数据
15、传输过大导致网络超限?count(distinct 字段)分布式集群去重计数查询如图所示,在分布式集群查询中先将需要计算的字段数据在单个shared节点中查询出来去重明细数据,并传输到中心节点中进行去重计数,返回最终的统计结果。场景一:设备数去重计数场景一:设备数去重计数解决方案解决方案:数据导入的时候按设备id哈希导入,查询的时候在单节点去重计数,最后直接在中心节点汇总求和。场景二:用户数去重计数场景二:用户数去重计数解决方案解决方案:用户id为数字,我们按查询日期分组将所有用户ID转化为bitmap进行存储,假如user_id最大为9位数,则单节点传输数据为100000000/8=12M左
16、右使用函数使用函数:groupBitmapState:在每台节点上将所有用户按用bitmap存储groupBitmapMerge:在中心节点上对每个节点上的同维度数据进行去重计数场景三:场景三:采用采用uniqCombined uniqCombined 函数近似查函数近似查询询uniqCombined=(uniqState,uniqMerge)uniqState:在集群单个节点上对数据通过不同的算法进行压缩,以减少数据的传输量。uniqMerge:在集群中心节点上对该指标所有节点数据进行去重计数高基维去重计数指标查询方案用户路径归因方案最优解核心行为用户路径归因核心行为用户路径归因:用户在核心
17、行为触发前所访问的路径,追踪带来核心行为的路径信息,包括首次访问页面、首次访问元素等等Refer还原方案还原方案session+time还原还原Refer是什么?页面曝光时携带上一级页面的名称和参数以及点击的元素名称和参数通过用户的session_id+time时序排列计算出用户行为路径埋点染色方案埋点染色方案通过各页面入口增加染色内容,在发生重要行为时上报离线埋点事件携带入口的染色内容用户路径归因方案最优解以用户通过搜索结果页直播卡进入本地生活直播间进行团购下单为例,染色数据透传示例2023K+03总结与未来规划未来规划开放化,共建生态 模型开放化,对内输入 数据开发化,对外输出自助分析工具,降低门槛 智能波动归因 自助SQL分析数据OneModel 链路复用,规则化 模型复用,统一化体系化建设THANKS