flink starrocks 问题


咨询下,标注的代码,是用于flink 作业从checkpoint 点重启后,获取state 状态对吗?state 里面会有上一次数据缓存吗?

是的,state用于实现sink的exactly-once语义,标注的代码是基于stream load非事务接口的实现。在connector最新的1.2.4版本,基于StarRocks stream load事务接口重新实现了exactly-once,可以参考 https://github.com/StarRocks/starrocks-connector-for-apache-flink/blob/main/src/main/java/com/starrocks/connector/flink/table/sink/StarRocksDynamicSinkFunctionV2.java

1.2.4 版本和1.2.3 版本具体有什么区别,可以方便简单描述一下吗?另外1.2.4 版本在flink 作业从checkpoint 点重启后,不会从state 获取状态或上一次缓存的数据了?

  1. 1.2.4相对1.2.3主要增加了基于SR stream load事务接口的exaclty-once实现,以及一些bugfix。exactly-once实现见 https://github.com/StarRocks/starrocks-connector-for-apache-flink/pull/121
  2. 所有connector版本只有使用exacly-once,才会从state恢复,at-least-once不会从state恢复

那从state 恢复,我理解就是会去取state 缓存的未成功处理的数据是吗?

基于SR stream load事务接口,state存的是事务id,恢复时会把state里的事务进行commit