疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

junbaozhang
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个不同的分支?
junbaozhang
Reply | Threaded
Open this post in threaded view
|

Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

Benchao Li
如果你的tEnv用的是TableEnvironment,而不是StreamTableEnvironment的话,两个insert会公用前面的source,也就是会只读取a表一次,然后分别给下游c和d用。

[hidden email] <[hidden email]> 于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
Reply | Threaded
Open this post in threaded view
|

回复: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

junbaozhang
Hi, Benchao:
谢谢回复,经过测试确实是这样,也就是同一个TableEnvironment下,如果有多条insert语句访问同一个表,该表的数据只消费一次?




Best,
Junbao Zhang
________________________________
发件人: Benchao Li <[hidden email]>
发送时间: 2020年5月28日 15:59
收件人: user-zh <[hidden email]>
主题: Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

如果你的tEnv用的是TableEnvironment,而不是StreamTableEnvironment的话,两个insert会公用前面的source,也就是会只读取a表一次,然后分别给下游c和d用。

[hidden email] <[hidden email]> 于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
junbaozhang
Reply | Threaded
Open this post in threaded view
|

Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

Benchao Li
嗯,是的。这个是blink planner特有的优化,可以支持多个sink的DAG图的优化。你也可以看下Flink
UI上的任务DAG图,比较明显的可以看到只有一个Source,后面接了两个Sink。

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

> Hi, Benchao:
> 谢谢回复,经过测试确实是这样,也就是同一个TableEnvironment下,如果有多条insert语句访问同一个表,该表的数据只消费一次?
>
>
>
>
> Best,
> Junbao Zhang
> ________________________________
> 发件人: Benchao Li <[hidden email]>
> 发送时间: 2020年5月28日 15:59
> 收件人: user-zh <[hidden email]>
> 主题: Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
>
>
> 如果你的tEnv用的是TableEnvironment,而不是StreamTableEnvironment的话,两个insert会公用前面的source,也就是会只读取a表一次,然后分别给下游c和d用。
>
> [hidden email] <[hidden email]> 于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
Reply | Threaded
Open this post in threaded view
|

回复: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

junbaozhang
Hi, Benchao:
DAG图是指向了同一个问题,但是用了TableEnvironment后,发现所有的时间都差了13个小时,比如调用LOCALTIMESTAMP函数。另外问一个问题,使用TableEnvironment怎么设置checkpoint?




Best,
Junbao Zhang
________________________________
发件人: Benchao Li <[hidden email]>
发送时间: 2020年5月28日 17:05
收件人: user-zh <[hidden email]>
主题: Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

嗯,是的。这个是blink planner特有的优化,可以支持多个sink的DAG图的优化。你也可以看下Flink
UI上的任务DAG图,比较明显的可以看到只有一个Source,后面接了两个Sink。

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

> Hi, Benchao:
> 谢谢回复,经过测试确实是这样,也就是同一个TableEnvironment下,如果有多条insert语句访问同一个表,该表的数据只消费一次?
>
>
>
>
> Best,
> Junbao Zhang
> ________________________________
> 发件人: Benchao Li <[hidden email]>
> 发送时间: 2020年5月28日 15:59
> 收件人: user-zh <[hidden email]>
> 主题: Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
>
>
> 如果你的tEnv用的是TableEnvironment,而不是StreamTableEnvironment的话,两个insert会公用前面的source,也就是会只读取a表一次,然后分别给下游c和d用。
>
> [hidden email] <[hidden email]> 于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
junbaozhang
Reply | Threaded
Open this post in threaded view
|

Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

Benchao Li
Hi,

时间差了13个小时这个比较奇怪,我理解不应该出现这个问题的。你是说不用TableEnvironment就不会出现这个问题么?
第二个问题,TableEnvironment目前应该是没法设置checkpoint的,这个应该是只能在StreamExecutionEnvironment来配置吧。

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

