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 夜思流年梦 <li...@163.com> on 2020/12/11 09:26:23 UTC
关于flink-sql 元数据问题
开发者好:
目前想把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也不行
各位的元数据管理都是咋实现的呢?
Re: 关于flink-sql 元数据问题
Posted by 占英华 <yi...@163.com>.
> 在 2020年12月14日,11:43,Rui Li <li...@gmail.com> 写道:
>
> Hi,
>
> 调用tableEnv.executeSql("create table
> .....")以后表就已经创建了,不需要再调用tableEnv.execute。execute方法已经deprecate,建议统一使用executeSql哈
>
>> On Fri, Dec 11, 2020 at 7:23 PM JasonLee <17...@163.com> wrote:
>>
>> hi
>> Flink SQL 建的表支持用 hive 的 catalog 来管理元数据,是否可以满足你的需求 ?
>>
>>
>>
>> -----
>> Best Wishes
>> JasonLee
>> --
>> Sent from: http://apache-flink.147419.n8.nabble.com/
>>
>
>
> --
> Best regards!
> Rui Li
Re:Re: 关于flink-sql 元数据问题
Posted by 夜思流年梦 <li...@163.com>.
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" <li...@gmail.com> 写道:
>Hi,
>
>调用tableEnv.executeSql("create table
>.....")以后表就已经创建了,不需要再调用tableEnv.execute。execute方法已经deprecate,建议统一使用executeSql哈
>
>On Fri, Dec 11, 2020 at 7:23 PM JasonLee <17...@163.com> wrote:
>
>> hi
>> Flink SQL 建的表支持用 hive 的 catalog 来管理元数据,是否可以满足你的需求 ?
>>
>>
>>
>> -----
>> Best Wishes
>> JasonLee
>> --
>> Sent from: http://apache-flink.147419.n8.nabble.com/
>>
>
>
>--
>Best regards!
>Rui Li
Re: 关于flink-sql 元数据问题
Posted by Rui Li <li...@gmail.com>.
Hi,
调用tableEnv.executeSql("create table
.....")以后表就已经创建了,不需要再调用tableEnv.execute。execute方法已经deprecate,建议统一使用executeSql哈
On Fri, Dec 11, 2020 at 7:23 PM JasonLee <17...@163.com> wrote:
> hi
> Flink SQL 建的表支持用 hive 的 catalog 来管理元数据,是否可以满足你的需求 ?
>
>
>
> -----
> Best Wishes
> JasonLee
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/
>
--
Best regards!
Rui Li
Re: 关于flink-sql 元数据问题
Posted by JasonLee <17...@163.com>.
hi
Flink SQL 建的表支持用 hive 的 catalog 来管理元数据,是否可以满足你的需求 ?
-----
Best Wishes
JasonLee
--
Sent from: http://apache-flink.147419.n8.nabble.com/