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
|
如果你的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 |
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
|
嗯,是的。这个是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 |
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
|
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 |
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 > |
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
|
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 |
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 > |
我的理解是这样的。
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 |
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 > |
Free forum by Nabble | Edit this page |