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 Kevin Dai <15...@qq.com> on 2020/09/17 03:10:36 UTC

Flink SQL TableSource复用问题,相同数据源聚合多个指标,引擎创建多个相同的数据源

场景描述:
通过Flink SQL创建两个Kafka数据源,对数据源去重处理,然后Union ALL合并,并创建临时视图
然后通过Flink SQL读取临时视图进行聚合计算指标,结果写入Redis
问题描述:
Flink SQL 解析器会为每个聚合运算创建相同的两个数据源

在下面Blink Plan的配置说明中,引擎应该会优化复用相同的数据源
- table.optimizer.reuse-source-enabled
- table.optimizer.reuse-sub-plan-enabled

请问下,有人碰到类似问题么?








--
Sent from: http://apache-flink.147419.n8.nabble.com/

Re: Flink SQL TableSource复用问题,相同数据源聚合多个指标,引擎创建多个相同的数据源

Posted by godfrey he <go...@gmail.com>.
blink 根据每个算子的digest信息来判断是否可以reuse(只有digest完全一样才可以reuse),
例如table source节点,算子信息包括:表名,select的字段信息,其他push down之后的信息等。
你可以通过explain的方式把plan打印出来看看,source的digest是否一样

Jingsong Li <ji...@gmail.com> 于2020年9月17日周四 下午2:45写道:

> 你仔细看看这两个数据源是不是有什么不同
> 只要有一点不同,Blink 就 reuse 不了
>
> On Thu, Sep 17, 2020 at 11:10 AM Kevin Dai <15...@qq.com> wrote:
>
> > 场景描述:
> > 通过Flink SQL创建两个Kafka数据源,对数据源去重处理,然后Union ALL合并,并创建临时视图
> > 然后通过Flink SQL读取临时视图进行聚合计算指标,结果写入Redis
> > 问题描述:
> > Flink SQL 解析器会为每个聚合运算创建相同的两个数据源
> >
> > 在下面Blink Plan的配置说明中,引擎应该会优化复用相同的数据源
> > - table.optimizer.reuse-source-enabled
> > - table.optimizer.reuse-sub-plan-enabled
> >
> > 请问下,有人碰到类似问题么?
> >
> >
> >
> >
> >
> >
> >
> >
> > --
> > Sent from: http://apache-flink.147419.n8.nabble.com/
>
>
>
> --
> Best, Jingsong Lee
>

Re: Flink SQL TableSource复用问题,相同数据源聚合多个指标,引擎创建多个相同的数据源

Posted by Jingsong Li <ji...@gmail.com>.
你仔细看看这两个数据源是不是有什么不同
只要有一点不同,Blink 就 reuse 不了

On Thu, Sep 17, 2020 at 11:10 AM Kevin Dai <15...@qq.com> wrote:

> 场景描述:
> 通过Flink SQL创建两个Kafka数据源,对数据源去重处理,然后Union ALL合并,并创建临时视图
> 然后通过Flink SQL读取临时视图进行聚合计算指标,结果写入Redis
> 问题描述:
> Flink SQL 解析器会为每个聚合运算创建相同的两个数据源
>
> 在下面Blink Plan的配置说明中,引擎应该会优化复用相同的数据源
> - table.optimizer.reuse-source-enabled
> - table.optimizer.reuse-sub-plan-enabled
>
> 请问下,有人碰到类似问题么?
>
>
>
>
>
>
>
>
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/



-- 
Best, Jingsong Lee