我没有搜到相关的issue,所以我先建了一个issue[1]。
这个优化相对来说影响比较大,需要仔细的设计和权衡,所以在社区推进的速度
可能没有办法保证,大家感兴趣的可以在issue里去讨论。

[1] https://issues.apache.org/jira/browse/FLINK-21573

Qishang <[email protected]> 于2021年3月3日周三 上午11:03写道:

> Hi Benchao.
>
> 现在的场景是UDF中去查询外部存储,数据量不大,但是执行多次还是在一个算子里串行的。算子耗时就会变成调用次数的倍数了。 这个影响就有点严重了。
> 这个 feature 社区有规划了吗?
>
>
> Benchao Li <[email protected]> 于2021年3月3日周三 上午10:23写道:
>
> > 当前的确是还没有表达式复用的优化,所以表达式最终都是会重复执行的。
> > 这个应该是未来要优化的一个点,我们内部也是刚刚做了这个feature。
> >
> > 这个没有复用不只是在SQL里面看到的多少次,就会执行多少次,而是在
> > plan的过程中会将表达式完全展开,比如下面的SQL:
> > ```SQL
> > SELECT my_map['key1'] as key1, my_map['key2'] as key2, my_map['key3'] as
> > key3
> > FROM (
> >   SELECT dump_json_to_map(col1) as my_map
> >   FROM T
> > )
> > ```
> > 这种写法也会将`dump_json_to_map`这个函数执行3次。
> >
> > HunterXHunter <[email protected]> 于2021年3月3日周三 上午9:43写道:
> >
> > > 为什么4次是没问题的,感觉只执行一次才是最优的
> > >
> > >
> > >
> > > --
> > > Sent from: http://apache-flink.147419.n8.nabble.com/
> >
> >
> >
> > --
> >
> > Best,
> > Benchao Li
> >
>


-- 

Best,
Benchao Li

回复