1

正如文档强烈推荐的那样,我想在 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 Window 是一种内部操作状态。因此,我想为它分配一个特定的 uid,以防止自动生成的 id 可能引起的一些问题。这样做的正确方法是什么?

我正在运行 Flink v1.6.2

4

1 回答 1

3

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

于 2019-04-02T05:50:51.190 回答