网易云音乐数据研发模式DataOps落地实践 网易云音乐/宋东辉 网易云音乐/宋东辉 资深测试开发工程师 浙江大学硕士毕业之后,加入支付宝,参与蚂蚁端稳定性Sapienz项目建设,数字内容治理黑鸟项目核心成员,双12大促主要质量负责人之一。 2021年加入网易云音乐,云音乐大数据质量建设和数据治理负责人,发起并牵头多方共建DataOps项目,提升了数据研发效率和质量水位。 1、背景简介 Contents 目录2、方案介绍3、落地效果 4、未来展望 1、背景简介 安全 广告 大数据平台 曲库 版权 搜索 AB 用户画像 算法服务 商业分析 核心指标 推荐 结算 黑产 会员 大数据的重要性 大数据的框架 客户端 用户日志系统日志 DIM层 BI平台圈选平台 MySQL DDB 用户日志 三方日志 服务端数据生产 系统日志 开放平台 系统日志 数据库 MySQL DDB DWS层 分析主题域1 重度汇总事实表1重度汇总事实表2 …… 重度汇总事实表N 分析主题域1 轻度汇总事实表1轻度汇总事实表2 …… 轻度汇总事实表N DWD层 业务主题域N 明细事实表1明细事实表2 …… 明细事实表N 业务主题域1 明细事实表1明细事实表2 …… 明细事实表N ODS 层 有数平台(网易数帆) 数据消费 ADS层 数据集市N 数据集市3 数据集市2 数据集市1 机器学习 平台 AB实验平台 数据服务平台 大数据的痛点 需求源 数据研发数据消费 埋点 需求80+/月 现状 商业分析 核心KPI百+ 业务 A级以上活动重要C端业务 我就要这样子! 数据建模 明确数据领域定义数据指标构建维表 数据开发 任务开发数据测试调度部署 日均百+变更! 算法 主站搜索主站推荐 …… 业务 歌曲百科个人主页播客 …… 指标不正确、数据未产出……客诉舆情! 痛点 • • • 业务感知 数据线上问题平均10+个/月 线上问题平均解决时长高达44h需求延期交付比高达50% • • • 研发感知 回刷数据计算成本单次万元级别研发自测效率低,准出标准不清晰线上问题感知滞后 2、方案介绍 2.1、数据研发标准 数据研发标准 评估体系: 研发周期、延期率、问题数 提需求 模型设计 开发 数据测试 发布 运维 建需求单需求评审项目排期 设计指标设计模型基线评估 模型开发调度配置监控配置血缘配置 唯一性准确性完整性一致性及时性 数据验收发布审批 响应线上问题故障定级定责监控治理 基线治理 复盘&质量月报 需求阶段 过程节点 动作 需求文档数据模型文档分工&排期 门禁 研发阶段 代码扫描 测试数据&环境 门禁 测试阶段 静态资源检测生命周期检测血缘检测 监控检测数据用例检测 门禁 准出标准: 覆盖率、规范性、数据质量 生产阶段 2.2、平台化 平台化DataOps 目标:协调多方高效合作, 辅助研发敏捷开发! 整体框架卡点能力事后巡检研发效能 效能大盘 建需求单 需求评审 研发周期长! 关联任务单 研发质量有提升! 数据测试通过 线上问题增多! 告警跟进 监控告警 风险巡检 同意 人力成本增加! 风险审核 闭环治 模型设计&开发 离线odsdwddws ads 6点基线 绑定任务血缘代码检测 检测 select*卡点 from music_log 发布 生产odsdwddws 发布ads 6点基线 理 * selectfrom music_log 代码扫描 静态检测 血缘检测 监控检测 数据用例 卡点自动化 整体框架 卡点能力 事后巡检 研发效能 pipeline 代码规范代码质量代码性能变更点提示 调度配置血缘配置 基线监控配置表&分区配置表&任务规范 血缘关系链路基线风险 依赖风险生命周期 监控覆盖率监控误报率告警跟进率 链路覆盖率用例成功率数据异常 维度 卡点维度 •代码质量分 •major问题 代码治理 dataOps卡点 数据线上问题 同步 规则沉淀 规则配置 通用规则配置 自定义规则配置 异常等级配置 加载 代码规范类 卡点自动化-代码扫描 整体框架 卡点能力 事后巡检 研发效能 •语法规范 •禁止创删表 代码质量类 •select和插入字段名称不一致 •关联ON字段类型不一致 代码性能类 •禁止select* •禁止DISTINCT •禁止分区表全表查 代码规范 结果分析 扫描执行 代码信息 生成抽象语法树 数仓代码规范 研发阶段:开发自查 风险模版 卡点阶段:强制整改 规则信息 代码检测 表元信息 卡点维度 •用例覆盖率 •用例稳定性 •用例拦截问题 用例治理 dataOps卡点 数据线上问题 同步 用例沉淀&优化 数据用例 人工用例 模版用例 拉取资源 覆盖率不达标自生成用例 变更任务源 血缘DAG 最小执行集 风险识别 卡点自动化-数据测试用例 整体框架 卡点能力 事后巡检 研发效能 检测维度 •唯一性 •阈值 •空值率 •去重量 •长度范围 •分布趋势 异常识别 模版规则 智能规则 用例执行精准 智能调度 生成最小执行集 模版用例自生成 卡点维度 •核心指标覆盖率 •监控误报次数 •监控周跟进率 监控治理 dataOps卡点 数据线上问题 指标梳理 核心域的表指标 核心KPI指标 C端业务依赖指标 内版 卡点自动化-数据监控治理 整体框架 卡点能力 事后巡检 研发效能 容权 指标 用体系直 户播 会社 员区 同步 监控平台 告警通知 平台化 监控优化 覆盖率治理 告警质量大盘&月报 告警跟进流程 监控配置 字段类 •完整性校验 •有效性校验 •唯一性 模版规则 •范围校验 自定义规则 跨字段类 •关联性校验 跨表类 •一致性校验 •总量校验 “轻量”变更,需要兜底! dataOps异常分析 闭环治理 研发反馈 数据线上问题 规则沉淀 规则配置 表变更类 变更风险巡检 整体框架 卡点能力 事后巡检 研发效能 •删除 •新建 表规则 •编辑 任务规则 任务变更类 •删除 •新增 •编辑静态资源 •编码 巡检平台 平台化 变更识别 表变更记录任务变更记录 风险通知 变更匹配 定时调度 高风险变更识别 关联分析 风险判定 研发效能大盘 整体框架 卡点能力 事后巡检 研发效能 可度量,才能优化它! 评估原则 指标体系 效能大盘 生产阶段维度 •线上bug数 •问题修复时长 •表监控覆盖率 数据研发维度 •线下bug数 •bug解决时长 •发布申请拒绝率 需求交付维度 •月需求量 •月需求延期量 •月需求延期率 •月需求自测率 •月需求均交付周期 月报 指标大盘 生产阶段维度 数据研发维度 需求交付维度 服务度量目标规则 反映问题规则 分层级设计规则 全局规则 3、落地效果 落地效果 研发效率 • 需求平均研发周期从39d->33d • 低到30% 需求交付逾期率降 研发质量 • • • 数据线上问题降低37% 研发规范原因引起 的线上问题量降低50% 线上问题平均解决 时长从44h->9h 数据监控 • • • • 新增监控规则600+整体监控月度误报量下降30% 拦截有效数据异常 32例 线上问题召回率约70% 业务意识 • • • 业务质量意识提升研发规范意识提升 服务态度改善 4、未来展望 业务 聚合1数据聚合2维度1 业务 未来展望 数据 智能归因 异动智能感知 维度2 源数据3 源数据2 源数据1 智能监控 • • • • 难点 提升覆盖率工作量大人工规则监控误报量大业务变动频繁 告警定位难 • • 思路 构建智能监控模型构建告警指标级归因 oneCode • • 难点 业务逻辑复杂人工code效率低 • • 思路 表&指标规范 ChatGPT的L2级辅助编码 致谢 舞台,从不是一个人的热闹! 致谢