您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[货拉拉]:从Impala到Apache Doris,货拉拉用户画像优化实践 - 发现报告

从Impala到Apache Doris,货拉拉用户画像优化实践

信息技术2024-04-25于敬晖、张斌货拉拉见***
AI智能总结
查看更多
从Impala到Apache Doris,货拉拉用户画像优化实践

资深大数据工程师于敬晖高级大数据工程师张斌 目录 货拉拉画像服务现状01 货拉拉画像架构痛点02 03Impala>ApacheDoris迁移实践 后续规划04 画像平台早期现状 货拉拉介绍 1350万100万363座 月活司机数 国内货运开城数量 月活用户数 画像平台价值&人群数量 画像应用场景 支撑货拉拉司机派券/邀约、用户满意度、估价等业务 用户圈选人群的量级逐年增加画像人群增长情况 画像平台应用规模 200+3000+5万 货拉拉画像架构痛点 画像平台架构图 画像平台 Persona-BE:建造基于大数据体系的用户标签链路及系统,用于在特定业务形态下描述业务主体; Persona-API:基于重点使用场景/对接系统搭建画像服务,从而精准地生成用户画像,给到对接业务方使用。 货拉拉画像平台 数据链路导入慢 •Impala+ES引擎组合:引擎SQL差异大,工程适配大量代码逻辑,新功能开发成本高•数仓导入Impala耗时长,经常超时不能及时产出人群数据,使用神策Impala导入数据耗时90+min•人群计算耗时长,计算时长10+min,高峰期30+min •大批量推送人群,Impala容易发生OOM,由此产生一次隐患影响业务动作; •Impala是神策采集服务组件之一,早期出于成本原因,接入神策•神策针对Impala做过语法优化,画像服务不得不依赖•强依赖神策相关的接口 画像平台历史故障回顾 Impala>ApacheDoris迁移实践 1.组件选型 ApacheDruid ClickHouse ApacheDoris 使用场景:监控APP线上性能数据,Bug管理、预警存在痛点:学习成本高、角色较多、维护难度大 使用场景:司机在线工作状态分析,大宽表查询存在痛点:学习成本高、并发能力较差 使用场景:AB实验效果评估、数据分析 2.迁移方案阶段1:完成ApacheDoris相关链路,功能走通 建表调优: BrokerLoad导入任务: •表模型确认•建表语句优化•标签BitMap,交、并、差集操作,实现人群圈选 •导入任务数:50+•任务数据量:4亿•导入耗时:<30min 任务配置: •定时调度•同步任务状态信息•监控告警 2.迁移方案阶段2:双跑,以Impala为主,Doris接入线上流量 数据质量: •Doris和神策查询结果全量比对,发现存在差异•Doris和Hive进行抽样比对 稳定性: •调整查询并发度,探测集群水位、瓶颈•Doris和Hive进行抽样比对•监控大盘,制定告警规则,定期巡检 2.迁移方案阶段3:双跑,以ApacheDoris为主,逐步下线Impala 以ApacheDoris为主 1.以Doris为主引擎,计算、查询流量路由至Doris 2.增量人群以Doris计算为主,存量人群通过人群引擎参数逐步迁移至Doris并计算 3.断开神策Impala连接和相关API调用 迁移前后架构图对比 3.调优经验分享 问题1:1.1.1版本,查询bitmap类型字段返回结果为null,不是预期值(预期返回0) 该问题是在版本升级后出现的,定位到相应参数return_object_data_as_binary不生效,此次版本升级重点是支持了向量化执行,而向量化执行会将bitmap类型的输出结果转为null,需要通过调整特定参数解决该问题。 参数调整: •setreturn_object_data_as_binary=true;•setenable_vectorized_engine=false; 3.调优经验分享 问题2:集群升级至1.2.4版本,出现计算结果异常、数据质量问题 解法: 1.2.x版本低基数优化功能存在bug,对于varchar/char/string类型的比较运算可能存在数据质量问题;关闭该功能:enable_low_cardinality_optimize 4.数据质量保障 数据质量保障 通过复盘分析结合以往经验:需提升、完善Doris数据质量保障能力 5.数据质量保障 增强能力 自动化回归测试能力(SQL集、数据集、自动化比对、回归测试报告) 完善监控拦截 完善异常SQL监控、拦截能力,避免影响线上环境(已识别存在异常的函数10+) 效果&收益 1.画像服务 稳定性:接入Doris至今没有出现稳定性问题 2.数据链路 •时效性:接入Doris后,数据链路相对之前Impala更加稳定;Doris的导入耗时30min内,使用Impala进行数据导入90+min •人群计算:接入Doris后单人群计算链路秒级别完成(高峰期1+min),使用Impala进行人群计算链路时长10+min(高峰期30+min) 后续规划 1.画像服务接入实时标签 通过实时业务标签,提升人货匹配效率和体验; 2.完善基础架构:ApacheDoris+数据湖 在存储架构方面,货拉拉开始尝试数据湖解决方案,打通埋点AB等应用平台,实现超大规模数据的分析; ThanksforWatching!