> Hi, Benchao:
>
> DAG图是指向了同一个问题,但是用了TableEnvironment后,发现所有的时间都差了13个小时,比如调用LOCALTIMESTAMP函数。另外问一个问题,使用TableEnvironment怎么设置checkpoint?
>
>
>
>
> Best,
> Junbao Zhang
> ________________________________
> 发件人: Benchao Li <[hidden email]>
> 发送时间: 2020年5月28日 17:05
> 收件人: user-zh <[hidden email]>
> 主题: Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
>
> 嗯,是的。这个是blink planner特有的优化,可以支持多个sink的DAG图的优化。你也可以看下Flink
> UI上的任务DAG图,比较明显的可以看到只有一个Source,后面接了两个Sink。
>
> [hidden email] <[hidden email]> 于2020年5月28日周四
> 下午5:02写道:
>
> > Hi, Benchao:
> > 谢谢回复,经过测试确实是这样,也就是同一个TableEnvironment下,如果有多条insert语句访问同一个表,该表的数据只消费一次?
> >
> >
> >
> >
> > Best,
> > Junbao Zhang
> > ________________________________
> > 发件人: Benchao Li <[hidden email]>
> > 发送时间: 2020年5月28日 15:59
> > 收件人: user-zh <[hidden email]>
> > 主题: Re: 疑问:flink sql
> 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> >
> >
> >
> 如果你的tEnv用的是TableEnvironment,而不是StreamTableEnvironment的话,两个insert会公用前面的source,也就是会只读取a表一次,然后分别给下游c和d用。
> >
> > [hidden email] <[hidden email]> 于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
Reply | Threaded
Open this post in threaded view
|

Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

zhisheng
Hi,Benchao

http://zhisheng-blog.oss-cn-hangzhou.aliyuncs.com/2020-05-28-093940.jpg

这张图里面说的 TableEnvironment 不支持 UDAF/UDTF,那么如果想要用的话暂时有什么解决方法吗?社区大概什么时候会支持?

Thanks!

Benchao Li <[hidden email]> 于2020年5月28日周四 下午5:35写道:

> Hi,
>
> 时间差了13个小时这个比较奇怪,我理解不应该出现这个问题的。你是说不用TableEnvironment就不会出现这个问题么?
>
> 第二个问题,TableEnvironment目前应该是没法设置checkpoint的,这个应该是只能在StreamExecutionEnvironment来配置吧。
>
> [hidden email] <[hidden email]> 于2020年5月28日周四
> 下午5:27写道:
>
> > Hi, Benchao:
> >
> >
> DAG图是指向了同一个问题,但是用了TableEnvironment后,发现所有的时间都差了13个小时,比如调用LOCALTIMESTAMP函数。另外问一个问题,使用TableEnvironment怎么设置checkpoint?
> >
> >
> >
> >
> > Best,
> > Junbao Zhang
> > ________________________________
> > 发件人: Benchao Li <[hidden email]>
> > 发送时间: 2020年5月28日 17:05
> > 收件人: user-zh <[hidden email]>
> > 主题: Re: 疑问:flink sql
> 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> >
> > 嗯,是的。这个是blink planner特有的优化,可以支持多个sink的DAG图的优化。你也可以看下Flink
> > UI上的任务DAG图,比较明显的可以看到只有一个Source,后面接了两个Sink。
> >
> > [hidden email] <[hidden email]> 于2020年5月28日周四
> > 下午5:02写道:
> >
> > > Hi, Benchao:
> > > 谢谢回复,经过测试确实是这样,也就是同一个TableEnvironment下,如果有多条insert语句访问同一个表,该表的数据只消费一次?
> > >
> > >
> > >
> > >
> > > Best,
> > > Junbao Zhang
> > > ________________________________
> > > 发件人: Benchao Li <[hidden email]>
> > > 发送时间: 2020年5月28日 15:59
> > > 收件人: user-zh <[hidden email]>
> > > 主题: Re: 疑问:flink sql
> > 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> > >
> > >
> > >
> >
> 如果你的tEnv用的是TableEnvironment,而不是StreamTableEnvironment的话,两个insert会公用前面的source,也就是会只读取a表一次,然后分别给下游c和d用。
> > >
> > > [hidden email] <[hidden email]> 于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
>
Reply | Threaded
Open this post in threaded view
|

