大数据场景下的DataOps实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 大数据场景下的DataOps实践 韩爱东 网易数帆·大数据平台开发工程师
2. 01 数据开发面临的质量问题 目 数 字 世 界 新 动 02 网易大数据平台的事前防控 力 录 03 网易大数据平台的事后防控 04 网易大数据平台的数据沙箱
3. 网易杭州研究院 & 网易有数 公共技 术研发 华夏银行 音乐 电商 教育 前瞻技 术研究 零售 农业 物流 教育 能源 记忆科技 传媒 创新产 品孵化 金融 办公 工具产品平台 邮箱 制造 数据建设方法论 网易有数 医药 公共数据建设
4. 为什么要做数据中台 质量 • 需求交付速度慢!平均 需要一周时间。 • 平均每周10个数据质量 问题,数据使用方对数 据不信任! • 考拉有58.75%的表30天 内都没有访问,占用了 4.5P存储空间 • 权限体系管理混乱,流 程不清晰,平均申请需 要1天时间。 • 90%的问题都是被数据 使用方发现,投诉到 CTO! • 传媒有72%的表30天内 都没有访问,占据了6P 存储空间 • 权限缺少生命周期管理, 一旦授权,长期持有 • 平均每个Q有9个因为指 标口径不一致反馈的数 据问题! • 严选有63.67%的表30天 内都没有访问,占据了 2.7P • 超过50%的问题都是数 据开发的BUG • 音乐有50%的表30天内 都没有访问,占据了 10P存储空间 • 找数据难,8万张表, 不知道有哪些数据! • 报表加载速度慢,有 30%报表无法在5秒内 打开 • 取数效率低,IT部门平 均每周只能完成100次 取数需求,服务10+ 成本 安全 效率 • 核心数据存在误删除风 险 • 权限缺少治理环节,申 请权限,但是不使用的 现象广泛存在,存在安 全隐患
5. 数据开发面临的质量问题
6. 数据开发面临的问题 需求 开发 自测 交付 返工 交付 返工 最终 交付 计划交付周期 实际交付周期 延 期 原 因 缺乏需求设 计 A 缺乏Code Review B 缺乏充分的 测试 缺乏数据校 验 C D 慢SQL、资 源管理、任 务编排调度 难度大 E
7. 数据开发面临的问题 物理资源不足 1)计划内或者计划外大促,容量规划不足; 2)数据开发提交了一个很差的任务,消耗了大 量资源。 数据开发导致的质量问题 1)代码发布上线,引用了测试库; 2)使用了固定分区; 3)代码格式处理异常,鲁棒性不高; 4)任务没有配置依赖等任务配置问题。 基础设施问题 1)开源系统的BUG; 2)人为运维故障。 业务源系统变更 1)业务源系统数据库表结构变更; 2)业务源系统环境变更,新增日志节点; 3)没置日志同步任务,导致数据缺失; 4)源系统数据格式异常,例如非法的IP格式等。 有记录的321个数据质量事件,因数据开发的质量导致的问题,超过50%!!
8. 数据开发面临的问题 为什么数据质量问题这么多? 缺乏管理 缺乏管理 协作困难 协作困难 上线时间紧 上线时间紧 没有支撑工具 数据开发的任务经常 数据开发的任务经常 变更,经常是没有经 变更,经常是没有经 过测试和确认,就会 过测试和确认,就会 上线,导致很多Bug 上线,导致很多Bug 出现 出现 数据链路很长,上游 数据链路很长,上游 任务变更影响了下游 任务变更影响了下游 涉及资损、推荐算法 涉及资损、推荐算法 的表 的表 所有任务变更都需要 所有任务变更都需要 Review发布上线, Review发布上线,对 对效率影响太大,难 效率影响太大,难以 以落地 落地 缺少自动化数据测试 缺少自动化数据测试 工具,数据测试成本 工具,数据测试成本 较高 较高
9. 网易大数据平台的DataOps概览 事前防控 事后防控 基于开发模式 基于线上模式 质量检查 上线调度 线下 Code Review SQL Scan 数据开发 调度检查 流程管控 提交上线 走工单 表形态探查 数据质量 任务调度检查 基线报警 参数合理性检 查 任务关键链路 干系人审批 自动推荐依赖 表数据比对 任务产出影响 自动设置报警 下游影响分析 实例运行概况
10. 网易大数据平台的事前防控
11. SQL Scan SQL Scan依托于我们的通用SQL解析服务,可以对任务SQL进行扫描,按照相应的规则进行匹配,检 出质量隐患。 代码规范类 1)使用drop关键字; 2)使用truncate关键字; 3)使用create关键字; 4)语法校验不通过; B 代码性能类 1)使用select * 语法; 2)使用distinct关键字; 3)表关联on产生笛卡尔积; A 1)select字段和插入表字段数量不一致; 2)select字段和插入表字段类型不一致; 3)表关联on字段类型不一致; C 代码质量类
12. 形态探查 对表进行数据形态的探查,一般用于新接入的源头表或者新加工出来的数据的初步探查,了解数 据整体的情况。 也可以通过探查,发现数据的潜在问题,比如主键唯一性、字段空值、非常规字段值等。 表级探查 探查总记录数 主键去重记录数 确定主键唯一性 字段级探查 查看枚举字段枚举值分布 查看字段去重后总量 字段空值/空串比例 字段最大长度 字段最大长度预览 字段最小长度 字段最小长度预览 字段最大值 字段最小值
13. 形态探查
14. 数据比对 对两个表进行逐字段级别的比对,一般用于重要表的加工逻辑调整后或者模型重构后,比对原有数据, 确保加工出来的新数据和原有数据的一致性。 如果比对结果一致或差异可解释并能接受,则可认为新的逻辑可以提交上线。
15. 下游影响分析 - 数据血缘 下游影响分析的主要作用是获取当前任务产出表及其所有下游产出表的影响标签,确定影响范围。 该功能依赖于我们的数据血缘。 任务A 输出 表A 输入 任务B 输出 标签1 数据 应用A 关联 给表打标签 表B 输入 任务C 输出 表D 关联 标签2 表C 输入 任务D 输出 表E 关联 标签1 输出 数据血缘设计
16. 下游影响分析 下游影响分析,基于自研通用SQL解析引擎,获取任务输出表,和数据血缘比对后,获得影响标签,为 任务负责人快速确认变更的影响范围。 任务SQL 输入、输出表 过滤临时表 基于Antlr的通用SQL解析 Hive MySQL Oracle 输出表 影响标签 数据标签 Vertica ... 血缘标签 审批工单 策略配置
17. 下游影响分析
18. 上线流程管控 流程走工单配置,包括强制测试走工单,圈选核心任务走工单,圈选核心标签走工单。
19. 上线流程管控
20. 自动推荐依赖 自动推荐依赖功能同样依赖于数据血缘功能,任务在设置上游依赖时,会自动解析当前任务的SQL,获 取输入表,以此输入表作为输出表,查找上游任务,把它作为依赖推荐给用户。 任务SQL 输入、输出表 基于Antlr的通用SQL解析 Hive MySQL Oracle Vertica 过滤临时表 输入表 依赖任务 数据血缘 (动态、静态) ...
21. 自动推荐依赖
22. 网易大数据平台的事后防控
23. 基线影响分析 - 预计完成时间 1)预计完成时间,是基于预计运行时长计算而来的; 2)任务运行时的依赖图,可以看做是一个有向无环图。针对图中任意节点,可以根据历史的运行数据, 计算出一个预计执行时长; 3)当前节点预计运行时长 = Avg(近14天运行时长) (加权平均) 4)当前任务的预计完成时间 = Max(上游预计完成时间) + 当前任务的预计运行时长,以此递归。 任务A 任务F 任务C 03:00 任务B 12:00 08:00 任务D 任务E 任务G 任务H
24. 基线影响分析 设定几条时间线,并将线上任务关联到这些时间线上,当这些任务的实例或上游实例运行失败,或者 这些实例的预计产出时间超过对应的时间线时,系统会触发报警通知给值班人员。 任务E 预计完成时 间大于7点 任务A 任务B 任务C 任务D 九点基线 01:00 03:00 05:00 07:00 09:00
25. 基线运维 提前预警、提前解决、将事故扼杀在摇篮中
26. 实例运行概况 宏观展示项目下所有任务产出进度
27. 任务关键链路 寻找任务链路瓶颈、优化关键任务、保障数据按时产出
28. 任务产出影响 将任务血缘、数据血缘进行打通,评估任务产出影响
29. 任务冻结池 当上游任务产出数据出错时,可以快速冻结此任务及其下游任务,减少错误数据 的影响。用于大规模数据错误恢复。
30. 任务加速器 优先保障核心任务产出
31. 数据质量中心 数据质量实现数据问题的早发现、早恢复! • • • 表数据量监控 主键唯一性监控 字段空值、为0监控 完整 • 基于任务产出时间、任务的历史运 行时间、对任务的产出时间进行预 测 时效 稽核 监控 一致 • • • • • 字段格式,例如IP格式 商品只能归属一个BU 数据违反尝试,例如日期还未发生 正确 同一个指标在不同模型一致 相关数据一致性监控,例如商品购 买率与商品访问用户数、商品购买 用户数相关
32. 数据质量中心 质量大屏,了解当前数据质量的监控情况
33. 数据质量中心 质量分排行榜,方便数仓负责人快速查看其他人员的数据质量。
34. 网易大数据平台的数据沙箱
35. 数据沙箱 数据沙箱必要性 测试任务影响了线上 任务运行 测试任务污染了线上 数据 任务发布忘记修改测 试库 基础组件升级引起兼 容性问题 开发模式读取线上数 据测试 测试任务执行大量文 件操作,导致NN负载 过高,影响线上任务 调度 开发模式下调试任务, 不小心写入线上数据 的表,污染线上数据 任务发布需要修改测 试库,忘记修改导致 线上引用测试库 HDFS、Yarn升级引 起兼容性问题 为解决效率问题,开 发模式读取线上数据 进行测试 生产、测试集群物理 隔离 开发模式禁止写入生 产集群 任务从开发模式到生 产模式不用改代码 测试集群承担灰度集 群功能 开发模式读取线上模 式数据测试
36. 数据沙箱 • 共用MetaStore、调度系统、开发平台 • 有独立的YARN、HDFS集群 离线开发平台 调度系统 开发模式 线上模式 YARN_Dev YARN MetaStore HDFS_Dev HDFS
37. 数据沙箱 升级版数据沙箱,适用于金融行业客户的高标准隔离场景。 离线开发平台(开发) 开发模式 离线开发平台(线上) 线上模式 开发模式 线上模式 验收环境 线上环境 任务/调度导出 开发环境 联调环境
38. 数据沙箱 代码与数据解耦,根据运行环境自动适配,对用户透明,不需要修改代码。
39. 扫码即可关注

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-18 00:13
浙ICP备14020137号-1 $Carte des visiteurs$