金融级实时数仓建设实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 金融级实时数仓建设实践
马年圣-蚂蚁集团-实时数仓架构师
DataFunSummit # 2023
2. 目录
CONTENT
蚂蚁实时数仓架构 实时数据质量保障
实时数仓架构设计
实时数据解决方案 面向研发过程的任务级监控
面向数据链路的全链路监控
流批一体应用 数据湖落地展望
流批一体能力构建
流批一体场景应用 数据湖落地展望
3. 01
蚂蚁实时数仓架构
DataFunSummit # 2023
4. 蚂蚁实时数仓架构背景
围绕实时研发流程和能力,定义其中的关键问题,进行实时数仓和架构的建设
实时开发链路
选择
引擎
选择
平台
平台
引擎
可优化点
!
引擎特性
语法函数
!!! 开发生态
!! 运维问题
申请
资源
!!! 平台能力参差不齐
!! 多平台运维
任务散布多平台
!
用户实时开发心智
平台任务迁移问题
口径
copy
资源
代码
开发
任务
测试
资产
任务
上线
工具
任务
运维
报警
配置
质量
!!! 资产复用性问题
任务稳定性监控
!! 计算资源申请和管理
!!! 代码开发提效
逻辑表更同步问题
!! 数据时效监控
! 存储资源的管理
!! 数据验证提效
!!! 数据内容监控
!! 重复解析的资源浪费
任务压测效率
!!! 计存资源和项目域的关系
! 全链路监控
口径对齐问题
! 任务执行计划配置
存储计算
事中的应急处理
! 开发效率问题
5. 什么是实时资产?
元
表
权
限
客户端
API
云账号服务
ODPS
SDK
流
批
一
体
自
动
化
研
发
IDE
元表消费
接入层
HTTP Server
逻辑层
MetaStore
(OTS)
CLT
元
表
血
缘
Worker
SQL
Planner
元表管理
元表定义
…
Worker
Scheduler
Executor
…
Executor
SQL Job
…
Pangu
Fuxi
资产主题
元表质量
唯一性校验
存储/计算层
MR Job
资产目录
强Schema
资产搜索
规范性治理
配置复用
时效性校验
实时元表
SLS
Flink
Hbase
Explorer
Ob
…
存储层
语义层
?
内容校验
Table Api
实时资产
SQL
Connector DDL
计算层
DataStream
Runtime
DataSet
内容
定义
生产
体系
消费
体系
资产
管理
6. 蚂蚁实时数仓架构
实时数据分析(OLAP)
数据服务层
实时数据集定义
资产即服务
实时报表配置
实时数据服务(OLTP)
数据应用接入
统一资产服务
实时接口定义
资产消费血缘
资产搜索
资产元数据打通
资产合规管控
实时标签服务
实时保障
DQC质量巡检
计算逻辑定义
计算开发层
低代码研发
开发模式复用
实时任务生成
流批一体
通用能力沉淀
计算逻辑一致 开发效率提升
解决方案拓展 数据保障增强
异源数据比对
主备一致性监控
核心资产
资产定义
资产沉淀
资产复用
资产规范
场景基线保障
任务运行监控
存储层
元表
物理表
数据源
数据源定义
物理表定义
字段定义
ODPS
引擎层
SLS
线上日志
EXPLORER
HBASE
数据库日志
……
FLINK
实时消息
实时压测系统
诊断系统
……
7. 实时计算解决方案-关联类数据计算
基础解决方案:双流Join、维表关联
trans1
用户
流量埋点
log1
转化事件
user1
流量埋点
trans6
log3
路径筛选
user1
user1
log6
user1
trans6
log3
user1
trans4
user1
trans2
user1
log6
trans3
log2
log7
log5
log1
trans3
log2
trans5
转化事件
trans4
trans2
trans1
用户
trans5
log5
log7
log8
log4
user1
log4
log8
图计算方案
拓扑构建
log1
user_id
user1
user1
user1
user1
user1
log_time
2021-12-05
11:57:00
2021-12-05
11:57:30
2021-12-05
11:59:00
2021-12-05
11:59:30
2021-12-05
11:59:45
spm
user1
trade_no trade_time trade_amt
a1.b1.c1.d1 trade1
a2.b2.c2.d2 trade1
a6.b6.c6.d6 trade1
a7.b7.c7.d7 trade1
a8.b8.c8.d8 trade1
2021-12-05
12:00:00
2021-12-05
12:00:00
2021-12-05
12:00:00
2021-12-05
12:00:00
2021-12-05
12:00:00
100.0
log2
log3
log6
100.0
100.0
100.0
log5
log7
log4
log8
100.0
trans1
其他解决方案:端上进行流量日志的串联、数据湖准实时构建
8. 实时计算解决方案-去重类指标计算
Bitmap
优化方案:Cumulate window
用户去重 最细粒度新增
累计聚合 膨胀分发
去重+膨胀
如果查询活动期累计UV?
=> 尽可能缩小数据量
=> 合并T+1前的累计数据
维表去重
明细流 离线回流
实时打标 构建维表
=>通过流批优化计算
Sls
累计聚合
Hbase
明细流
Hyperloglog
/
Thetasketch
细粒度
Hll/Theta
查询开窗聚合
初始化
RbmUDAF
用户高位分布序列维表
Odps
Hbase OLTP
点查
Explorer OLAP
分析
分维度
RBM
Flink
user_id查询
init
RbmUDTF
累计
数据
流批
对齐
9. 02
实时数据质量保障
DataFunSummit # 2023
10. 实时数仓保障体系-面向研发流程
在事前和事中两个重要的阶段,通过研发卡点、任务监控、数据监控、
全链路监控等能力,保障任务和数据的稳定性
事前
调试+诊断
事中
压测 + 限流防降
压测数据构造
历史数据回放 基于规则造流
TPS配置 并行数
数据异常监控
任务异常监控
记录数波动
数值分布
测试报告
最大消费速率 消费瓶颈点
CPU使用 MEM使用
目标消费能力限流
数据分布
数据波动
统计周期
统计方式
对比周期
阈值区间
服务异常监控
基线全链路巡检
异常数据监控
DQC
压测环境任务压测
全链路基线
数据不一致
全链路监控
单任务延迟
末节点溯源
数据比对
监控字段选定 主备监控
时间区间 异源核对
阈值区间 异常巡检
基线配置
基线等级 基线场景
保障体系 故障体系
任务挂载
血缘能力
DQC执行
Metric采集
数据统计
比对监控
差异比对
DP任务血缘
全任务血缘
消费血缘
11. 实时数仓保障体系-面向数据链路
面向实时数据的全生命周期和全链路,从最底层的引擎到最上层的服务,
构建端到端的实时数据质量监控能力
报表场景
算法场景
应用层
服务可用性监控
服务巡检
……
数据健康度
底层依赖监控
消费
快排
查询层
存储层
生产
查询服务水位监控
写入监控
查询报错告警
负载监控
文件分布
计算层 任务基础监控 底层组件稳定性监控
数据源 数据上报时效 采集延迟监控
查询耗时监控
热点监控
任务级DQC
采集服务稳定性监控
“
端
到
端
”
数
据
质
量
监控
Metric注册中心
分析
快恢
消费切换
12. 实时数仓保障体系-任务粒度监控
任务DQC
单任务
Explorer
DWD
SLS
Metric DQC
DWS
Metric DQC
Hbase
结果DQC
异源核对 异源核对
实时 vs 离线 主备核对
监控系统
监控规则
规则配置
主备校验
主 vs 备
时序数据库
报警系统
数据服务
质量监控
13. 实时数仓保障体系-全链路监控
DWS
基线(时效)
场景(内容)
资产分类 链路监控
风险评估 大促保障
资源管理
场景基线
血缘
发布管控
资产汰换
ODS SLS_ODS
ODS DRC_ODS
R1
8
R2
7
DWD SLS_DWD
DIM HBS_DIM
SLS_DWS
R1
8
R2
7
R3
5
ADM_1 HBS_ADM_1
ADM_2 EXP_ADM_2
ADM_3 UCS_ADM_3
R3
5
R1
8
R2
7
14. 03
流批一体应用
DataFunSummit # 2023
15. 流批一体-Lambda
离线数仓重中间层,实时数仓重应用层,从中间层到应用层均会进行数据融合
=> 流批一体能力要能够兼容从原始层到应用层的逻辑对齐和引擎计算能力
Flink
贴
源
层
明细层
(消息中间件)
轻度
10%
汇总层
60%
报表场景
应用层
(存储多样)
应用直连
数据融合
标签场景
数据/应用融合
30%
数据回流
Odps
轻度
汇总层
明细层
30%
10%
应用回流
60%
应用层
特征场景
流/批模型融合
16. 流批一体-技术架构
元表管理
数据源
元表
代码
编辑
字段定义
Dataphin
离线任务运维
离线代码研发
任务
参数
变量
替换
资源
设置
调度
配置
周期
实例
周期
任务
补数
据实
例
运行
日志
监控
报警
任务
保障
离线调度引擎
离线代码生成
参数配置 预编译 提交 SQL解析 任务依赖 运行报告
权限管理 调试 发布 代码生成 调度实例 实例运行
SQL/Table API Optimizer Function
Batch Optimizer AutoConf “ABS”
DataStream
Stream&Batch Physical SDK
Flink
Source/Sink Connectors
Pluggable Components
RateLimit
Adaptation
Operator API
Shuffle Service
Kubernetes原生调度/集群模式调度
Job Scheduler
Backend
17. 流批一体-逻辑对齐
stream_source
mix_source
batch_source
a varchar a varchar
b varchar b varchar
c varchar c d bigint d a varchar
b varchar
varchar c varchar
bigint d bigint
元表注册
__source_type__ METADATA
__source_type__ METADATA
__source_type__ METADATA
流VS批
流批标识
代码生成
如为mix sink,
则会分别翻译
变量替换
静态/动态分区
sink
Sink限流
保护线上库
sink
a varchar
b varchar
bigint cnt_c bigint
cnt_d bigint cnt_d bigint
is_real varchar is_real varchar
a varchar
b varchar
cnt_c
18. 流批一体-长周期指标计算
离线数据源
离线数据源
实时明细流
Odps
Flink
离线天级汇总表
实时天级汇总
实时明细流
流批一体
混合元表
Flink Stream
Flink Batch
离线天级汇总
数据回流
离线累计汇总表
Lindorm
一套计算逻辑
实时天级汇总
离线累计汇总
实时累计汇总流
Odps
……
Lindorm
实时累计汇总流
优化点
口径一致性 计算通用性
通过流批一体能力保证实时
离线口径的一致性 UV/PV类、前后置汇总均可
使用此套方案
运维效率 研发生态
任务数由4+减少到1个,运维
便捷性提高 结果数据可直接同步到Flink
相关生态存储引擎中
19. 04
数据湖落地展望
DataFunSummit # 2023
20. 数据湖落地展望
计算
①一套计算引擎
②分钟级计算
③打通存储生态
应用场景
ADM
数据报表
ODPS(1d)
存储 资产 效率
全量+增量+实时 切换为一套
存储,节约存储资源 ①一份存储,管理可控
②对齐Odps生态,构建准实
时场景的相关资产管理和保
障能力 ①一份存储一套引擎,真正
实现流批一体研发
②简化复杂解决方案(如长
周期、关联类等)
用户标签
数据服务
ODPS(1h)
离线兜底
Explorer
Lindorm
离线实时
DWS ODPS(1d) ODPS(1h)
DWD ODPS(di) ODPS(hi)
数据同步
数据回流
ODS
数据源
Explorer
……
Lindorm
准实时
Explorer Sls
Lindorm
dim Sls
ri
ODPS(dtm->delta->ods)
线上日志
……
算法特征样本
Paimon(明细->累计汇总)
消息流
增量+初始化
实时元表
数据库日志
Paimon(增全量明细)
实时消息
……
21. 感谢观看