
简介这是一份面向企业IT运维与大数据平台规划人员的解决方案文档聚焦OLTP与OLAP系统融合趋势下的大数据运维体系设计。内容从组织架构切入系统对比了开发和运维纵向一体化、完全分离以及均衡三种交维模式剖析各自适用场景与利弊并给出故障分级方法将故障划分为灰、蓝、黄、橙、红五个等级同时结合时间、影响范围、数据完整性等维度说明判定标准。文档还覆盖故障升级流程、短信通知对象示例以及数据采集平台接口及时性保障策略包含具体时段达成率目标与数据质量检查思路可直接参考落地。资源为1个docx文档约298KB便于阅读与复用。该文档已有150人学习浏览适合正在搭建或优化大数据运维体系的技术团队参考。1. 大数据运维规划OLTP的运维经验救不了OLAP企业IT部门里CRM挂了是天大的事BI这类OLAP系统挂了却往往能容忍很长时间这个反差我在传统企业里见了太多次。但随着OLTP系统迫切需要OLAP的分析力OLAP又需要嵌入OLTP流程中去发挥价值两个系统正在快速融合边界越来越模糊。每年双11前阿里的大数据平台运维人员会非常忙哪怕只是实时大屏的数字显示背后都需要极强的运维保障能力而很多企业搞大型营销活动只关注OLTP稳定OLAP运维人员悠闲得多这就是数字化企业和非数字化企业的差距。大数据运维规划没法照搬OLTP那套体系可用性要求不同、交接对象不同、故障影响面不同必须单独设计。这篇文章按组织架构、故障分级、采集与作业保障、改进反推四个方向展开。2. 运维组织架构三种模式纵向一体化、完全分离与均衡模式怎么选2.1 纵向一体化效率最高但规模卡在标准缺失我在按业务条线纵向一体化的BI团队里待过六七年。每个人按业务条线划分为自己这条线的所有数据全面负责需求自己做、开发自己做、维护自己做连业务沟通都是自己上。这种模式的效率确实高因为写产出代码的人就是看监控的人数据出问题开发能直接从模型层定位到接口层不需要转述也不需要拉会。对人的锻炼价值也最大一个长期跑这条线的人基本能把业务口径、数据血缘、调度依赖讲得一清二楚。但纵向一体化的天花板非常明显缺乏标准。每个人的处理过程不透明换一个人接手可能连告警规则藏在哪个配置里都不知道。没有统一标准就没法做运维承诺也就没办法对业务方形成明确SLA团队规模一扩大这套玩法立刻撑不住。它适合小团队和业务快速迭代期但当系统规模上千、接口上万时问题会集中在少数人身上其他人接不住。2.2 开发和运维完全分离短期有效长期缺乏成长性系统庞大之后IT部门为了稳定会制定大量标准化规范和流程把运维从开发中剥离出来形成横向切割。这个思路从OLTP迁移过来很自然因为OLTP的服务组合是可以穷举的标准化程度高交接时能说清楚。但OLAP完全不同数据的指标和维度组合几乎是无穷的把一张表交给运维如果没有业务理解这张表就是一堆字段名。数据维护里最大的一类工作——数据质量稽核本质上需要代码级的溯源能力得能顺着产出SQL一路查到源系统。只懂封装的数据运维人员能做的只有监控告警、作业调度启停遇到数据问题基本只能转述给开发。一个问题的解决流程被拉得很长业务反馈给运维运维转述给开发开发查到一半发现要问业务口径再拉会。这种模式短期看有效因为复用了OLTP已有的流程经验但长期看缺乏成长性运维满意度上不去运维人员自己的技能也涨不了。我一直认为运维才是系统改进的核心驱动力而不是由项目规划人员指东打西。规划人员提出的东西往往离实际运维问题相差很远。谁对系统有真正发言权如果稳定是企业最核心的诉求专业能力最强的人应该放到运维而不是开发或规划。2.3 均衡模式中台类资产交维创新类自管第三种模式是我目前比较认同的方向维护要有的放矢。中台类的系统、产品或数据做交维创新、探索、变动类的系统或数据不交维谁做的谁自己管。什么是中台类企业真正沉淀下来的资产成熟一个纳入一个——基础平台、标签库、基础模型、融合模型都算。对于交维对象运维团队要能提出合理的监控和告警要求并部署要能自行处理大多数故障要能提出持续优化建议在未来系统改进上具有主导发言权。判断一个对象能不能交维我一般用下面这张表过一遍交维对象成熟度要求运维团队能力要求基础平台BDI等具备高可用与容灾切换能力能独立完成容灾演练与故障恢复标签库/基础模型数据口径稳定产出任务已纳入统一调度能读懂血缘能独立做数据质量稽核融合模型稳定运行多个周期无重大口径变更能解释指标波动原因并定位到源头创新/探索类应用不交维原开发团队自管这里有个常见误区把所有应用都纳入运维结果运维团队什么都接不住。衡量的标准是交维对象的稳定性以及运维团队能否在大多数故障场景下独立闭环而不是交维表格填得满不满。2.3.1 交维前自动检查交付动作不能靠人肉逐项确认我一般会在交维前跑一个自动检查脚本核心是卡血缘文件和监控配置#!/bin/bash # 交维前检查确认交付物齐全且包含关键监控配置 required(data_dict.md lineage.json sla.yaml monitor.yaml) missing0 for f in ${required[]}; do if [ ! -f handover/${f} ]; then echo [MISSING] ${f} missing1 fi done [ $missing -eq 0 ] echo [READY] 交维包完整可进入纳管评估流程。这段脚本做的事情是卡住交维门槛。lineage.json是血缘描述文件没有血缘运维接手后根本没法做影响分析一张表挂了都不知道哪些下游应用会受影响monitor.yaml里如果连数据量波动告警都没配这个对象就不具备交维条件。跑一遍只要几秒比靠人逐项确认可靠得多也能逼着开发团队把交接文档补齐。3. 故障分级与升级流程灰蓝黄橙红五级怎么定3.1 对象分级核心、重要、一般的划分原则故障分级的前提是管理对象分级。数据运维涉及平台、应用和数据三类对象每类都应该按重要性划分核心、重要、一般三个等级。以下是一个划分示例管理对象等级划分理由BDI 采集平台核心挂了数据就采不进来平台保障优先变现类应用重要涉及直接收入收入优先原则生产报表数据重要与重要应用强相关数据与应用一致性原则一般数据分析一般对内支撑时效要求相对宽松这张表的设计背后有三个原则平台保障原则、收入优先原则、数据与应用一致性原则。血缘分析在这里非常关键——要知道哪些数据跟哪些应用相关才能判定数据的重要等级。表的等级需要动态维护每次纳管一个新的平台、数据或应用就得同步更新而不是建完表就丢在那里不管。3.2 故障等级判定时间维度加数据完整性故障分级我们划分为灰、蓝、黄、橙、红五个层级。首先考虑时间维度即异常持续时间但时间维度不足以表示故障严重程度还需要加上影响范围特别要增加数据完整性这个指标——数据大范围延迟即使没有一个投诉也是较大故障。以下是一套示例判定标准故障等级判定条件示例灰延迟小于 15 分钟无业务影响蓝延迟 1530 分钟或个别非重要接口失败黄延迟 30 分钟2 小时或一般应用数据延迟橙延迟 28 小时或重要应用数据异常/部分缺失红延迟超过 8 小时或核心平台不可用、核心数据不完整阈值需要企业根据自身情况校准我一般建议拿历史故障回放一遍调整到与实际事故严重程度基本吻合再用。判定的逻辑适合做成小函数直接挂在告警平台里def fault_level(delay_minutes: int, affected_level: str, data_incomplete: bool False) - str: # affected_level 取值为 core/important/normal对应对象分级结果 if data_incomplete and affected_level in (core, important): return RED if affected_level core else ORANGE if delay_minutes 480: return RED if delay_minutes 120 or (affected_level core and delay_minutes 60): return ORANGE if delay_minutes 30: return YELLOW if delay_minutes 15: return BLUE return GREY参数说明delay_minutes是数据产出延迟的分钟数affected_level是第一节管理对象分级的结果core 对应核心对象data_incomplete表示是否检测到数据空洞或大范围缺失。规则里有两个关键设计一是数据不完整会直接把等级拉到橙/红即使没人投诉——这对应「大范围延迟就是大故障」的原则二是核心对象延迟到 60 分钟就提前进橙色因为影响面大不能等 120 分钟才升级。3.3 升级流程与短信通知对象有了故障等级还要配套升级流程明确什么时刻需要做什么事。常见做法如下时间点动作05 分钟值班人员确认故障判定初始等级登记台账15 分钟黄级以上通知运维负责人进入协同排查30 分钟橙色以上通知应用负责人与开发侧准备回滚或补数方案60 分钟红色故障通知部门负责人由负责人决策是否启动容灾短信通知对象也要跟着故障等级走故障等级短信通知对象灰/蓝值班运维黄值班运维 运维负责人橙值班运维 运维负责人 数据产品/应用负责人红上述全部 部门负责人/管理层故障严重的时候需要让老板知道。短信通知的名单不是写死的每次纳入新平台或新应用都要同步更新通知矩阵避免出现「应用已经换了负责人故障短信还发给上一个」的情况。4. 数据采集与作业调度保障把及时性变成可验收的达成率4.1 BDI 采集接口2000多个接口的分级与分时段目标数据采集是数据运维的地基采集不及时下游所有作业和报表都会跟着延迟。我这边 BDI 采集平台当前有 2000 多个采集接口复杂度不算低接口类型数量说明分钟/小时/月接口400高频接口优先保障日接口重要级300直接影响重要应用日接口一般级约 1200要有保障底线涉及数据源155 个库依赖面广需逐源核对接口重要性不同及时性要求就必须分开定。以下是一个保障目标示例2 点前完成 58% 的重要级接口4 点前完成 78%6 点前完成 85%8 点前完成 88%12 点前完成 100%。考虑到集群计算性能时有波动各时段达成率目标设定为 90% 以上。时间点重要接口累计达成率目标全部接口达成率底线2 点58%90%4 点78%90%6 点85%90%8 点88%90%12 点100%90%再重要的接口也要有底线再不起眼的接口也要有保底要求。很多企业数据几个月没采集都没人发现就是因为缺乏明确的保障要求和监控指标。数据准确性方面也类似每个数据接口采集都要设置数据量波动性检查、空值检查不能只看跑没跑完。4.2 DACP 作业保障762个作业的重要级识别大数据模型和应用数据的生成我这边都纳入 DACP 管理包括融合模型、挖掘模型和数据应用大作业共计 762 个。其中月作业 189 个日作业 573 个日作业里重要级作业 333 个。作业的及时性保障同样按时间点卡时间点重要作业累计达成率目标4 点15%8 点65%12 点85%针对重要应用涉及的作业还应设置应用结果数据的质量检查机制提前发现问题。特别是变现类应用所有数据都要做波动性告警。这里多说一句做这个是因为对外变现出现过多次数据异动导致客户投诉所以宁可多做一步尽量未雨绸缪虽然不能解决所有问题但能做一步算一步。4.3 用 SQL 统计分时段达成率达成率目标定完之后关键是每天能看到实际值。以下是用 SQL 按目标时间分桶统计的重要接口达成率-- 统计 BDI 重要接口分时段达成率按目标完成时间分桶 WITH finish_log AS ( SELECT interface_id, importance, -- 重要/一般来自接口配置表 target_time, -- 该接口当日目标完成时间接口级配置 actual_finish_time FROM bdi_collection_log WHERE dt CURRENT_DATE ) SELECT CASE WHEN target_time 02:00 THEN t2_before WHEN target_time 04:00 THEN t4_before WHEN target_time 06:00 THEN t6_before WHEN target_time 08:00 THEN t8_before WHEN target_time 12:00 THEN t12_before ELSE after_12 END AS time_bucket, COUNT(*) AS total_cnt, ROUND(100.0 * SUM( CASE WHEN actual_finish_time target_time THEN 1 ELSE 0 END ) / COUNT(*), 2) AS on_time_rate FROM finish_log WHERE importance 重要 GROUP BY 1 ORDER BY 1;这段 SQL 的关键在于target_time是从接口配置表带出来的每个接口独立配置自己的目标完成时间不是统一按凌晨 2 点或 4 点算。time_bucket把接口按目标时间分桶对应「2 点前完成 58%」这类约定on_time_rate计算的是该时段内应完成接口中实际按时完成的比例。每天早晨跑一遍和约定目标对比哪个桶没到线当天就排查不用等月度复盘。5. 从告警反推改进把故障台账变成运维规划的输入故障分级和达成率统计只是第一步真正有价值的是让运维数据反向驱动系统改进。运维最怕的不是出事而是完全的事务驱动总是救火投更多的人救火却很少有人能从运维角度提出真正的问题和改进要求。100 个接口的时候不做规划和管理到 1 万个接口的时候积重难返。每次故障处理完之后我建议在台账上回填几个固定字段根因分类、恢复动作、本次故障是否可被现有告警提前发现。根因分类我一般固定用这几类调度依赖配置错误、数据源异常、SQL 性能劣化、模型口径变更、资源不足。每季度按根因做一次聚合重点看两个指标根因占比以及「本可被告警提前发现但没发现」的占比。这两个指标决定改进动作的方向。如果占比最高的是调度依赖配置错误那要改的是 DACP 里的作业依赖关系而不是加监控如果大量故障是「本可被提前发现」说明监控规则覆盖不到位优先补数据量波动和空值检查只有确认是 SQL 性能劣化才值得投入去做任务优化。这样改进就不是拍脑袋而是由故障数据说话。对象分级表同样需要动态维护。新增一个应用时跑一遍血缘分析把涉及的表、接口、作业全部标记为对应等级体现的是数据和应用一体化的思想。我一般会把血缘分析任务挂到发布流程里每次新应用上线自动生成一张待分级数据清单交给运维与数据产品在 48 小时内确认等级并同步更新监控告警配置和短信通知矩阵。这样分级和监控始终跟业务同步不会出现「应用上线两个月告警还没配」的空窗。本文还有配套的精品资源点击获取