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&nbsp; &nbsp;
> &nbsp;'2020-03-19' as dt ,&nbsp;&nbsp;
> &nbsp;'2020-03-19 12:05:00'&nbsp; as etltime ,
> &nbsp;count(1) as pv ,&nbsp;
> &nbsp;count(distinct userid) as uv&nbsp;
> from t_user_log&nbsp;
> where&nbsp; logintime&nbsp; &gt;= '2020-03-19 00:00:00' and logintime <
> '2020-03-19 12:05:00'&nbsp;
>
>
> 这里,没法用flink sql 处理,当时这种场景又特别多,各位大神有好的方案处理吗?



-- 
**************************************
 tivanli
**************************************

回复