这个问题已经在1.12中修复了,参考:
https://issues.apache.org/jira/browse/FLINK-18688
Benchao Li 于2021年8月30日周一 下午7:49写道:
> Hi xingxing,
>
> 看起来你可能也遇到了这个bug了。
> 我们遇到过一个bug是这样的,在group by的多个字段里面,如果有2个及以上变长字段的话,会导致底层的BinaryRow序列化
> 的结果不稳定,进而导致状态恢复会错误。
> 先解释下变长字段,这个指的是4byte存不下的数据类型,比如典型的varchar、list、map、row等等;
>
Hi xingxing,
看起来你可能也遇到了这个bug了。
我们遇到过一个bug是这样的,在group by的多个字段里面,如果有2个及以上变长字段的话,会导致底层的BinaryRow序列化
的结果不稳定,进而导致状态恢复会错误。
先解释下变长字段,这个指的是4byte存不下的数据类型,比如典型的varchar、list、map、row等等;
然后再解释下这个结果不稳定的原因,这个是因为在底层的代码生成里面有一个优化,会按照类型进行分组,然后进行优化,
但是这个分组的过程用的是一个HashMap[1],会导致字段顺序不是确定性的,有时候是这个顺序,有时候又是另外一个顺序,
Hi Flink 社区:
我们的Flink版本是1.9.2,用的是blink planer,我们今天遇到一个问题,目前没有定位到原因,现象如下:
手动重启任务时,指定了从一个固定的checkpoint恢复时,有一定的概率,一部分状态数据无法正常恢复,启动后Flink任务本身可以正常运行,且日志中没有明显的报错信息。
具体现象是:type=realshow的数据没有从状态恢复,也就是从0开始累加,而type=show和type=click的数据是正常从状态恢复的。
SQL大致如下:
createview view1 as
select event_id, act_time,