其他
B 站标签系统落地实践
导读 本次分享题目为标签系统在 B 站的落地实践。
主要包括 4 部分内容:1. 演进历程
2. 系统架构与实践
3. 人群应用
4. 未来规划
分享嘉宾|袁敏 哔哩哔哩 资深开发工程师
编辑整理|苏屿
内容校对|李瑶
出品社区|DataFun
1. 2021 年标签系统立项
所有明细数据进入 ClickHouse,通过物化视图的方式做 BitMap 计算,通过分页查询的方式做人群数据的导出;另外,以 API 的方式对外提供服务,前端用户可能自定义输入非常复杂的 SQL,以上操作都会大量消耗ClickHouse 计算资源,导致其单引擎部署的计算负载面临的稳定性压力越来越大,集群扩展性不佳。 随着对接的业务方定制化需求越来越多,导致 API 存在多套体系,整体维护成本较高,也很难持续迭代优化。 为了提升业务圈选响应速度,只要有用户圈选需求进入,系统会立即提交ClickHouse 计算任务,缺乏任务并发度的管控。
2. 2022 年系统重构升级
稳定性方面:引入多存算引擎的支持,在人群计算上支持任务队列的调度,并重新定义了圈选 DSL。 场景拓展方面:实现了实时判定能力,对接 C 端业务服务。
3. 2023 年系统化建设赋能业务
上下游收敛缩短数据链路 标签人群治理与数据质量保障 人群效果回收与标签体系完善
系统架构与实践
1. 标签系统整体架构
数据来源:依托于大数据平台,各种业务数据例如 DB 数据、埋点行为数据、AB 实验分流用户数据等均可接入标签平台,通过 Spark 、Trino 以及Clickhouse 计算引擎实现上层标签生产及人群圈选。 标签生产:支持数据源表接入、标签元信息管理、标签构建、标签治理。 人群圈选:支持人群元信息管理、人群规则圈选、人群计算调度、生命周期管理。 人群应用:支持数据批量下载、在线实时判定、画像分析。 业务应用:包括推送平台、活动和任务平台、用户洞察、用户增长等。
2. 数据流转链路
3. 标签生产
建设思路:对于事实属性类标签,例如性别、年龄、城市等人口属性、位置属性标签,由平台自建,作为公共标签对外提供;对于统计类、规则类或模型类标签,即业务强相关的标签,与业务部门合作建设。 组织结构分为三级:一级,标签类目;二级,具体标签;三级,标签枚举。 标签分类标准:根据后续圈选操作不同分为离散与连续类型。离散标签:枚举型,如性别;连续标签:数值型,如播放时长。 标签权限管理:基于业务域去做归属和隔离,用户只能使用具有授权的标签。 标签接入流程:为满足业务取数便捷性要求,支持用户平台化自助录入数据源,完成标签和字段绑定、触发审批流程。评估和审批分三个环节,各环节负责人分别是业务域负责人(关注标签体系是否完整、合理)、业务域数仓负责人(关注标签数据源表及上游模型是否规范)、标签服务负责人(DQC 规则配置)。 业务域:包括基础域、B 端创作者、大会员、直播、游戏、漫画等。
引入 Iceberg 支持多存算引擎的实时查询性能优势,解决集群负载问题;支持多计算引擎接入,解决集群扩展性差问题。 通过自定义分 shard 模式读写,避免使用 ClickHouse 分布式表聚合计算影响性能。
4. 人群圈选
5. 在线服务
6. 标签系统稳定性与性能
人群应用
1. 数据应用集成
2. 业务场景应用
推送触达:通过短信及站内消息等渠道对特定人群包进行批量推送。 业务运营:利用实时判定能力,在活动中台及直播任务平台等进行业务运营推广策略的落地。 分析:包括画像分析、自定义分析等。
04
未来规划
1. 标签人群治理
2. 数据质量保障
3. 人群效果回收
4. 标签体系完善
分享嘉宾
INTRODUCTION
袁敏
哔哩哔哩
资深开发工程师
研究生毕业于同济大学计算机科学与技术专业,2017 年加入 B 站,从事数据工程相关研发工作,当前主要负责标签系统建设。
往期推荐
点个在看你最好看