开发者好:
目前想把flink-sql 建表的操作集成到我们自己的平台中,但是发现一个比较尴尬的现象,如果使用Table api ,应用中只有create 语句的话,那么应用执行会报错,报没有定义算子:The main method caused an error: No operators defined in streaming topology. Cannot generate StreamGraph. 但是,这个表却创建成功了,代码如下: 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 ....."); tableEnv.execute("test-job"); 加上目前flink-sql 没有show create table 功能,在hive中的元数据没法把已经建的表很好的管理,所以想集成到我们自己的元数据管理平台中 想问下各位大佬,如果只有建表操作,有没有对应的API,单独调用flink-sql 的建表操作 ,上述操作除非加个insert 操作就不报错,但是只是为了建表,加个insert也不行 各位的元数据管理都是咋实现的呢? |
hi
Flink SQL 建的表支持用 hive 的 catalog 来管理元数据,是否可以满足你的需求 ? ----- Best Wishes JasonLee -- Sent from: http://apache-flink.147419.n8.nabble.com/
Best Wishes
JasonLee |
Hi,
调用tableEnv.executeSql("create table .....")以后表就已经创建了,不需要再调用tableEnv.execute。execute方法已经deprecate,建议统一使用executeSql哈 On Fri, Dec 11, 2020 at 7:23 PM JasonLee <[hidden email]> wrote: > hi > Flink SQL 建的表支持用 hive 的 catalog 来管理元数据,是否可以满足你的需求 ? > > > > ----- > Best Wishes > JasonLee > -- > Sent from: http://apache-flink.147419.n8.nabble.com/ > -- Best regards! Rui Li |
> 在 2020年12月14日,11:43,Rui Li <[hidden email]> 写道: > > Hi, > > 调用tableEnv.executeSql("create table > .....")以后表就已经创建了,不需要再调用tableEnv.execute。execute方法已经deprecate,建议统一使用executeSql哈 > >> On Fri, Dec 11, 2020 at 7:23 PM JasonLee <[hidden email]> wrote: >> >> hi >> Flink SQL 建的表支持用 hive 的 catalog 来管理元数据,是否可以满足你的需求 ? >> >> >> >> ----- >> Best Wishes >> JasonLee >> -- >> Sent from: http://apache-flink.147419.n8.nabble.com/ >> > > > -- > Best regards! > Rui Li |
In reply to this post by Rui Li
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" <[hidden email]> 写道: >Hi, > >调用tableEnv.executeSql("create table >.....")以后表就已经创建了,不需要再调用tableEnv.execute。execute方法已经deprecate,建议统一使用executeSql哈 > >On Fri, Dec 11, 2020 at 7:23 PM JasonLee <[hidden email]> wrote: > >> hi >> Flink SQL 建的表支持用 hive 的 catalog 来管理元数据,是否可以满足你的需求 ? >> >> >> >> ----- >> Best Wishes >> JasonLee >> -- >> Sent from: http://apache-flink.147419.n8.nabble.com/ >> > > >-- >Best regards! >Rui Li |
Free forum by Nabble | Edit this page |