目前StreamTableEnvironment和TableEnvironment在DAG优化方面的行为自1.11开始都是一样的了,建议都使用StatementSet来支持多insert。TableEnvironment以后还会进一步的简化和整合。

Best,
Godfrey

[email protected] <[email protected]> 于2020年5月28日周四 下午5:45写道:

> Hi,
>
> StreamTableEnvironment类似于TableEnvironment的Dag优化有版本规划吗?未来TableEnvironment的dag优化和StreamTableEnvironment较丰富api会不会统一?
>
> Best,
> Junbao Zhang
> ________________________________
> 发件人: Benchao Li <[email protected]>
> 发送时间: 2020年5月28日 17:35
> 收件人: user-zh <[email protected]>
> 主题: Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
>
> Hi,
>
> 时间差了13个小时这个比较奇怪,我理解不应该出现这个问题的。你是说不用TableEnvironment就不会出现这个问题么?
>
> 第二个问题,TableEnvironment目前应该是没法设置checkpoint的,这个应该是只能在StreamExecutionEnvironment来配置吧。
>
> [email protected] <[email protected]> 于2020年5月28日周四
> 下午5:27写道:
>
> > Hi, Benchao:
> >
> >
> DAG图是指向了同一个问题,但是用了TableEnvironment后,发现所有的时间都差了13个小时,比如调用LOCALTIMESTAMP函数。另外问一个问题,使用TableEnvironment怎么设置checkpoint?
> >
> >
> >
> >
> > Best,
> > Junbao Zhang
> > ________________________________
> > 发件人: Benchao Li <[email protected]>
> > 发送时间: 2020年5月28日 17:05
> > 收件人: user-zh <[email protected]>
> > 主题: Re: 疑问:flink sql
> 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> >
> > 嗯,是的。这个是blink planner特有的优化,可以支持多个sink的DAG图的优化。你也可以看下Flink
> > UI上的任务DAG图,比较明显的可以看到只有一个Source,后面接了两个Sink。
> >
> > [email protected] <[email protected]> 于2020年5月28日周四
> > 下午5:02写道:
> >
> > > Hi, Benchao:
> > > 谢谢回复,经过测试确实是这样,也就是同一个TableEnvironment下,如果有多条insert语句访问同一个表,该表的数据只消费一次?
> > >
> > >
> > >
> > >
> > > Best,
> > > Junbao Zhang
> > > ________________________________
> > > 发件人: Benchao Li <[email protected]>
> > > 发送时间: 2020年5月28日 15:59
> > > 收件人: user-zh <[email protected]>
> > > 主题: Re: 疑问:flink sql
> > 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> > >
> > >
> > >
> >
> 如果你的tEnv用的是TableEnvironment,而不是StreamTableEnvironment的话,两个insert会公用前面的source,也就是会只读取a表一次,然后分别给下游c和d用。
> > >
> > > [email protected] <[email protected]> 于2020年5月28日周四
> > > 下午3:14写道:
> > >
> > > > Hi,all:
> > > > 当前使用版本flink 1.10.0,使用blink planner,假如有如下代码:
> > > >
> > > > tEnv.createTemporaryView("b", tEnv.sqlQuery("select * from a"));
> > > > tEnv.sqlUpdate("insert into c select * from b where b.con1 = '1'");
> > > > tEnv.sqlUpdate("insert into d select * from b where b.con1 = '2'");
> > > >
> > > > 其中a是kafka表,connector属性为:
> > > > 'connector.properties.group.id' = 'testGroup',
> > > > 'connector.startup-mode' = 'group-offsets'
> > > >
> > > >            疑问是该应用运行时c、d消费a表,a表group 'testGroup'
> > > > offset的提交会不会受到影响,还是a表中同一条记录会流向2个不同的分支?
> > > >
> > >
> > >
> > > --
> > >
> > > Best,
> > > Benchao Li
> > >
> >
> >
> > --
> >
> > Best,
> > Benchao Li
> >
>
>
> --
>
> Best,
> Benchao Li
>

回复