如何在Flink Table API中向操作员添加uid?

时间:2019-04-01 23:33:10

标签: apache-flink flink-sql

正如该文档强烈建议的那样,为了保存点,我想在Flink中向操作符添加uid。我的工作使用Table API。我没有在文档中找到如何通过SQL查询向操作员添加uid的方法。

我的代码如下:

StreamExecutionEnvironment env = ...;
StreamTableEnvironment tEnv = TableEnvironment.getTableEnvironment(env);
Table table = tEnv.sqlQuery("SELECT * FROM mytable GROUP BY TUMBLE(col1, INTERVAL '10' SECOND));
tEnv.writeToSink(table, someSink, qConfig);

如果我的理解正确,那么TUMBLE窗口是内部操作员状态。因此,我想为其分配一个特定的uid,以防止自动生成的id可能引起的某些问题。正确的方法是什么?

我正在运行Flink v1.6.2

1 个答案:

答案 0 :(得分:0)

Table API不允许您为运算符设置uid。问题是,如果使用不同版本进行编译,SQL查询可能会导致执行计划不同。因此,如果您的计划完全更改,则设置uid将无济于事。目前,实际上不可能为SQL查询提供向后兼容性。