你好
1. 窗口数据都会保存的,保存在 State 中,在你的例子中,保存在 RocksDB 中
2. 从给的样例看,应该是增量数据变多了,猜测是往 RocksDB 写数据比较频繁,导致 compaction 之前的 sst 文件无用,这个尝试看
RocksDB 的 log 来验证
3. 窗口的状态暂时无法清楚,你可以用 ProcessFunction [1] 来模拟 window,在 ProcessFunction
中可以按照自己的逻辑清理状态数据
[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/s
先谢谢各位大佬!
1.环境
FLINK 版本 :1.7.2
运行模式:flink on yarn (yarn single job)
2.配置
状态保存方式:RocksDBStateBackend backend = new
RocksDBStateBackend("hdfs:/user/flink", true)
窗口方式:EventTimeSessionWindows.withGap(Time.hours(1))
计算方式:.aggregate(new MyAggregate(), new MyProcess())
3.数据
数据为设备信息,正常每30秒一条数据,有10万+