开发者社区> 问答> 正文

retract在什么时候触发呢?是有groupby或者窗口就默认retract吗,还是需要配置?

有几个问题想咨询下大佬: 1.retract在什么时候触发呢?是有groupby或者窗口就默认retract吗,还是需要配置? 2.如果上游操作有retract,那么不是所有的下游都带有retract性质了?不然下游计算的数据就不准了。 3.sql操作的话,如果上游是有retract的,那下游select然后print,会把DELETE和INSERT这两条记录都print出来?*来自志愿者整理的FLINK邮件归档

展开
收起
玛丽莲梦嘉 2021-12-03 18:12:12 1170 0
1 条回答
写回答
取消 提交回答
  • 1.retract在什么时候触发呢?是有groupby或者窗口就默认retract吗,还是需要配置?

    这个是某些算子会有这个行为,比如普通的group by,就会发送retract消息。 另外有一些算子是在某些特定配置下才会有这个行为,比如window operator,在配置了early fire或者late fire的时候。 还有些算子本身不会产生,但是会传递,比如calc算子

    2.如果上游操作有retract,那么不是所有的下游都带有retract性质了?不然下游计算的数据就不准了。

    这个也不绝对。大部分时候是。 这个取决于这个算子本身是不是会consume retraction,目前我好想没见到有算子会消费retraction,但是不产生retraction的。

    3.sql操作的话,如果上游是有retract的,那下游select然后print,会把DELETE和INSERT这两条记录都print出来?

    是的。*来自志愿者整理的FLINK邮件归档

    2021-12-03 18:45:12
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载