Flink / Scala 实战 - 18.一套代码搞懂 KeyedState

Posted BIT_666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink / Scala 实战 - 18.一套代码搞懂 KeyedState相关的知识,希望对你有一定的参考价值。

一.引言

上文我们介绍了五种 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.SourceFunction

import scala.util.Random

class ClickHouse extends SourceFunction[Event] 

  var running: Boolean = true

  val ran

以上是关于Flink / Scala 实战 - 18.一套代码搞懂 KeyedState的主要内容,如果未能解决你的问题,请参考以下文章

Flink / Scala 实战 - 19.ProcessFunction 删除 key 的上一个定时器 TimeTimer

新一代大数据计算引擎 Flink从入门到实战

Flink入门及实战(上+下)

Flink 实战:如何解决生产环境中的技术难题?

scala中的Flink Kafka程序给出超时错误org.apache.kafka.common.errors.TimeoutException:60000毫秒后更新元数据失败

Flink / Scala - 20.Scala API Extensions 扩展