如何在 Flink 表 API 中添加 uid 到运算符?



正如文档强烈建议的那样,我想在 Flink 中的运算符中添加 uid 以保存点。我的工作使用表 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

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

相关内容

  • 没有找到相关文章

最新更新