作者:平凡无间2010 | 来源:互联网 | 2023-06-12 06:46
一.引言上文我们介绍了五种KeyedState的特性以及如何初始化,本文基于五种KeyedState,通过一个案例向大家同时介绍五种KeyedState使用方法。-ValueS
一.引言
上文我们介绍了五种 KeyedState 的特性以及如何初始化,本文基于五种 KeyedState,通过一个案例向大家同时介绍五种 KeyedState 使用方法。
- ValueState
- ListState
- ReducingState
- AggregateState
- MapState
二.准备工作
1.数据类型 Event
// 用户浏览行为
case class Event(user: String, url: String, timeStamp: Long)
数据类型为 case class Event,其中只包含3个字段,分别代表:
user - 用户 ID
url - 用户浏览 URL
timeStamp - 用户浏览时间
2.数据源 Source
数据源通过 Random 随机生成用户 ID 与 URL,并结合 System.currentTimeMillis 作为 EventTime 发出,每隔1s发送一个 Event 类模拟用户浏览情况:
import org.apache.flink.streaming.api.functions.source.SourceFunctionimport scala.util.Randomclass ClickHouse extends SourceFunction[Event] {var running: Boolean = trueval ran