大数据
flink-37 Flink sql 时间属性
所谓的时间属性,其实就是每个表schema的一部分,它可以在创建表的DDL里直接定义一个字段,也可以在DataStream转换成表时定义。
一旦定义了时间属性,它就可以作为一个普通的字段引用,并且可以在基于时间的操作中使用。
时间属性数据类型为TIMEST...
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连接器中就用到了算子状态
...