实时数仓平台建设方案
² 混合模式 降低延迟 提升准确性
• 易用性
SQL
数据准备 数据获取 数据解析
构建内存表 创建 更新 删除
数据收集 canal
databus
业务服务 指标上报
索引数据
实时数据服务
批量计算
指标生产
Sql处理器 Java处理
器
后置处理 上下限处理
索引更新
落存储 缓存 hive
数据宽表
明细数据
读取基 础指标
分组
爆单分组缓存 调度分组缓存 定价分组缓存 ETA分组缓存
爆单数据服务 调度数据服务 定价数据服务 ETA数据服务
V2.0 服务性能优化
• IO
增加信息密度:矩阵接口
List扁平结构
<D1,F1> <D1,F2> <D2,F1>
<D1,F1>,<D1,F2>,<D2,F1>
<D1,F1> <D1,F2>
2018.11-至今
平台化
V2.0 规模化 (2017.3-2018.11)
• 背景:
需求多 链路长 稳定性、性能要求高
V2.0 建设思路
性能优化
• 可扩展:无状态 • IO:批量,合并 • 拓扑:合并,减少层级
稳定性建设
• 质量保证: 开发、代码review、测试 • 服务降级: 熔断、限流、降级 • 监控报警: 业务监控、系统监控 • 拆分:服务、数据拆分
过去
当前 未来
时间轴 • 实时的相对性
离线
准实时
实 时
小时?分钟?秒?毫秒?
美团配送实时数据建设成果
业务贡献
• 算法策略(智能调度、ETA、动态定价等) • 实时业务监控、报警大盘 • 活动运营
规模
• 每分钟生产实时指标上千万 (维度、指标矩阵)
• 每分钟处理数据上亿条(binlog) • 30w+Qps的数据查询服
取餐时间
送达时间
V2.0 合流方案
• 合流
能等就等,提升吞吐 过时不侯,后期补偿
• At least once
流保证不丢 下游存储解决重复
V2.0 性能优化
V2.0 合流性能优化
• IO 减负 瘦身 Field hash shuffle
• CPU 分层 异步ack
务, 响应时间30ms以内(4 个9)
美团配送实时数据建设演进
2016.9-2017.3
系统化
2017.3-2018.11
规模化
2018.11-至今
平台化
美团配送实时数据建设演进
2016.9-2017.3
2017.3-2018.11
系统化
规模化
• 定边界 • 搭服务
2018.11-至今
平台化
V1.0 系统化(2016.9-2017.3)
字段 数据大小(B)
运单/ 包裹 (减负前)
68/64
1200/1100
运单/包裹 (减负后)
17/6
60/20
字段 数据大小(B)
宽表(6个流) 36 160
V2.0 计算可扩展
定时任务
• 思路
宽表
数据取舍:履约(未完成单,时效性) 业务宽表
索引表
Area
分片:区域分片 无状态、可扩展
• 数据修复
事后
• 实时索引修复
• 离线数据修复
制度
• 技术方案review机制 • 代码review机制 • 巡检制度 • 值班制度 • 报警治理 • 异常恢复时间<3min
V2.0 稳定性建设-解耦、隔离
• 思路
² 服务职责、边界清晰
² 维度:物理隔离、系统 隔离、功能隔离
• 服务隔离、作业分级
V2.0 架构设计
V2.0 整体架构
• 原则
简单 配置化开发 可扩展
业务服务
调度
ETA
⋯
定价
计算
易用性 稳定性 时效性
实时数据服务
存储
管理 流管理 存储管理 服务管理
V2.0 计算模块
• 计算模式的选择
服务隔离、限流 熔断、容灾 作业分级、互备
• 收集服务(Canal)隔离
离线、实时、zk隔离 多机房容灾
• Storm集群隔离
双机房(rz、gh) 三集群(监控、运营、履约)
V2.0 稳定性建设-拆分
矩阵结 构
F1 F2 D1 1 0 D2 0 1
<D1,Group1 > <D2,Group1 >
⋯
<D1,F1,F2 Group> <D2,F1,F2 Group>
V2.0 服务性能优化
• GC策略
减少STW时间 使用G1替换CMS
V2.0 稳定性建设
V2.0 稳定性建设框架
四层监控体系
硬件监控
基础组件监控
服务监控
业务监控
CPU 磁盘
网络 内存
DB
缓存
M
ES
Q
性能 超时率
异常 QPS
指标值 异常值
容灾体系
Œ 架构设计 • 隔离 • 双缓存
• 容量规划 • 2倍容量 • 周期压测 事前
Ž容错降级 • 熔断、限流 • 三层降级制:指标、服务、业务
事中
•总 结 • Casestudy总结 • 完善报警、工具
流式计算
第三方指标
合流
清洗/转换
V2.0 宽表建模
预计出餐时刻
骑手到店时刻
骑手离店时刻 骑手交付时刻
用户浏览 用户下单 商家接单
调度 骑手接单
取餐时刻
• 技术挑战 漂移
下单时间
支付时间
接单时间
• 思路 宽表模式,拍平状态字段 使用Event time来构建业务宽
宽表表
发单时间
调度时间
⋯
美团配送实时数仓平台建设方案
技术创新 变革未来
大纲
• 背景介绍 • 美团配送业务特点 • 美团配送实时数据建设 • 未来规划
美团配送业务特点
更好体验 更低价格
用 户
平台
效率、成本、体验
商
骑
家
手
更多单量
更多收入
• 业务复杂、链路长 • 对现实世界的深度刻画 • 决策的实时性
实时数据
数据是事实或观察的结果,是对客观事物的逻辑归纳
FCS
FCS
Worker
Worker
Task
Task
H2
H2
M Q
Area
Area
FCS Worker
Task
H2
V2.0 服务性能优化
• IO
减少网络请求:特征分组
计算
区域维度消息 分片[1-n]
商家维度消息 分片[1-n]
骑手维度消息 分片[1-n]
运单维度消息 分片[1-n]
分组服务
获取分 组配置
• 背景:
大量的实时数据监控需求
• 思路:快速上线
边界拆分 和线上业务隔离
应用层 服务层 计算层
数据层
骑手监控 业务DB
业务监控 数据服务 数据计算
数据收集
canal
单量热力图 存储
演进阶段
2016.9-2017.3
系统化
• 定边界 • 搭服务
2017.3-2018.11
规模化
• 高性能 • 可扩展 • 稳定性