回复: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

junbaozhang
In reply to this post by Benchao Li
Hi,
StreamTableEnvironment类似于TableEnvironment的Dag优化有版本规划吗?未来TableEnvironment的dag优化和StreamTableEnvironment较丰富api会不会统一?

Best,
Junbao Zhang
________________________________
发件人: Benchao Li <[hidden email]>
发送时间: 2020年5月28日 17:35
收件人: user-zh <[hidden email]>
主题: Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

Hi,

时间差了13个小时这个比较奇怪,我理解不应该出现这个问题的。你是说不用TableEnvironment就不会出现这个问题么?
第二个问题,TableEnvironment目前应该是没法设置checkpoint的,这个应该是只能在StreamExecutionEnvironment来配置吧。

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

> Hi, Benchao:
>
> DAG图是指向了同一个问题,但是用了TableEnvironment后,发现所有的时间都差了13个小时,比如调用LOCALTIMESTAMP函数。另外问一个问题,使用TableEnvironment怎么设置checkpoint?
>
>
>
>
> Best,
> Junbao Zhang
> ________________________________
> 发件人: Benchao Li <[hidden email]>
> 发送时间: 2020年5月28日 17:05
> 收件人: user-zh <[hidden email]>
> 主题: Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
>
> 嗯,是的。这个是blink planner特有的优化,可以支持多个sink的DAG图的优化。你也可以看下Flink
> UI上的任务DAG图,比较明显的可以看到只有一个Source,后面接了两个Sink。
>
> [hidden email] <[hidden email]> 于2020年5月28日周四
> 下午5:02写道:
>
> > Hi, Benchao:
> > 谢谢回复,经过测试确实是这样,也就是同一个TableEnvironment下,如果有多条insert语句访问同一个表,该表的数据只消费一次?
> >
> >
> >
> >
> > Best,
> > Junbao Zhang
> > ________________________________
> > 发件人: Benchao Li <[hidden email]>
> > 发送时间: 2020年5月28日 15:59
> > 收件人: user-zh <[hidden email]>
> > 主题: Re: 疑问:flink sql
> 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> >
> >
> >
> 如果你的tEnv用的是TableEnvironment,而不是StreamTableEnvironment的话,两个insert会公用前面的source,也就是会只读取a表一次,然后分别给下游c和d用。
> >
> > [hidden email] <[hidden email]> 于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
junbaozhang
Reply | Threaded
Open this post in threaded view
|

Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

Benchao Li
Hi zhisheng&wind,

这块内容在FLIP-84[1]里面做了大量的重构和优化,而且大部分工作在1.11已经完成了,你们可以看下。

[1]
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=134745878

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

> Hi,
>
> StreamTableEnvironment类似于TableEnvironment的Dag优化有版本规划吗?未来TableEnvironment的dag优化和StreamTableEnvironment较丰富api会不会统一?
>
> Best,
> Junbao Zhang
> ________________________________
> 发件人: Benchao Li <[hidden email]>
> 发送时间: 2020年5月28日 17:35
> 收件人: user-zh <[hidden email]>
> 主题: Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
>
> Hi,
>
> 时间差了13个小时这个比较奇怪,我理解不应该出现这个问题的。你是说不用TableEnvironment就不会出现这个问题么?
>
> 第二个问题,TableEnvironment目前应该是没法设置checkpoint的,这个应该是只能在StreamExecutionEnvironment来配置吧。
>
> [hidden email] <[hidden email]> 于2020年5月28日周四
> 下午5:27写道:
>
> > Hi, Benchao:
> >
> >
> DAG图是指向了同一个问题,但是用了TableEnvironment后,发现所有的时间都差了13个小时,比如调用LOCALTIMESTAMP函数。另外问一个问题,使用TableEnvironment怎么设置checkpoint?
> >
> >
> >
> >
> > Best,
> > Junbao Zhang
> > ________________________________
> > 发件人: Benchao Li <[hidden email]>
> > 发送时间: 2020年5月28日 17:05
> > 收件人: user-zh <[hidden email]>
> > 主题: Re: 疑问:flink sql
> 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> >
> > 嗯,是的。这个是blink planner特有的优化,可以支持多个sink的DAG图的优化。你也可以看下Flink
> > UI上的任务DAG图,比较明显的可以看到只有一个Source,后面接了两个Sink。
> >
> > [hidden email] <[hidden email]> 于2020年5月28日周四
> > 下午5:02写道:
> >
> > > Hi, Benchao:
> > > 谢谢回复,经过测试确实是这样,也就是同一个TableEnvironment下,如果有多条insert语句访问同一个表,该表的数据只消费一次?
> > >
> > >
> > >
> > >
> > > Best,
> > > Junbao Zhang
> > > ________________________________
> > > 发件人: Benchao Li <[hidden email]>
> > > 发送时间: 2020年5月28日 15:59
> > > 收件人: user-zh <[hidden email]>
> > > 主题: Re: 疑问:flink sql
> > 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> > >
> > >
> > >
> >
> 如果你的tEnv用的是TableEnvironment,而不是StreamTableEnvironment的话,两个insert会公用前面的source,也就是会只读取a表一次,然后分别给下游c和d用。
> > >
> > > [hidden email] <[hidden email]> 于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
>


