You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by me <me...@lishiyu.cn> on 2020/10/26 01:12:41 UTC

关于flink1.11 新版本使用dataStreamEnv.execute 和tableEnv.execute出现No operators defined in streaming topology. Cannot generate StreamGraph.的问题

关于flink1.11 新版本使用dataStreamEnv.execute 和tableEnv.execute出现No operators defined in streaming topology. Cannot generate StreamGraph.的问题


-| 程序内部使用Table API同时也有 Table转为 Datastream的场景。
-|程序内部有使用flinksql 读写kafka,从而执行 sqlUpdate  






尝试使用新版api 只使用tableEnv.executeSql 从而不加 dataStreamEnv.execute 和tableEnv.execute 但是会出现程序执行一个开头就结束了而且没有异常。


求问新老API兼容吗?Table和Datastream同时存在的时候使用dataStreamEnv.execute 还是tableEnv.execute?????

回复:关于flink1.11 新版本使用dataStreamEnv.execute 和tableEnv.execute出现No operators defined in streaming topology. Cannot generate StreamGraph.的问题

Posted by Shuai Xia <jk...@dingtalk.com.INVALID>.
1.11之前TableEnvironmentImpl与StreamExecutionEnvironment的execute方法实现一致
无论用哪一个都可以
1.11修改了TableEnvironmentImpl中execute的实现逻辑
如果代码中涉及了DataStream的操作,则需要使用StreamExecutionEnvironment的execute方法

简单概述为:
 StreamTableEnvironment.execute() 只能执行 sqlUpdate 和 insertInto 方法执行作业
 Table 转化为 DataStream 后只能通过 StreamExecutionEnvironment.execute() 来执行作业
 新引入的 TableEnvironment.executeSql() 方法是直接执行sql作业 (异步提交作业),不需要再调用 StreamTableEnvironment.execute() 或 StreamExecutionEnvironment.execute()


------------------------------------------------------------------
发件人:me <me...@lishiyu.cn>
发送时间:2020年10月26日(星期一) 09:13
收件人:user-zh <us...@flink.apache.org>
主 题:关于flink1.11 新版本使用dataStreamEnv.execute 和tableEnv.execute出现No operators defined in streaming topology. Cannot generate StreamGraph.的问题

关于flink1.11 新版本使用dataStreamEnv.execute 和tableEnv.execute出现No operators defined in streaming topology. Cannot generate StreamGraph.的问题


-| 程序内部使用Table API同时也有 Table转为 Datastream的场景。
-|程序内部有使用flinksql 读写kafka,从而执行 sqlUpdate  






尝试使用新版api 只使用tableEnv.executeSql 从而不加 dataStreamEnv.execute 和tableEnv.execute 但是会出现程序执行一个开头就结束了而且没有异常。


求问新老API兼容吗?Table和Datastream同时存在的时候使用dataStreamEnv.execute 还是tableEnv.execute?????