1、美团配送实时数仓建设实践大纲 个人介绍 美 团 配送业务特点 美 团 配送实时数据建设 未 来规划个人介绍李金康北京邮电大学硕士 ,工 作 10+年 ,具有系统架构设计与技术管理经 验- 5年 大数据研发经 验美 团 (6年 2013.5加入)- 配送数据组(5年 ): 负 责 实时数据和 数据应用系统建设美 团 配送业务特点更好体验更 低价格用业务复杂、链路长 对现实世界的深度刻画户平台决 策的实时性效率、成本、体验商骑家手更 多单量 更 多收入实时数据数据是事实或观察的结果,是对客 观事物的逻辑归 纳过去当 前 未 来 实时的相 对性时间轴实离线准实 时时小时 ?分钟?秒?毫秒?美 团 配
2、送实时数据建设成果业务贡 献规模算法 策略(智能调度、ETA、动态定价等)每分钟生 产 实时指标上 千万(维度、指标矩阵) 实时业务监控、报警大盘每分钟处理数据上 亿条(binlog) 活动运营 30w+Qps的数据查询服务,响应时间3 0 ms 以内( 4 个9 )美 团 配送实时数据建设演进2016.9-2017.32017.3-2018.112018.11-至 今平台 化系统化规模化美 团 配送实时数据建设演进2016.9-2017.32017.3-2018.112018.11-至 今平台 化系统化规模化定边界 搭服务V1.0 系统化(2016.9-2017.3)背景:应用层业务监控单量
3、热力图- 大量的实时数据监控需求实时监控骑手监控服务层数据服务思路: 快 速上 线计算层数据计算- 边界拆分业务D B 数据收集存储数据层- 和 线上业务隔离canal演进阶段2016.9-2017.32017.3-2018.112018.11-至 今平台 化系统化规模化定边界 高 性 能 搭服务可扩展 稳定性V2.0规模化(2017.3-2018.11)背景:- 需求多动、运营- 链路长- 稳定性 、性 能要求高V2.0 建设思路性 能优化稳定性 建设活动、运营可扩展 :无状态 IO: 批量,合 并 服务降级: 熔 断、限流、降级 拓扑: 合 并 ,减少层 级 监控报警:业务监控、系统监控
4、拆分: 服务、数据拆分 质 量保证 : 开 发、代码review、测试V2.0 架构设计V2.0 整体架构业务服务原则调度ETA定价- 简单- 配置化开 发实时数据服务-可扩展计算存储 管理-易用性稳定性 高 并 发查询 数据源管理时效性可扩展流管理存储管理服务管理-稳定-元数据管理-V2.0 计算模块 计算模式的选择实时数据服务混合 模式批量计算- 降低延迟数据准备构建内存表 指标生 产 后置处理 落存储- 提升准确性创建Sql处理器上 下限处理缓 存数据获取Java处理数据解析更 新易用性器索引更 新hive删除- SQL数据宽表索引数据明细数据数据收集流式计算canal第三方指标合 流d
5、atabus业务服务清洗转换指标上 报V2.0宽表 建模预计出餐时刻骑手到店时刻骑手离店时刻骑手交付时刻用户浏览用户 下单商家接单调度 骑手接单取 餐时刻思路 技术挑战-宽表 模式,拍平状态字段- 漂移- 使用Event time来 构建业务宽表宽表下单时间支 付时间接单时间发单时间调度时间 取 餐时间送 达时间V2.0 合流方案 合 流- 能等就等,提升吞吐- 过时不侯 ,后 期补偿 At least once-流保证 不丢- 下游存储解决 重复V2.0 性 能优化V2.0 合流性 能优化 IO运单/包裹运单/包裹(减负 前) (减负 后 )-减负字段68/6417/6- 瘦身数据大小(B)
6、1200/110060/20- Field hash shuffle CPU宽表 (6个流)- 分层字段36- 异步ack数据大小(B) 160V2.0 计算可扩展定时任 务思路宽表MQ- 数据取 舍: 履约(未完成单,时效性 )业务宽表索引表AreaAreaArea- 分片: 区域分片-无状态、可扩展FCSFCSFCSWorkerTaskH2WorkerTaskH2WorkerTaskH2V2.0 服务性 能优化 IO-减少网络 请求:特征分组区域维度消息分片1-n分组服务爆单数据服务爆单分组缓 存商家维度消息获取 分组配置分片1-n调度数据服务调度分组缓 存计算骑手维度消息读取 基分片1-
7、n定价数据服务定价分组缓 存础指标运单维度消息ETA数据服务分组ETA分组缓 存分片1-nV2.0 服务性 能优化 IO- 增加信息密度:矩阵接口,List扁平结构F1F2矩阵结D11001构D2V2.0 服务性 能优化 GC策略-减少STW时间- 使用G1替换CMSV2.0 稳定性 建设V2.0 稳定性 建设框架四 层 监控体系制 度硬件 监控CPU 网络磁 盘 内存 值班制 度报警治 理基础组件 监控业务监控 技术方案 review机制服务监控性 能 异常 代码review机制DBMQ缓 存指标值 异常值 巡检制 度超时率ESQPS容 灾体系 异常恢复时间3min 架构设计 隔离 双缓存
8、周期压测 三 层 降级制 : 指标、服务、业务 容 量规划 容 错降级 2倍 容 量 熔 断、限流事前事中总结 Casestudy总结 实时索引修复完善报警、工具离线数据修复 数据修复事后V2.0 稳定性 建设解耦、隔离思路 服务隔离、作业分级 服务职责 、边界清晰- 服务隔离、限流维度: 物理隔离、系统隔离、功能隔离- 熔 断、容 灾- 作业分级、互 备收集服务(Canal)隔离 Storm集群隔离-离线、实时、zk隔离- 双机房(rz、gh)- 多机房容 灾 - 三 集群(监控、运营、履约)V2.0 稳定性 建设拆分 服务拆分: 泳道隔离思路- 调度、ETA、爆单、定价等 服务拆分存储拆分
9、-基础指标、分组指标存储拆分-基础指标、分组指标、第三方业务指标 功能拆分- 分组服务、MQ拆分- 分组指标再按照查询拆分收集通道(MQ)拆分- 上 报通道按照上 报信息拆分- 分组信息通道按照计算维度拆分美 团 配送实时数据建设演进2016.9-2017.32017.3-2018.112018.11-至 今平台 化系统化规模化定边界 搭服务 可扩展 数据治 理 稳定性 高 性 能 计算整合V3.0 平台 化背景 运维困难- 实时作业、MQ、指标的不断增多业务模式创新对数据的挑战- 跑腿、同城送、智能硬件V3.0 平台化建设思路 计算、服务架构 数据架构方案方案数据治 理:业务建模,数据、流程
10、规范化质 量保证 : 开 发,review,测试数据质 量:完备 性 、一致性 、时效性 、正 确性性 能优化: 数据,请求元数据驱动:业务元数据,技术元数据服务治 理: 容 量预估,容 错指标体系: 计算能力,数据质 量业务架构 运维体系方案原则不同业务调用分离监控报警:业务监控,系统监控主 流程和 辅流程分离服务降级: 熔 断,一键降级,特征降级建设思路: 迭代前行方案技术规划: 合 作 共 赢、避免重复造轮子调用方梳理: 履约服务,监控服务,运营服务明确职责 : 服务目标, 团 队目标, 达成共 识流程优化: 发版管理,容 量管理,故障管理V3.0元数据驱动体系目标数据服务元数据应用统一
11、的规范和研发流程- 数据内容 分析的根源全 链路监控保障数据建设OneService- 数据开 发、治 理基础的唯一性 、减数据地图少重复建设元数据服务业务元数据 技术元数据数据模型数据指标数据存储数据成本数据维度数据计算数据质 量V3.0 数据架构治 理图思路 应用层 监控 活动、运营实时特征 数据质 量可衡量数据服务数据获取数据脱敏数据组装 降本增效存- 组件 化储报表 /分析/数据存储 ADS与-标准化批量计算DWSDWD计离线数据存储- 配置化算流式计算中心在 线数据存储ODS 数据建模-即时配数据模采集中 心型抽取转换卸载 计算标准化源数据结构化数据 非结构化数据流式数据V3.0 数
12、据质 量评价维度定义思路1. 是否 是定义域中元素2. 是否接近定义域中元素准确性标准化1. 内在 关 系约束一致性- 评价标准化2. 相 互 关 系约束数据评价- 评价指标标准化维度1.单条记录非空 数据占 比完备 性2. 整个数据集非空 数据占 比目标1. 延迟- 驱动数据质 量提升时效性2. 数据的生 命周期并 发处理的最大数据量容 量性 能数据处理速度过程评价维度单条消息、请求处理的最大、平均耗时响应时间所有数据处理完成的总耗时延迟V3.0 数据质 量报表V3.0 数据血缘关 系未 来规划 数据治 理-完善数据计算、存储、数据通用性 的治 理-完善o n e data 运维能力 数据计算- 提升大数据计算能力,增强增量计算能力