--

Best,
Benchao Li
Reply | Threaded
Open this post in threaded view
|

Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

LakeShen
Hi Benchao,

TableEnvironment 和 StreamTableEnvironment 具体有什么差异吗,我看StreamTableEnvironment
继承了 TableEnvironment。

这块我不是很了解,有什么文档介绍吗,感谢。

Best,
LakeShen

Benchao Li <[hidden email]> 于2020年5月28日周四 下午5:52写道:

> Hi zhisheng&wind,
>
> 这块内容在FLIP-84[1]里面做了大量的重构和优化,而且大部分工作在1.11已经完成了,你们可以看下。
>
> [1]
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=134745878
>
> [hidden email] <[hidden email]> 于2020年5月28日周四
> 下午5:45写道:
>
> > Hi,
> >
> >
> StreamTableEnvironment类似于TableEnvironment的Dag优化有版本规划吗?未来TableEnvironment的dag优化和StreamTableEnvironment较丰富api会不会统一?
> >
> > Best,
> > Junbao Zhang
> > ________________________________
> > 发件人: Benchao Li <[hidden email]>
> > 发送时间: 2020年5月28日 17:35
> > 收件人: user-zh <[hidden email]>
> > 主题: Re: 疑问:flink sql
> 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> >
> > Hi,
> >
> > 时间差了13个小时这个比较奇怪,我理解不应该出现这个问题的。你是说不用TableEnvironment就不会出现这个问题么?
> >
> >
> 第二个问题,TableEnvironment目前应该是没法设置checkpoint的,这个应该是只能在StreamExecutionEnvironment来配置吧。
> >
> > [hidden email] <[hidden email]> 于2020年5月28日周四
> > 下午5:27写道:
> >
> > > Hi, Benchao:
> > >
> > >
> >
> DAG图是指向了同一个问题,但是用了TableEnvironment后,发现所有的时间都差了13个小时,比如调用LOCALTIMESTAMP函数。另外问一个问题,使用TableEnvironment怎么设置checkpoint?
> > >
> > >
> > >
> > >
> > > Best,
> > > Junbao Zhang
> > > ________________________________
> > > 发件人: Benchao Li <[hidden email]>
> > > 发送时间: 2020年5月28日 17:05
> > > 收件人: user-zh <[hidden email]>
> > > 主题: Re: 疑问:flink sql
> > 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> > >
> > > 嗯,是的。这个是blink planner特有的优化,可以支持多个sink的DAG图的优化。你也可以看下Flink
> > > UI上的任务DAG图,比较明显的可以看到只有一个Source,后面接了两个Sink。
> > >
> > > [hidden email] <[hidden email]> 于2020年5月28日周四
> > > 下午5:02写道:
> > >
> > > > Hi, Benchao:
> > > >
> 谢谢回复,经过测试确实是这样,也就是同一个TableEnvironment下,如果有多条insert语句访问同一个表,该表的数据只消费一次?
> > > >
> > > >
> > > >
> > > >
> > > > Best,
> > > > Junbao Zhang
> > > > ________________________________
> > > > 发件人: Benchao Li <[hidden email]>
> > > > 发送时间: 2020年5月28日 15:59
> > > > 收件人: user-zh <[hidden email]>
> > > > 主题: Re: 疑问:flink sql
> > > 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> > > >
> > > >
> > > >
> > >
> >
> 如果你的tEnv用的是TableEnvironment,而不是StreamTableEnvironment的话,两个insert会公用前面的source,也就是会只读取a表一次,然后分别给下游c和d用。
> > > >
> > > > [hidden email] <[hidden email]> 于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
> >
>
>
> --
>
> Best,
> Benchao Li
>
Reply | Threaded
Open this post in threaded view
|

Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

