SELECT HOP_START (ts, INTERVAL '3' MINUTE, INTERVAL '24' HOUR),
HOP_END (ts, INTERVAL '3' MINUTE, INTERVAL '24' HOUR),
dt,
count(1) as pv,
count(distinct userid) as uv
FROM t_user_log
GROUP BY HOP (ts, INTERVAL '5' MINUTE, INTERVAL '24' HOUR),
dt
简单粗暴的可以用滑动窗口的SQL,实现。
写代码就比较简单了,自定义实现一下触发器。
hiliuxg <[email protected]> 于2020年3月19日周四 下午11:30写道:
> hi all:有这样子一个场景,我想通过每隔5分钟统计当日零点到当前5分钟的pv和uv,用批处理大概大概表达如下:
> select
> '2020-03-19' as dt ,
> '2020-03-19 12:05:00' as etltime ,
> count(1) as pv ,
> count(distinct userid) as uv
> from t_user_log
> where logintime >= '2020-03-19 00:00:00' and logintime <
> '2020-03-19 12:05:00'
>
>
> 这里,没法用flink sql 处理,当时这种场景又特别多,各位大神有好的方案处理吗?
--
**************************************
tivanli
**************************************