《Flink应用实战》(一)--广播状态

目录

一、基本概念

1、什么是状态

2、状态的分类

3、什么情况下需要保存状态

3、为什么要广播状态

3、广播状态的应用场景

二、广播状态的设计实践

1、数据分流

2、补全用户信息

3、评论过滤

4、用户消费优惠券奖励机制

三、广播状态的开发应用

(1)数据分流开发实践参考Flink动态分流到kafka,hbase_阿飞不会飞丶的博客-CSDN博客_flink hbase phoenix

(2)补全用户信息开发实践(已测试通过)

(3)评论过滤开发实践(已测试通过)

(4)用户消费优惠券奖励机制开发实践(已测试通过)


一、基本概念

1、什么是状态

在Flink中,状态State是指一个具体的task(任务)/operator(算子)的状态。state数据默认是保存在java的堆内存中。

与checkpoint的区别在于checkpoint表示一个FlinkJob在一个特定时刻的一份全局状态快照,即包含了所有task/operator的状态。可以理解为checkpoint是把state数据持久化存储了。

2、状态的分类

在Flink中,状态始终与特定算子相关联。有两种类型的状态:算子状态(operator state)和键控状态(keyed state)

(1)算子状态的作用范围限定为算子任务。这意味着由同一并行任务所处理的所有数据都可以访问到相同的状态,状态对于同一任务而言是共享的。算子状态不能由相同或不同算子的另一个任务访问。

(2)键控状态是根据输入数据流中定义的键(Key)来维护和访问的。Flink为每个键值维护一个状态实例,并将具有相同键的所有数据,都分区到同一个算子任务中,这个任务会维护和处理这个键对应的状态。当任务处理一条数据时,它会自动将状态的访问范围限定为当前数据的键。因此,具有相同键的所有数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值