1. SideOutput
按照文档:
https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/stream/side_output.html 以及 SideOutputITCase.scala 的单测代码,实现了一个一样的例子。不过执行时会报错:
Caused by: java.lang.IllegalArgumentException: OutputTag must not be null.
我理解报错是正常的,因为
val outputTag = OutputTag[String]("side-output")
是在 jobManager 构造,而 taskManager 执行时该变量为 null.
但是文档和单测都是这么写,是我理解错了么?
2. Sql with State
按照 Streaming API 的文档:
https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/stream/state/state.html,我理解 State 可以用于一些需要持久化统计数据的场景,使得代码升级重启job时,可以基于原来的数据继续计算。目前测试了下,从 savepoint run job 时,结果符合预期。
不过想了解下,在 SQL 下,如何应用这个特性呢?
https://ci.apache.org/projects/flink/flink-docs-release-1.9/zh/dev/table/sql.html谢谢