上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

1、胡家煊-流批一体在字节特征平台的实践.pdf

编号:101865 PDF 33页 5.91MB 下载积分:VIP专享
下载报告请您先登录!

1、胡家煊-流批一体在字节特征平台的实践.pdf

1、胡家煊/字节跳动推荐架构数据研发工程师流批一体在字节跳动特征平台的实践流批一体在字节跳动特征平台的实践Practice of Flink Stream-Batch Unification in ByteDance recommendation system背景介绍背景介绍特征平台架构特征平台架构流批一体实践与探索流批一体实践与探索#1#1#2#2#3#3未来规划未来规划#4 4#1#1业务背景业务背景抖音推荐业务场景业务场景头条、西瓜 推荐平台架构演进平台架构演进第一阶段基于 MapReduce、Storm 搭建的各种profile 服务;第二阶段引入 Flink,拥抱大数据生态;第三阶段从

2、Native Flink 逐渐迁移至Flink SQL;提升开发效率,降低运维成本;第四阶段基于 Flink SQL 与 State,构建以离线计算为核心的特征生产平台;第五阶段拥抱流批一体,探索新架构;推荐系统数据流推荐系统数据流特征分类特征分类特征类型特征主键特征举例特征来源User侧Group侧Match类型Context类型user_id、author_iditem_id-年龄、性别、行为计数类目、停留时长、播放量、完播次数等二跳统计、交互统计设备型号、位置信息、推出的时间UserProfileGroupProfile、Counter图存储服务当前Context核心问题核心问题缺少特征

3、全局视图特征服务相对零散、边界比较模糊,可能存在冗余特征导致资源浪费。离线任务游离绝大部分特征服务以 C+service 为核心,只提供读写接口,业务方自行维护离线任务。Online Serving 性能特征服务存储特征原始数据,请求时根据参数在线计算;部分场景读写扇出严重,影响延迟。解决思路:解决思路:以离线计算为核心以离线计算为核心 以离线任务为切入点,收敛特征生产入口;使用 Flink State 存储特征计算所需的中间结果;使用 Flink Timer 定时触发特征的计算,将计算好的结果更新到 KV Storage;使用 Flink SQL 解决特征计算的ETL逻辑;#2 2平台架构平

4、台架构DarwinDarwin 特征平台特征平台存储服务特征计算ETL 计算在线查询特征订阅OLAP 分析抖音推荐电商推荐审核风控产品运营报表统计应用场景核心服务计算引擎数据源管理任务管理监控分析特征回溯FlinkSparkStreaming SQLNoSQLMySQLHbaseKafkaHiveHudi统一 DSLETL 类型特征计算状态特征计算Flink CEPBatch SQL特征入湖计算模型计算模型ETL 计算数据源注册user_action_log_1lookup_tableLookup JoinUnionSelect-Convert_to_rowuser_action_log_2特

5、征状态计算keyed_processSinkSelect-Convert_to_row注册数据源计算模型计算模型支持 PB、JSON 格式支持 Hive、Kafka、Redis、RPC ServiceETL 计算计算模型计算模型复杂运算可以通过上传 UDF 表达支持 and、or、=、=、聚合的过程会有额外开销ETLETL 演进演进特征-数据源 Unified一个 Select 对应多个特征 CASE WHEN 语法将谓词逻辑拆分到每个单独的特征 通过打 tag 的方式,标记该条数据是否属于某个特征业务场景应用业务场景应用实际场景-Streaming i2i 计算 Step1.双流 join,

6、补齐商品类目字段 Step2.ETL 处理,过滤出属于 click 类的记录 Step3.根据 uid 做 keyby,计算相关物品列表 Step4.根据 pid 做 keyby,更新时间分片中相似 item 的权重,聚合计算 item2item 相似度,输出到 online serving场景需求场景需求:计算某个商品的相似度列表计算某个商品的相似度列表在 State 中维护一个商品相似度列表,持续更新权重关键点:两次 keyby,先用 uid,计算出于当前商品关联的相似商品;再根据 pidkeyby具体步骤:业务调优业务调优空数据聚合问题MapState当前 Key Context 下:如

7、果数据在时间上分布不均,聚合计算时将读取大量空数据优化点CurrentKey:ValueStateBloomFilterMapState减少对 RocksDB 的查询次数;latency 降低40%UpdateUpdateUpdateUpdateQueryQueryHitHitTimeSlotIndex:longFeaturePayload:pojo业务调优业务调优PB 裁剪优化裁剪未使用的字段后,减少50+的 CPU 使用使用 pb-class 来反序列化 bytes,解析出字段#3 3流批一体实践与探索流批一体实践与探索流批一体探索流批一体探索核心问题计算一体存储一体核心问题对流处理和批处

8、理分别维护两套代码核心问题如何使用历史数据初始化状态特征回溯通过特征入湖,完成离线数据和实时数据统一流批一体探索流批一体探索-计算一体计算一体ETL 任务模板SourceExtractSink同时支持 unbounded、bounded数据源支持 join 和 unionSQL+UDF 可以解决大部分 ETL 需求Table API 支持 Schema 解析自定义 sink connectors流批一体的执行模式流批一体 Connectors流批一体探索流批一体探索-计算一体计算一体File System ConnectorHive ConnectorKafka ConnectorAbase

9、ConnectorRPC ConnectorTbase ConnectorBoundedSourceUnboundedSourceLookupTableFactoryScanSourceTableFactoryDynamicTableSink流批一体探索流批一体探索-计算一体计算一体特征回溯 Flink SQL 的流批一体能力,同一份代码既可以实时计算,又可以批式计算 节省开发成本,加速特征迭代过程状态初始化流批一体探索流批一体探索-存储一体存储一体核心需求特征上线或者迭代后,需要积累历史数据解决方案外置 StateBackend双数据源消费任务 DAG 改变后,仍然可以恢复状态流批一体探索流

10、批一体探索-存储一体存储一体状态初始化外置 StateBackendSolution:使用 KV 服务存储状态数据 预先批处理计算好特征历史数据,刷入 KV 服务 任务启动时先读取历史数据,回填 State 本地状态和外置状态保持同步Crons:额外的存储成本 本地 State 和外置 State 的一致性问题流批一体探索流批一体探索-存储一体存储一体状态初始化双数据源消费Solution:Finish 任务无法完成 Checkpoint 创建一个额外的 MQ,批处理任务将历史数据回填进去Crons:流批割裂,需要多维护一个批处理任务 历史消费完成后,task 仍然一直运行 历史数据消费完成后再开始触发计算 不适合保序场景流批一体探索流批一体探索-存储一体存储一体特征入湖 保存快照表、增量表,两份数据传统数仓:T+1 更新,或者使用 Lambda 架构加速 不支持索引Hudi 方案:近实时更新,数据可见 保存 record 级别的变更数据,支持快照读、增量读 支持多种索引#4 4未来规划未来规划未来规划未来规划全面迁移 Flink SQL,推进 SQL+UDF 的使用方式覆盖全场景部分场景牺牲实时性,动态调整 Timer 触发时间,流量打平到全天,换取潮汐资源利用率提高自动化运维程度,实时采集 CPU、内存、Lag size 等指标,计算理想资源分配值,动态调整THANKS

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(1、胡家煊-流批一体在字节特征平台的实践.pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部