Thanks Jane for the feedback.

The default value of "table.optimizer.source.predicate" is true that means by 
default, 
allowing predicate pushdown to all sources is permitted.

Therefore, disabling the pushdown filter for individual sources can take effect.


Best,
Jiabao


> 2023年10月24日 23:52,Jane Chan <qingyue....@gmail.com> 写道:
> 
>> 
>> 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
>>>>>> 
>>>>>> 
>>>> 
>>>> 
>> 
>> 

Reply via email to