Hi ,
的确tableEnv.execute 和tableEnv.executeSql 这两个方法不该一起用
现在会报另一个错,去掉tableEnv.execute 方法,
代码如下:
final StreamExecutionEnvironment env =
StreamExecutionEnvironment.getExecutionEnvironment();
EnvironmentSettings bsSettings =
EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build();
env.setRestartStrategy(RestartStrategies.fixedDelayRestart(MAX_RESTART,
Time.of(DURING_RESTART, TimeUnit.SECONDS)));
env.enableCheckpointing(CHECKPOINT_INTERVAL);
StreamTableEnvironment tableEnv =
StreamTableEnvironment.create(env,bsSettings);
Catalog catalog = new
HiveCatalog(CATALOG_NAME,DEFAULTDATABASE,HIVECONFDIR);
tableEnv.registerCatalog(CATALOG_NAME,catalog);
tableEnv.useCatalog("myhive");
tableEnv.executeSql("create table .....");
No jobs included in application
目前的场景是想把flink-sql 建表的操作规范到我们自己的平台上,不想通过SQL-client
或者代码的方式提交建表,这样我们自己可以做一些类似于建表规范,元数据统一管理等一些功能;用户通过在平台上建表,然后调用flink的api来实现建表操作;
现在已经使用的是Hive-catalog,只是我们关注的是建表操作放到我们自己的平台上;
所以想采用上述代码的方式,通过平台调用,直接建表,但是现在这个应用提交是不成功的(要么报没有算子,要么报没有Jobs);
然后就算上述方式提交成功,好像也没法知道我的这个表建成功与否,只知道应用提交成功没有,不像HTTP请求有对应返回值,好像没有类似的 Rest
Api的方式来做这个事情
在 2020-12-14 11:42:35,"Rui Li" <[email protected]> 写道:
>Hi,
>
>调用tableEnv.executeSql("create table
>.....")以后表就已经创建了,不需要再调用tableEnv.execute。execute方法已经deprecate,建议统一使用executeSql哈
>
>On Fri, Dec 11, 2020 at 7:23 PM JasonLee <[email protected]> wrote:
>
>> hi
>> Flink SQL 建的表支持用 hive 的 catalog 来管理元数据,是否可以满足你的需求 ?
>>
>>
>>
>> -----
>> Best Wishes
>> JasonLee
>> --
>> Sent from: http://apache-flink.147419.n8.nabble.com/
>>
>
>
>--
>Best regards!
>Rui Li