可以使用下面的代码简单测试一下,state是基于最后一条数据开始计算时间,如果来了一条数据:
---------------- {a:1} 时间为12:00:00
保存到Mapstate为 Map(a=1)
---------------- {b:1} 时间为12:00:05
如果都不来数据的话,我们在
12:00:10 和 12:00:15 可以看到 Map已经没有值了
如果在:
---------------- {a:2} 时间为12:00:07 进入一条数据
那么在 12:00:15 时间点 map为 a=2
直到 12:00:17 Map为null
package appOperator; import com.alibaba.fastjson.JSONObject; import org.apache.commons.collections.IteratorUtils; import org.apache.flink.api.common.functions.RichMapFunction; import org.apache.flink.api.common.state.MapState; import org.apache.flink.api.common.state.MapStateDescriptor; import org.apache.flink.api.common.state.StateTtlConfig; import org.apache.flink.api.common.time.Time; import org.apache.flink.api.common.typeinfo.TypeHint; import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.configurat