Как добавить uid к оператору в Flink Table API? - PullRequest
1 голос
/ 02 апреля 2019

Как настоятельно рекомендуется в документации, я хочу добавить uid к своим операторам во Flink с целью сохранения точек. Моя работа использует Table API. Я не нашел в документации, как добавить uid к операторам с SQL-запросом.

Мой код выглядит примерно так:

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, чтобы предотвратить некоторые проблемы, которые могут возникнуть из-за автоматически сгенерированного идентификатора. Как правильно это сделать?

Я использую Flink v1.6.2

1 Ответ

1 голос
/ 02 апреля 2019

Table API не позволяет устанавливать uid для операторов. Проблема в том, что запросы SQL могут привести к различным планам выполнения, если один из них компилирует с другой версией. Таким образом, не удастся установить uids, если ваш план полностью изменится. В настоящее время фактически невозможно обеспечить обратную совместимость для запросов SQL.

...