您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。 [DataFunSummit2023:数据治理在线峰会]:阿里巴巴数据稳定性治理实践 - 发现报告

阿里巴巴数据稳定性治理实践

报告封面

演讲人:冉秋萍阿里云DataWorks产品专家 Contents DataWorks基线运维实践 阿里巴巴全链路大数据开发治理平台 大数据业务下的高SLA要求 如何保障每天数据的稳定产出? EB级 千万50多种复杂业务依赖关系单日调度实例数 万名覆盖运营/财务/分析师/开发/算法等岗位月度活跃开发者 01天下数仓工程师苦值班久矣! 一位数仓值班同学的一晚 天下数仓工程师苦值班久矣! 凌晨1:30,收到电话告警,机器人自动播报“XX任务已运行失败,请尽快处理!” 上午7:00,睡眼朦胧,起床前往公司上班 上午9:00,刚出电梯口,被业务小二围住追问数据产出时间,并开启一天的工作 | 数据稳定性问题的常见表现 n单任务稳定性值班 n24小时高压力运维n误报屡屡发生n疲惫度、手动操作多n不断增加的业务要求&有限的人员时间 n协作繁杂,上下游影响多 n跨团队数据研发n跨团队应用使用n平台运维沟通交流n新同学入职 单点运维的“经典”案例 n突然出现的下游表责任人要求时效保障 n任务频繁失败但无责任人处理 n问题:下游表责任人反馈该表新支持大促业务,要求中间层表在6点前完成产出,否则他的表无法在8点完成。但目前研发和运维资源无法保障该表产出,要求下游改掉依赖。 n结果:下游责任人重新加工了相似表,旁路了中间层表,造成资源浪费 n问题:下游任务责任人发现任务未产出告警后,排查找到失败上游节点后,进行重跑。n结果:多次重跑解决了问题,但每日下游收告警起夜,上游不处理不修改,“重跑就好了嘛”。 n运维补救自己任务,却影响了重点任务的产出 n有及时产出的数据,但根本不可用 n问题:任务A责任人收到出错告警,发现为上游断供,为业务及时产出,临时使用历史日志数据作为上游,并重跑补1个月数据实现月指标计算加工。n结果:补数据任务抢占大量计算资源,另外业务历史能正常产出的重点任务一直在等待资源。最终又得终止掉补数据任务 n问题:客户投诉每日早上9:00产出的报表指标数值始终为0。数据运维反复排查都是有正常产出数据。n结果:源头引入数据时则出现了问题,源头方更改了单位,导致数据缩小了1000倍,在后续处理时精度太高被显示时调整为0 02阿里数据稳定性治理方案 数据稳定性治理的原则 通过合理的人力协作及治理工作高效保障业务所需的重点数据能及时、准确产出,满足数据对业务的约定 如何定义重点数据? 如何定义重点数据 如何定义重点数据 如何保障重点数据的及时性与准确性? 传统的单任务监控机制的缺陷 告警时间不同 监控数量过多 配置难度大 监控所有任务是不现实的 为每个任务配置监控规则极为繁琐 每个任务所需告警的时间都不同 从单任务监控转为全链路基线监控 基线 n DataWorks独创国家专利的智能基线监控技术,基于业务重要性,以链路视角进行稳定性运维管理手段,是时效性的直接保障。基线针对核心应用对应的任务组,包括产出的上下游所有节点,通过基线能使我们提高对业务或产品整体运行情况的认知,并前瞻性的予以优化以保障其稳定 为K点配置DataWorks基线示例 n基本信息 •名称:电商交易7级基线,9点产出•产出要求:9:00•告警余量:30分钟•基线优先级(重要度):7级•正常产出时间:8:30 n报警设置 •报警方式:短信、邮件、站内信•接收人:值班表•报警次数:3•最小报警间隔:30分钟 基线监控在保障重点数据及时性的优势 智能分级调度与资源分配 按照优先级为核心数据产出进行重要性分级,高优先级任务获得更多的调度与计算资源,保障核心任务资源稳定 智能预测与告警 基于历史运行记录及当前运行及资源情况,智能预测产出时间,提前干预延迟任务,保障任务产出时间稳定 全链路智能诊断与排障 基于上下游及当前任务运行状态,定位发生源头,当前/下游/自定义节点等多种补数据方式,保障任务运维高效及时 通过DataWorks数据质量保障重点数据的准确性 强弱质量规则保障40%以上的稳定性问题源于数据源头引入的变动和质量问题 入口层/数据引入层/基础层•强规则:业务主外键是否唯一/缺失 •强规则:周期性数据波动是否过大/特殊类(如日志等)•无周期性则判断数据是否大于固定值 数据清洗层/整合加工层•增加一些对清洗逻辑的监控 •对于整合的数据判断其数据唯一性、重复性 轻度/高度汇总层 •根据汇总逻辑做平衡值监控 维表层/事实表层 •主外键一致•维度值增加/减少监控 出口层/应用层/报表层•逻辑主键 •多表之间的平衡关联•特定业务逻辑监控 如何进行合理的团队协同? 数据稳定性治理研发协作流程与高等级业务应用强关联,协同迭代发布,稳定性治理团队基于基线协调各环节保障。 稳定性治理的责任制定 故障情形 稳定性指标 复盘 基线负责人:1、关注基线日常运行状况,关注基线风险,主动推动链路同学进行基线优化,化解基线风险点。 2、关注任务风险点(长节点,不稳定节点),主动与任务责任人确认SLA及保障措施,并辅助优化。3、关注数据质量和整体链路资源消耗,主动进行风险预估和优化推动4、值班接收到基线预警电话后及时介入处理,分析存在问题,并发起基线应急。 基线评审委员会 任务负责人: 1、了解基线运维保障规范,相应优化要求2、晚上值班禁止手机关机。3、遇到任务问题及时响应处理。 基线评审小组 业务数仓稳定性负责人:1、准确评估业务基线业务合理性,严格审核基线的搭建以及下线。 2、关注业务基线风险,辅助基线负责人推动基线优化。3、整体把控业务线基线大盘,完成业务线基线目标。 平台运维接口人1、配合支持数据业务审核基线技术合理性。 2、关注基线风险,辅助业务质量接口人以及基线负责人进行基线治理工作。3、提供平台工具,提升平台稳定性,降低基线保障复杂度。 值班机制-值班表内置DataWorks运维中心 03数据稳定性治理实战 基线问题分析甘特图示意 常见基线问题发现 预警:实例执行前即可发现的问题 影响产出的超长任务 0点突然多个任务报预警/破线,但是无任务失败 历史运行时长(5小时) 预估运行时长(5小时) 常见基线问题发现 预警:实例执行前即可发现的问题 0点突然多个任务报预警/破线,但是无任务失败 常见基线问题发现 报警:实例执行中发现的问题 单点运行失败 常见基线问题发现 报警:实例执行中发现的问题 全链路运行变慢 常见稳定性保障运维操作 停止任务+停止后重跑/续跑 重跑:任务从第一段SQL开始重跑。续跑:任务已经跑过不会再次运行,只会从未跑过的代码段开始跑。 重跑/续跑场景 •任务等不到槽位/任务运行等不到资源:可以杀死重跑•语法错误导致报错:修改代码后重跑续跑•数据质量问题修复发布:检查导致DQC报错的原因,清理错误数据后,重跑/续跑•分区过多导致的报错:删除多余的数据分区后,重跑/续跑•权限不足出错:重新申请权限通过后,重跑/续跑 置成功场景 •未产出数据已通过其他途径补偿成功:将上游任务置成功后启动下游任务的调度•数据质量问题带伤执行:质量问题暂时无法解决,需要先产出数据,手动置任务成功 常见稳定性保障运维操作 去除依赖 去除依赖场景 •下游只需要max_pt(表A)取最新分区数据,但配置了对表A的产出依赖:解除对该表依赖,让下游可正常执行并获取最新分区数据•依赖配置错误:误发布的额外的依赖配置,可紧急先手动解除依赖运行,再修改后提交审批发布•依赖的超长运行的上游任务分区数据,通过旁路机制已产出:解除对超长上游任务的依赖,让下游正常执行 各类影响稳定性问题根因分析总结 针对基线正常告警治理,总结各类根因分析问题,进行优化或形成《故障处理手册》 同步任务问题梳理 n上游梳理优化 •连接上游,让上游责任人感知,达成SLA一致•降低从上游侧风险 •上游表变更•上游任务变更•上游数据量膨胀•业务库表/同步任务已无人维护•断流未通知 n风险任务优化 ODS->DW->ADM问题梳理 •发现风险任务•优化任务代码及参数•降低自身任务风险 •数据质量:脏数据强规则阻断•SQL语法/脚本语法:运行报错•调优:数据倾斜•操作不规范:误删、误暂停•表权限报错•依赖配置错误 n关键链路优化 调度&计算问题梳理 •优化关键任务代码•优化任务依赖配置•缩短链路耗时 •计算资源水位吃紧•调度资源不足•平台工具故障•网络抖动 数据稳定性治理评估 评估度量体系是发起治理工作的钥匙。 数据生产稳定性治理效果 04事前稳定性治理 | DataWorks主动式治理,提升事前治理能力 阿里巴巴数据治理平台构建 分业务阶段确认治理方法,明确治理领域和维度,以及需生效的治理策略主动化的治理手段融入数据流程持续运作 事前数据建模 以数据中台方法论为指导,涉及菜鸟/天猫/淘宝/盒马/本地生活等共建DataWorks数据建模平台 支持从业务抽象到数仓顶层规划;支持设置模型设计空间,不同部门可共享一套数仓规范等,可以统一管理不同研发空间的数据模型; 可根据原子指标、修饰词等批量创建派生指标;与维度建模无缝打通,能通过将指标快速搭建成模型; 事前检查项,治理融入开发/测试/发布流程 基于DataWorks内置检查项,对于治理问题的新增引入进行自动预防拦截,提升事前问题拦截率 开发阶段嵌入式治理规范/模型/计算/存储 测试阶段嵌入式治理稳定/质量 发布阶段嵌入式治理规范/稳定/计算/存储 按需启用检查项 事前检查项,预防数据稳定性问题 实现开发即治理,提前发现风险任务 主动式、可量化、可持续的全链路数据治理 DataWorks的数据治理融入开发流程,抛弃“先开发后治理” DataWorks的数据治理成效可量化、可持续运营,避免“应对式治理” DataWorks服务阿里云上千行百业 8万次检查器触发 9000+治理问题 0次高基线破线 90天上线 某头部音视频客户出海300人团队使用数据5000+CU资源使用 某金融客户处理完成3000+问题构建全链路数据治理体系 某互联网客户数据质量规则数量提升4倍拦截数百个风险问题 某零售团队年度降低90人日起夜时长起夜率降低60% DataWorks免费试用 DataWorks产品官网 —THANKS— 感谢您的观看