Flink ctas任务,我mysql表改了字段类型 某个字段属性从 nullable 改成 not null后,任务同步报错。我从无状态重启,任务还是报错。但是我把任务删除重新部署后,(代码没有修改),再从无状态启动,就能同步成功了。这是为啥呢?
这个问题可能是由于Flink在处理CTAS任务时,对MySQL表的字段类型和属性进行了缓存。当你修改了表的字段类型或属性后,Flink可能仍然使用旧的缓存信息进行同步操作,导致报错。
当你删除并重新部署任务后,Flink会重新加载表的结构信息,包括字段类型和属性等,因此可以正常同步。
为了避免这种情况,你可以在修改表结构后,手动清除Flink的缓存信息。具体操作如下:
conf
文件夹。flink-conf.yaml
文件,打开并编辑。flink-conf.yaml
文件中,添加以下配置项:taskmanager.state.backend: fs
taskmanager.state.fs.checkpointdir: hdfs:///flink/checkpoints
flink-conf.yaml
文件。这样,Flink就会在每次启动时重新加载表的结构信息,避免了因缓存信息不同步而导致的错误。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。