1、李天朔/快手实时数据技术专家快手实时数仓保障体系研发实践快手实时数仓保障体系研发实践业务特点业务特点实时数仓保障痛点实时数仓保障痛点实时数仓保障实时数仓保障体系架构体系架构春节活动实时春节活动实时保障实践保障实践未来规划未来规划#1#2#3#4#1#1业务特点及实时数仓保障痛点业务特点及实时数仓保障痛点快手实时应用场景业务特点?保障诉求保障诉求保障诉求保障诉求严格资源管控极致压榨性能链路分级机制短周期开发高稳定性保障高准确性问题及时发现防止重复造烟囱数据量大诉求多样化活动场景频繁核心场景快速支撑快手数仓保障方案及衍生问题?研发阶段问题 flink sql语法和理解更加困难 活动实时计算资源能否
2、扛住洪峰 dwd数据源多次重复消费 作业state随执行增大,任务频繁失败 任务部署无编排,链路依赖混乱生产阶段问题服务阶段问题 监控报警上线后总是有遗漏 作业失败重启,指标结果不符合预期作业产生13min延迟介入运维高时效性15432有状态服务,线上问题难复现问题复杂性日均处理万亿级别数据流量大对于需求侧解决方案能力有差别开发能力良莠不齐问题发生时间是随机的问题随机性实时数仓保障有哪些难点?#2 2快手实时数仓保障体系架构快手实时数仓保障体系架构快手实时数仓保障思路以开发生命周期为基础的正向保障思路以故障注入与场景模拟为基础的反向保障思路正向保障-阶段划分开发阶段测试阶段上线阶段服务阶段下线
3、阶段u逻辑自测u资源预估u时间线预案u分级部署u定期巡检u需求调研u开发标准化u方案评审u任务监控u 时效性u 稳定性u 准确性u资源回收u部署还原开发阶段-开发标准化打法设计标准化开发规范标准方案标准化开发组件化开发阶段-开发标准化开发标准化-场景SQL化 回溯问题 数据真实时间落窗口 Watermark推进 窗口结束后触发 乱序问题 乱序数据不丢弃 记录到最新累计数据 准确性 降低了数据丢弃的差异 上游数据源保序要求降低解决方案(渐进式窗口)按照watermark+event_time切分解决问题业务场景难点回溯曲线异常时效与准确平衡晚到数据丢弃容易数据倾斜开发标准化-场景SQL化 回溯问
4、题 数据真实时间落窗口 Watermark推进 窗口结束后触发 乱序问题 乱序数据不丢弃 记录到最新累计数据 准确性 降低了数据丢弃的差异 上游数据源保序要求降低解决方案(渐进式窗口)按照watermark+event_time切分解决问题业务场景难点回溯曲线异常时效与准确平衡晚到数据丢弃容易数据倾斜上线阶段-时间线预案活动前任务重新部署check作业参数是否合理观察作业运行正常确认部署后集群水位时间线预案 活动保障流程的“剧本”规范:时间、操作人、预案内容、操作记录、操作检查点活动前准备检查指标输出正常任务状态巡检故障应对与链路切换活动中应对下线活动任务回收活动资源恢复链路部署活动复盘活动后
5、上线阶段-分级部署任务级别任务级别适用场景适用场景要求要求flinkflinkkafkakafkaolapolap引擎引擎P0S级活动大屏C端应用13秒级延迟0.5%误差热备双链路部署多机房容灾多机房容灾P1公司核心数据核心B端应用13分钟延迟0.5%误差在线机房部署多机房容灾多机房容灾P2业务核心数据5分钟延迟1%以内误差离线机房高优先级任务离线机房部署单机房P3业务一般数据10分钟延迟1%误差离线机房部署低优先级任务离线机房部署单机房服务阶段-监控报警底层集群监控Flink任务监控SLA目标监控SLA目标监控整体任务目标性能:质量、时效性、稳定性链路任务监控任务状态、数据源、处理过程、输出
6、结果任务IO、CPU、网络信息服务监控服务可用性、服务延迟、服务容量底层资源监控集群的IO、CPU、网络信息依赖服务监控服务阶段-监控报警目标准确性主备链路准确性对比维度下钻离线实时准确波动性实时同环比监控实时时序算法监控一致性通用维度枚举值一致指标度量一致完整性标准维度枚举值完整产出结果完整衡量指标接口产出延迟报警olap引擎延迟报警接口表kafka延迟报警任务状态任务探活延迟监控cp失败监控衡量指标olap引擎p99延迟报警flink作业恢复SLA报警任务读取延迟乱序监控数据丢弃监控任务处理算子时延监控算子输入输出监控任务输出限流监控数据突变监控服务