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 "junjie.miao@goupwith.com" <ju...@goupwith.com> on 2022/11/01 04:09:03 UTC

回复: Re: 关于如何得到管道中哪些源是有界和无界的问题

这种方式不够友好,很难体现流批一体这个特性,所以我还是想通过一些方式来自动判断是有界还是无界。
目前能想到的方式比较low,就是在保存时将其设置成BATCH空运行下看是否内部报对应的错来判断,这种方式很不友好。
理论上table api上应该提供一个方法获取其scan是有界还是无界的。
 
发件人: Guojun Li
发送时间: 2022-11-01 10:36
收件人: user-zh
主题: Re:Re: Re: 关于如何得到管道中哪些源是有界和无界的问题
 
 
 
或许可以考虑在设计平台时将流任务和批任务做成不同的入口。
 
 
Best,
Guojun
 
 
 
 
 
在 2022-10-28 18:14:33,"junjie.miao@goupwith.com" <ju...@goupwith.com> 写道:
>这就是写代码和平台化的需求不同了,对于平台化需要能判断出写的sql代码块最终生成的管道是有界还是无界,对于有界需要对外提供restful api由外部调度系统定时调起,而无界管道可以直接运行长期保持。
>当然还有很多场景下需要知道管道的有界和无界,这里我不一一例举了。
>
> 
>发件人: weijie guo
>发送时间: 2022-10-28 18:01
>收件人: user-zh
>主题: Re: Re: 关于如何得到管道中哪些源是有界和无界的问题
>那应该没有办法在Table API中拿到了,我有一些不理解,为什么你需要自动判断执行模式,而不是根据你的任务的实际情况来设置。
>如果你期望以批的模式跑作业,然后有些Source是无界的,我理解这本身就是采用的source不合理,应该修改代码。
>另外流和批执行模式有很多不同之处,例如sum算子对于每个key是输出多条还是一条,这都是你选择执行模式的时候需要考量的。假设可以支持自动推断,让系统自动推断也可能出现很多预期之外的行为。
> 
>Best regards,
> 
>Weijie
> 
> 
>junjie.miao@goupwith.com <ju...@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.miao@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.miao@goupwith.com <ju...@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.miao@goupwith.com <ju...@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.miao@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.miao@goupwith.com 写道:
>> >>>>
>> >>>> 大家好:
>> >>>>   有个问题判断Table是有界还是无界,或者通过TableEnv如何能得到source table信息和其有界还是无界。
>> >>>>
>> >>>
>> >>
>>
>>