1,需求
每隔5分钟输出最近一小时内点击量最多的前N个商品 这是一个很常见的需求,其实跟实时的pv,uv差不多,可能会比pv,uv复杂一点,由于Flink窗口功能的强大,也让这个需求变的相对简单了,当然用Flink SQL也可以实现.
2,实现步骤
- 抽取出业务时间戳,告诉Flink框架基于事件时间做滑动窗口
- 过滤出点击行为数据
- 按一小时的窗口大小,每5分钟统计一次,做滑动窗口聚合(Sliding Window)
- 按每个窗口聚合,输出每个窗口中点击量前N名的商品
- 结果存储到mysql中.
3,代码实现
package flink
import java.{lang, sql}
import java.sql.DriverManager
import flink.util.CommonUtils
import org.apache.flink.api.common.functions.AggregateFunction
import org.apache.flink.api.common.restartstrategy.RestartStrategies
import org.apache.flink.api.common.state.{ListState, ListStateDescriptor}
import org.apache.flink.ap
本文介绍如何使用Flink实现实时计算场景下,每隔5分钟输出最近一小时内点击量最多的商品TopN。通过事件时间的滑动窗口、过滤、聚合等步骤,结合Flink SQL或API来完成。详细代码已给出,可直接运行并与MySQL集成。
订阅专栏 解锁全文
511

被折叠的 条评论
为什么被折叠?



