flink sql upsert模式写入mysql,es等key一定是groupby之后所有字段吗?
举个例子比如我想要 insert into mysql_sink select ID, amount, ……… from source groupby ID;
这里就是想按照id为key,在数据库里更新这个id对应的amount等其他值。
但这样子不能通过calcite的sqlvalidation,select后面不能有非聚合项,必须在groupby后面加上所有select后面的项。 但这样带来一个问题,这样子key的state无限增长(比如说amount是一个随机的double数),job跑不久就会fail掉。
请问大家有什么办法能只指定部分字段为key来规避掉这个问题,谢谢。
*来自志愿者整理的flink邮件归档
非活动key的状态是可清理的,可参考 https://blog.csdn.net/lp284558195/article/details/104609739 https://ci.apache.org/projects/flink/flink-docs-stable/dev/table/streaming/query_configuration.html#:~:text=The%20minimum%20idle%20state%20retention,kept%20before%20it%20is%20removed.
*来自志愿者整理的flink邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。