背景 云音乐会员自动化运营,通过对人群、资源位、投放规则等配置打包形成不同的投放策略,完成站内资源整合。针对不同用户不同行为不同位置推送不同资源内容,精准投放,加强转化,提高会员渗透率,提高会员续费率。 (自动化运营策略) 运营效果的评估,依赖大量数据指标在不同分析维度的表现。数据指标如投放PV/UV、触点曝光PV/UV、触点点击PV/UV、收银台曝光PV/UV、SKU点击PV/UV、购买人数、订单数,以及各阶段的漏斗转化数据等;分析维度如投放策略、投放资源、投放位置、投放人群、用户OS、SKU类型等等。 (自动化运营指标分析) 问题 早期数仓建设缺乏方法论指导,更多是烟囱式开发,没有分层,没有主题域,没有规范。需求驱动,模型设计复用性考虑不足,所有表产出自一个任务流,耦合严重,在稳定性和可用性方面存在不少问题。 (auto-om-flow) 重构 本次重构以对业务影响最小,尽量做到下游无感知为原则,从规范、效率、质量方面着手,进行任务治理。 3.1 规范 模型设计:遵循高内聚低耦合的原则,划分合适的业务主题域,给出清晰的表分层。建表、字段遵循数仓通用规范。 主题域:云音乐-事实-交易营收。 表分层:dwd用户行为明细层、dws原子指标轻度聚合层、ads业务场景指标高度汇总层。
任务解耦:一个任务流产出一张正式表,任务名即表名,任务按业务归属、表分层部署在对应网易有数大数据平台目录下。 任务节点:
操作建议:
开发测试:有数大数据平台任务支持开发模式、线上模式,所有任务节点需在开发模式测试通过后才可提交上线。 上线审核:圈选任务提交上线,走工单审批,需业务负责人check通过后可通过上线。 调度配置:任务上线调度需配置调度参数,调度周期,调度时间,任务依赖,执行队列,并发设置等,详见数仓通用规范。 报警配置:任务上线默认配置负责人接收失败报警。按需配置报警对象(任务、节点),触发规则(失败、延迟),报警接收(负责人、报警组),报警方式(邮件、短信、电话、popo),循环报警等。 以下五张为详细任务解耦图: (dwd_act_auto_om_di) (dws_act_auto_om_di) (ads_act_auto_om_di) (ads_act_vip_stgy_di) (ads_rev_vip_autoom_buy_di) 3.2 效率 执行引擎:原workflow仍有大量任务使用hive执行,本次全部迁移spark。 性能优化:分析输入输出数据量级,业务计算逻辑,CPU/内存等资源参数调节,达到性能优化目的。 Spark调优:
性能提升:单节点执行效率提升5倍,整体产出时间提前3小时,存储空间占用降低80%,文件数占用降低90%。 (重构前后对比) dwd_act_auto_om_di 存储及文件数降低。 (存储及文件数降低) ads_act_auto_om_di表提高并行度及explode优化以提高执行效率缩短时长示例。 (优化计算示例) ads_act_vip_stgy_di表执行时长由60分钟缩短至10分钟,产出时间由11点提前至9点。 (产出时间提前) 3.3 质量 数据校验:重构应保证数据准确性、一致性,对重构前后产出数据做一定的规则校验。如count、count distinct、NULL值、枚举值范围、数值型分布、最大最小值比较等。 -- 分区前缀代表不同优化策略 select dt, count(1) as c, count(distinct os) as c_os, count(distinct positionid) as c_pos, sum(vipbuy_amt) as s_amt, max(trigger_impress_cnt) as max_c, min(trigger_impress_cnt) as min_c from music_new_dm.ads_act_vip_stgy_di where dt like '%2021-06-09%' group by 1 order by 1; (数据校验) DQC:网易有数大数据平台数据质量中心支持使用模板或自定义规则对表配置不同监控规则。
DQC规则与任务串行执行,会增加任务产出时长,需综合评估任务重要等级,在准确性与时效性之间衡量取舍。 好啦,今天的分享就到这里,谢谢大家。 冷面,网易云音乐资深数据开发工程师,长期从事大数据开发,数仓建设、模型设计、数据治理、数据应用和服务等工作。目前主要负责云音乐离线数仓建设、会员业务线上数据服务、离线/实时ABTEST系统开发。 今天的分享就到这里,谢谢大家。 |
|
来自: 520jefferson > 《大数据》