I agree with Jane that fine-grained configurations should have higher
priority than job level configurations.

For current proposal, we can achieve that:
- Set "table.optimizer.source.predicate" = "true" to enable by
default, and set ""scan.filter-push-down.enabled" = "false" to disable
it per table source
- Set "table.optimizer.source.predicate" = "false" to disable by
default, and set ""scan.filter-push-down.enabled" = "true" to enable
it per table source

Jane Chan <qingyue....@gmail.com> 于2023年10月24日周二 23:55写道:
>
> >
> > I believe that the configuration "table.optimizer.source.predicate" has a
> > higher priority at the planner level than the configuration at the source
> > level,
> > and it seems easy to implement now.
> >
>
> Correct me if I'm wrong, but I think the fine-grained configuration
> "scan.filter-push-down.enabled" should have a higher priority because the
> default value of "table.optimizer.source.predicate" is true. As a result,
> turning off filter push-down for a specific source will not take effect
> unless the default value of "table.optimizer.source.predicate" is changed
> to false, or, alternatively, let users manually set
> "table.optimizer.source.predicate" to false first and then selectively
> enable filter push-down for the desired sources, which is less intuitive.
> WDYT?
>
> Best,
> Jane
>
> On Tue, Oct 24, 2023 at 6:05 PM Jiabao Sun <jiabao....@xtransfer.cn.invalid>
> wrote:
>
> > Thanks Jane,
> >
> > I believe that the configuration "table.optimizer.source.predicate" has a
> > higher priority at the planner level than the configuration at the source
> > level,
> > and it seems easy to implement now.
> >
> > Best,
> > Jiabao
> >
> >
> > > 2023年10月24日 17:36,Jane Chan <qingyue....@gmail.com> 写道:
> > >
> > > Hi Jiabao,
> > >
> > > Thanks for driving this discussion. I have a small question that will
> > > "scan.filter-push-down.enabled" take precedence over
> > > "table.optimizer.source.predicate" when the two parameters might conflict
> > > each other?
> > >
> > > Best,
> > > Jane
> > >
> > > On Tue, Oct 24, 2023 at 5:05 PM Jiabao Sun <jiabao....@xtransfer.cn
> > .invalid>
> > > wrote:
> > >
> > >> Thanks Jark,
> > >>
> > >> If we only add configuration without adding the enableFilterPushDown
> > >> method in the SupportsFilterPushDown interface,
> > >> each connector would have to handle the same logic in the applyFilters
> > >> method to determine whether filter pushdown is needed.
> > >> This would increase complexity and violate the original behavior of the
> > >> applyFilters method.
> > >>
> > >> On the contrary, we only need to pass the configuration parameter in the
> > >> newly added enableFilterPushDown method
> > >> to decide whether to perform predicate pushdown.
> > >>
> > >> I think this approach would be clearer and simpler.
> > >> WDYT?
> > >>
> > >> Best,
> > >> Jiabao
> > >>
> > >>
> > >>> 2023年10月24日 16:58,Jark Wu <imj...@gmail.com> 写道:
> > >>>
> > >>> Hi JIabao,
> > >>>
> > >>> I think the current interface can already satisfy your requirements.
> > >>> The connector can reject all the filters by returning the input filters
> > >>> as `Result#remainingFilters`.
> > >>>
> > >>> So maybe we don't need to introduce a new method to disable
> > >>> pushdown, but just introduce an option for the specific connector.
> > >>>
> > >>> Best,
> > >>> Jark
> > >>>
> > >>> On Tue, 24 Oct 2023 at 16:38, Leonard Xu <xbjt...@gmail.com> wrote:
> > >>>
> > >>>> Thanks @Jiabao for kicking off this discussion.
> > >>>>
> > >>>> Could you add a section to explain the difference between proposed
> > >>>> connector level config `scan.filter-push-down.enabled` and existing
> > >> query
> > >>>> level config `table.optimizer.source.predicate-pushdown-enabled` ?
> > >>>>
> > >>>> Best,
> > >>>> Leonard
> > >>>>
> > >>>>> 2023年10月24日 下午4:18,Jiabao Sun <jiabao....@xtransfer.cn.INVALID> 写道:
> > >>>>>
> > >>>>> Hi Devs,
> > >>>>>
> > >>>>> I would like to start a discussion on FLIP-377: support configuration
> > >> to
> > >>>> disable filter pushdown for Table/SQL Sources[1].
> > >>>>>
> > >>>>> Currently, Flink Table/SQL does not expose fine-grained control for
> > >>>> users to enable or disable filter pushdown.
> > >>>>> However, filter pushdown has some side effects, such as additional
> > >>>> computational pressure on external systems.
> > >>>>> Moreover, Improper queries can lead to issues such as full table
> > scans,
> > >>>> which in turn can impact the stability of external systems.
> > >>>>>
> > >>>>> Suppose we have an SQL query with two sources: Kafka and a database.
> > >>>>> The database is sensitive to pressure, and we want to configure it to
> > >>>> not perform filter pushdown to the database source.
> > >>>>> However, we still want to perform filter pushdown to the Kafka source
> > >> to
> > >>>> decrease network IO.
> > >>>>>
> > >>>>> I propose to support configuration to disable filter push down for
> > >>>> Table/SQL sources to let user decide whether to perform filter
> > pushdown.
> > >>>>>
> > >>>>> Looking forward to your feedback.
> > >>>>>
> > >>>>> [1]
> > >>>>
> > >>
> > https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=276105768
> > >>>>>
> > >>>>> Best,
> > >>>>> Jiabao
> > >>>>
> > >>>>
> > >>
> > >>
> >
> >



-- 

Best,
Benchao Li

Reply via email to