那应该没有办法在Table API中拿到了,我有一些不理解,为什么你需要自动判断执行模式,而不是根据你的任务的实际情况来设置。
如果你期望以批的模式跑作业,然后有些Source是无界的,我理解这本身就是采用的source不合理,应该修改代码。
另外流和批执行模式有很多不同之处,例如sum算子对于每个key是输出多条还是一条,这都是你选择执行模式的时候需要考量的。假设可以支持自动推断,让系统自动推断也可能出现很多预期之外的行为。

Best regards,

Weijie


junjie.m...@goupwith.com <junjie.m...@goupwith.com> 于2022年10月28日周五 17:51写道:

>
> 我是flink1.14.5
>
> EnvironmentSettings.fromConfiguration(ReadableConfig configuration) {
>     final Builder builder = new Builder();
>     switch (configuration.get(RUNTIME_MODE)) {
>         case STREAMING:
>             builder.inStreamingMode();
>             break;
>         case BATCH:
>             builder.inBatchMode();
>             break;
>         case AUTOMATIC:
>         default:
>             throw new TableException(
>                     String.format(
>                             "Unsupported mode '%s' for '%s'. "
>                                     + "Only an explicit BATCH or STREAMING
> mode is supported in Table API.",
>                             configuration.get(RUNTIME_MODE),
> RUNTIME_MODE.key()));
>     }限制了不支持AUTOMATIC
>
>
> 发件人: TonyChen
> 发送时间: 2022-10-28 17:13
> 收件人: user-zh
> 主题: Re: 关于如何得到管道中哪些源是有界和无界的问题
> 升个小版本,1.14.3就有AUTOMATIC
>
>
> Best,
> TonyChen
>
> > 2022年10月28日 17:09,junjie.m...@goupwith.com 写道:
> >
> > hi,weijie:
> > 我使用的是flink1.14里是不支持设置execution.runtime-mode=AUTOMATIC的,会报如下错误:
> > org.apache.flink.table.api.TableException: Unsupported mode 'AUTOMATIC'
> for 'execution.runtime-mode'. Only an explicit BATCH or STREAMING mode is
> supported in Table API.
> >
> > 是后续版本已经支持execution.runtime-mode=AUTOMATIC了吗?
> >
> >
> > 发件人: weijie guo
> > 发送时间: 2022-10-28 16:38
> > 收件人: user-zh
> > 主题: Re: Re: 关于如何得到管道中哪些源是有界和无界的问题
> > 这种需求可以吧execution.runtime-mode设置成AUTOMATIC,
> > 这种模式就是你的需求,如果所有的Source都是有界的,则使用Batch执行模式,否则使用Streaming
> >
> > Best regards,
> >
> > Weijie
> >
> >
> > junjie.m...@goupwith.com <junjie.m...@goupwith.com> 于2022年10月28日周五
> 15:56写道:
> >
> >> hi, Weijie:
> >>
> >>
> 由于我没有发现如何判断管道是有界还是无界的方法,特别是对于Table&SQL需要手动指定execution.runtime-mode=BATCH或STREAMING。
> >>
> >>
> 我想通过得到所有的source的有界/无界来判断整个管道是有界/无界的,如果所有scnSource都是有界的则管道必定是有界管道,否则管道就是无界管道。
> >>
> >>
> >> 发件人: weijie guo
> >> 发送时间: 2022-10-28 15:44
> >> 收件人: user-zh
> >> 主题: Re: Re: 关于如何得到管道中哪些源是有界和无界的问题
> >> Hi, junjie:
> >>
> >> 我想先了解一下你的目的是什么,为什么需要在Table API中判断Source的Boundness,这些信息对你的场景的帮助是什么?
> >>
> >> Best regards,
> >>
> >> Weijie
> >>
> >>
> >> junjie.m...@goupwith.com <junjie.m...@goupwith.com> 于2022年10月28日周五
> >> 15:36写道:
> >>
> >>> public static DynamicTableSource
> FactoryUtil.createTableSource(@Nullable
> >>> Catalog catalog,ObjectIdentifier objectIdentifier, ResolvedCatalogTable
> >>> catalogTable, ReadableConfig configuration, ClassLoader classLoader,
> >>> boolean isTemporary)可以得到但是需要传入的参数太多了,这些参数不知道如何获取
> >>>
> >>> 发件人: junjie.m...@goupwith.com
> >>> 发送时间: 2022-10-28 15:33
> >>> 收件人: user-zh
> >>> 主题: Re: Re: 关于如何得到管道中哪些源是有界和无界的问题
> >>> 问题是如何拿到ScanTableSource呢?目前我没发现哪里可以得到
> >>>
> >>>
> >>> 发件人: TonyChen
> >>> 发送时间: 2022-10-28 15:21
> >>> 收件人: user-zh
> >>> 主题: Re: 关于如何得到管道中哪些源是有界和无界的问题
> >>> 是不是可以看下这个
> >>>
> >>>
> >>
> https://github.com/apache/flink/blob/master/flink-table/flink-table-common/src/main/java/org/apache/flink/table/connector/source/ScanTableSource.java#L94
> >>> Best,
> >>> TonyChen
> >>>> 2022年10月28日 15:12,junjie.m...@goupwith.com 写道:
> >>>>
> >>>> 大家好:
> >>>>   有个问题判断Table是有界还是无界,或者通过TableEnv如何能得到source table信息和其有界还是无界。
> >>>>
> >>>
> >>
>
>

回复