Benchao Li
我的理解是这样的。
TableEnvironment的api主要是跟table相关的概念,这里面并没有流(DataStream)和批(DataSet)的概念。
StreamTableEnvironment是继承了TableEnvironment,但是多了跟DataStream交互的接口,比如把DataStream转成Table,以及反过来转换等。
BatchTableEnvironment也是同理,添加了跟DataSet打交道的一些接口。

LakeShen <[hidden email]> 于2020年5月29日周五 上午10:16写道:

> Hi Benchao,
>
> TableEnvironment 和 StreamTableEnvironment 具体有什么差异吗,我看StreamTableEnvironment
> 继承了 TableEnvironment。
>
> 这块我不是很了解,有什么文档介绍吗,感谢。
>
> Best,
> LakeShen
>
> Benchao Li <[hidden email]> 于2020年5月28日周四 下午5:52写道:
>
> > Hi zhisheng&wind,
> >
> > 这块内容在FLIP-84[1]里面做了大量的重构和优化,而且大部分工作在1.11已经完成了,你们可以看下。
> >
> > [1]
> >
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=134745878
> >
> > [hidden email] <[hidden email]> 于2020年5月28日周四
> > 下午5:45写道:
> >
> > > Hi,
> > >
> > >
> >
> StreamTableEnvironment类似于TableEnvironment的Dag优化有版本规划吗?未来TableEnvironment的dag优化和StreamTableEnvironment较丰富api会不会统一?
> > >
> > > Best,
> > > Junbao Zhang
> > > ________________________________
> > > 发件人: Benchao Li <[hidden email]>
> > > 发送时间: 2020年5月28日 17:35
> > > 收件人: user-zh <[hidden email]>
> > > 主题: Re: 疑问:flink sql
> > 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> > >
> > > Hi,
> > >
> > > 时间差了13个小时这个比较奇怪,我理解不应该出现这个问题的。你是说不用TableEnvironment就不会出现这个问题么?
> > >
> > >
> >
> 第二个问题,TableEnvironment目前应该是没法设置checkpoint的,这个应该是只能在StreamExecutionEnvironment来配置吧。
> > >
> > > [hidden email] <[hidden email]> 于2020年5月28日周四
> > > 下午5:27写道:
> > >
> > > > Hi, Benchao:
> > > >
> > > >
> > >
> >
> DAG图是指向了同一个问题,但是用了TableEnvironment后,发现所有的时间都差了13个小时,比如调用LOCALTIMESTAMP函数。另外问一个问题,使用TableEnvironment怎么设置checkpoint?
> > > >
> > > >
> > > >
> > > >
> > > > Best,
> > > > Junbao Zhang
> > > > ________________________________
> > > > 发件人: Benchao Li <[hidden email]>
> > > > 发送时间: 2020年5月28日 17:05
> > > > 收件人: user-zh <[hidden email]>
> > > > 主题: Re: 疑问:flink sql
> > > 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> > > >
> > > > 嗯,是的。这个是blink planner特有的优化,可以支持多个sink的DAG图的优化。你也可以看下Flink
> > > > UI上的任务DAG图,比较明显的可以看到只有一个Source,后面接了两个Sink。
> > > >
> > > > [hidden email] <[hidden email]> 于2020年5月28日周四
> > > > 下午5:02写道:
> > > >
> > > > > Hi, Benchao:
> > > > >
> > 谢谢回复,经过测试确实是这样,也就是同一个TableEnvironment下,如果有多条insert语句访问同一个表,该表的数据只消费一次?
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Best,
> > > > > Junbao Zhang
> > > > > ________________________________
> > > > > 发件人: Benchao Li <[hidden email]>
> > > > > 发送时间: 2020年5月28日 15:59
> > > > > 收件人: user-zh <[hidden email]>
> > > > > 主题: Re: 疑问:flink sql
> > > > 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> > > > >
> > > > >
> > > > >
> > > >
> > >
> >
> 如果你的tEnv用的是TableEnvironment,而不是StreamTableEnvironment的话,两个insert会公用前面的source,也就是会只读取a表一次,然后分别给下游c和d用。
> > > > >
> > > > > [hidden email] <[hidden email]> 于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
> > >
> >
> >
> > --
> >
> > Best,
> > Benchao Li
> >
>


