0%

Flink实践之延迟统计

1 Flink实践之延迟统计

流计算是基于消息触发计算的,若没有消息到达到则无法计算,这类指标恰好是要求在指定的超时时间计算出有多少未达到的消息。

1.1 常见场景

1.1.1 菜鸟-物流单配送超时统计

实时数仓的建设难度: 链路复杂、实操节点多、汇总维度多、考核逻辑复杂的特点

仓配实时数据已覆盖了绝大多数场景,但是有这样一类特殊指标:“晚点超时指标”(例如:出库超 6 小时未揽收的订单量),仍存在实时汇总计算困难。
这类指标对于指导实操有着重要意义,可以告知运营小二当前多少订单积压在哪些作业节点,应该督促哪些实操人员加快作业,这对于物流的时效 KPI 达成至关重要。

1.1.2 财付通-资金流账龄超时监控

1.2 解决方案

1.3 方案一: MQ延迟发送

菜鸟的解决方案图

graph LR

T1[订单表]
T2[清洗表]
T3[订单延迟表]
T4[结果表]

J1(任务一: 数据清洗)
J2(任务二: 延迟6小时)
J3(任务三: 汇总计算)

T1 --> J1
J1 --> T2
T2 --> J2
J2 --> T3
T3 --> J3
T2 --> J3
J3 --> T4

简化版:

graph LR

T1[订单表]
T3[Datagen 定时数据表
每秒生成一条数据:
以当前时间作为事件时间] T4[结果表
需支持数据回撤] J1(清洗/过滤) T1 --> J1 subgraph 计算任务 J2(指定事件时间) J3(T1 left join T3
) J1 --> J2 T3 --> J3 J2 --> J3 end J3 --> T4

1.4 方案二: FlinkState+TimeService

1.6 方案四: OLAP


1.7 [参考文献]:

https://flink-learning.org.cn/activity/detail/0ab621d17a16e502dcc6e5e2980e643c?tab=ce84125f7d83480f7ccf34685cce43f6&city=&page=xiangguanhuodong

https://files.alicdn.com/tpsservice/0f9d6f504576175dbf6d084c3e2a43fa.pdf?spm=a2csy.flink.0.0.7f395badaF3TXC&file=0f9d6f504576175dbf6d084c3e2a43fa.pdf

利用Flink实现实时超时统计场景

  1. 利用 blink+MQ 实现流计算中的超时统计问题