使用flink tableApi 进行表和流转换报错
Exception in thread "main" java.lang.IllegalStateException: No operators defined in streaming topology. Cannot generate StreamGraph.at org.apache.flink.table.planner.utils.ExecutorUtils.generateStreamGraph(ExecutorUtils.java:40)at org.apache.flink.table.planner.delegation.StreamExecutor.createPipeline(StreamExecutor.java:50)at org.apache.flink.table.api.internal.TableEnvironmentImpl.execute(TableEnvironmentImpl.java:1460)at com.quant.flowcalculation.flinkapi.tableapi.TableApiKafka.main(TableApiKafka.java:75)
代码的结构如下:
StreamExecutionEnvironment env &#61; StreamExecutionEnvironment.getExecutionEnvironment();EnvironmentSettings settings &#61; EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build();StreamTableEnvironment tEnv &#61; StreamTableEnvironment.create(env, settings);tEnv.executeSql(sourceDDL);Table sourceTable &#61; tEnv.from("kafka_source");DataStream<Row> rowDataStream &#61; tEnv.toDataStream(sourceTable);rowDataStream.print();tEnv.execute("flink-connection-kafka");
解决办法&#xff1a;
Flink1.13版本对于两个env的execute代码实现有改动&#xff0c;在1.13版本里需要用
env.execute("flink-connection-kafka");