Flink
flink-36 流处理中的表
动态表(Dynamic Tables)
当流中有新数据到来,初始表中会插入一行,而基于这个表定义的SQL查询,就应该在之前的基础上更新结果。这样得到的表就会不断地动态变化,被称为动态表。数据会随时间变化。
持续查询(Continuous Query)
...
flink-34 状态一致性 端到端一致性
状态一致性
一致性其实就是结果的正确性,一般从数据丢失、数据重复来评估
流式计算在发生故障、需要恢复状态进行回滚时就需要更多的保障机制了。我们通过检查点的保存来保证状态恢复后结果的正确性。
一致性三种级别:
最多一次 At-Most-Once
...
flink-33 保存点
除了检查点,flink还提供了另一个非常独特的镜像保存功能:保存点(savepoint)
这也时一个存盘的备份,原理和算法与检查点完全相同,只是多了一些额外的元数据
保存点的用途
保存点与检查点最大的区别,就是触发的时机。
检查点时由Flink...
flink-30 状态后端
在flink中状态的存储、访问以及维护,都是由一个可拔插的组件决定:状态后端(state backend)
状态后端主要复制管理本地状态的存储方式和位置
状态后端的分类
HashMapStateBackend (默认)
状态存储在内存里,将状态当作...
flink-29 算子状态
算子状态就是一个算子并行实例上定义的状态,作用范围被限定为当前算子任务
算子状态的实际应用场景不如Keyed State多,一般用在Source或Sink等外部系统连接的算子上,或者完全没有key定义的场景
flink的kafka连接器中就用到了算子状态
...
flink-28 按键分区状态
值状态 ValueState
value() 取出值状态里的数据
update(value) 更新值状态里的数据
clear() 清除值状态里的数据
状态描述器 ValueStateDescriptor
计算相邻两个水位的插值相差10的...
flink-27 状态管理
在flink中算子任务,可以分为无状态和有状态两种
无状态的算子任务只需要观察每个独立事件,根据当前输入的数据直接转换输出结果。之前讲到的基本转换算子map、filter、flatMap,计算时不依赖其他数据,都属于无状态的算子。
而有状态的算子任务...