--

Best,
Benchao Li
Reply | Threaded
Open this post in threaded view
|

Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交

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

Best,
Godfrey

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

> Hi,
>
> StreamTableEnvironment类似于TableEnvironment的Dag优化有版本规划吗?未来TableEnvironment的dag优化和StreamTableEnvironment较丰富api会不会统一?
>
> Best,
> Junbao Zhang
> ________________________________
> 发件人: Benchao Li <[hidden email]>
> 发送时间: 2020年5月28日 17:35
> 收件人: user-zh <[hidden email]>
> 主题: Re: 疑问:flink sql 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
>
> Hi,
>
> 时间差了13个小时这个比较奇怪,我理解不应该出现这个问题的。你是说不用TableEnvironment就不会出现这个问题么?
>
> 第二个问题,TableEnvironment目前应该是没法设置checkpoint的,这个应该是只能在StreamExecutionEnvironment来配置吧。
>
> [hidden email] <[hidden email]> 于2020年5月28日周四
> 下午5:27写道:
>
> > Hi, Benchao:
> >
> >
> DAG图是指向了同一个问题,但是用了TableEnvironment后,发现所有的时间都差了13个小时,比如调用LOCALTIMESTAMP函数。另外问一个问题,使用TableEnvironment怎么设置checkpoint?
> >
> >
> >
> >
> > Best,
> > Junbao Zhang
> > ________________________________
> > 发件人: Benchao Li <[hidden email]>
> > 发送时间: 2020年5月28日 17:05
> > 收件人: user-zh <[hidden email]>
> > 主题: Re: 疑问:flink sql
> 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> >
> > 嗯,是的。这个是blink planner特有的优化,可以支持多个sink的DAG图的优化。你也可以看下Flink
> > UI上的任务DAG图,比较明显的可以看到只有一个Source,后面接了两个Sink。
> >
> > [hidden email] <[hidden email]> 于2020年5月28日周四
> > 下午5:02写道:
> >
> > > Hi, Benchao:
> > > 谢谢回复,经过测试确实是这样,也就是同一个TableEnvironment下,如果有多条insert语句访问同一个表,该表的数据只消费一次?
> > >
> > >
> > >
> > >
> > > Best,
> > > Junbao Zhang
> > > ________________________________
> > > 发件人: Benchao Li <[hidden email]>
> > > 发送时间: 2020年5月28日 15:59
> > > 收件人: user-zh <[hidden email]>
> > > 主题: Re: 疑问:flink sql
> > 当一个env下多个insert语句共享一个view时,是否会影响view中kafka源表的offset提交
> > >
> > >
> > >
> >
> 如果你的tEnv用的是TableEnvironment,而不是StreamTableEnvironment的话,两个insert会公用前面的source,也就是会只读取a表一次,然后分别给下游c和d用。
> > >
> > > [hidden email] <[hidden email]> 于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
>