? ? ? ? ? 最近接到一个需求,关于flink实时大屏需求。每半小时展示历史每天当前半小时(每天00:00:00-00:30:00之间) 的数据的最大值、最小值、中位数、上四分位数、下四分位数。
需求描述
每半小时计算一次历史当前半点的数据的最大值、最小值、中位数、上四分位数、下四分位数。如图大屏展示效果:
?需求描述注意点:
? ? ?1)每半小时计算一次最大值、最小值、中位数、上四分位数、下四分位数。
2)? ?计算第一步中的数据结果需要根据当前半小时的所有历史数据去计算。
? 如:当前时间00:30:00分,根据当天00:00:00~00:30:00中的数据和历史每天00:00:00~
00:30:00 的历史存量数据去计算最大值、最小值、中位数、上四分位数、下四分位数 。
?数据例子?
{'startTIme':'00:00:00','endTIme':'00:30:00','min':'1','max':'10','median':'5','upQuartile':'2','Quartile':'7'}
???????????????? ?
? ?3)? ?第二步中的00:00:00~00:30:00的数据是 -> 每分钟数据量的一个count()值。
? 如: 每分钟的数据量tps,每分钟一个点,00:00:00~00:01:00的数据一个点
数据例子? ? ? ? ? ? ? ? ? ?
? {'startTIme':'00:00:00','endTIme':'00:01:00','tps_count':123}
?思路解析
一路曲折,需要从我刚开始的思路开始讲解,为什么一些思路被否决和淘汰了,也从中体现了关于FlinkSQL的一些用法,以及它的强大。
? ? ? ? 需求实现必须使用实时流去实现。
思路一:?
|