Flink中关于checkpoint、重启策略、状态、维表join总结

时间:2024-12-13 07:35:04
1、flink 中的状态指的是什么?有哪些状态,你使用过哪些状态

(1)state状态是指可以存储计算的历史数据;

(2)像我们比较常用的状态有valueState、ListState、MapState

2、flink 中 checkpoint 是什么,如何设置。

定义:像checkPoint检查点在很多技术栈中都用到过,其实它们的原理都是差不多的;

        比如spark中的checkPoint检查点就是将rdd存储在像hdfs这种的存储系统中,防止persist缓存丢失,需要重新构建RDD;

        而flink中的checkPoint检查点就相当于虚拟机的快照,可以在系统出现问题等情况时,恢复内存中的计算结果;

如何设置:可以直接在代码中设置enableCheckPoint每隔多长时间自动保存一次快照,也可以通过在命令中手动设置sava Point。

3、flink 中的重启策略 (流式计算中的重启策略)

(1)重启策略就是当数据出现异常时,系统会通过重启从而保证后续程序的正常运行,防止数据丢失;

(2)重启策略可以通过设置checkPoint实现系统自动且无限循环式重启,也可以通过手动设置实现指定次数的重启。

4、什么是维表 join,如何实现

定义:维表join就是将进入flink的数据与一些外部存储设备上的数据(维表)进行关联;

实现方法:

(1)可以通过预加热维表的方式实现,就是把维表数据加载到内存中,然后与流中数据进行join,这种方式虽然实现起来简单,但是由于其数据是存储在内存中的,所以值适合小数据量和表中数据更新频率不高的情况;

(2)也可以通过热存储维表的方式实现,就是将一部分经常访问的维表数据存储在cache缓存中,从而减轻访问压力;

5、flinksql 如何读取 kafka 或者 mysql 的数据。

在读取kafka或者mysql中的数据之前需要先配置相关依赖,然后通过一些参数设置创建执行环境以及表环境,从而实现数据的读取以及各种查询操作。