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 Suhan <ma...@foxmail.com> on 2021/02/25 06:40:29 UTC

回复: Flink 维表延迟join

我们生产环境也遇到了同样的问题,除了benchao说的用算子来做延迟join外。可以使用rocketmq的延迟发送功能来存放维度拼接失败的消息。然后flink再同时消费kafka + rocket mq的数据。
我建议在生产环境使用,因为有的时候flink侧很难判断到底哪种情况是拼接失败,是异常呢,还是空值呢,还是返回结果不符合要求。我觉得在用户层面做会比较灵活。单独的容灾队列对于下游的处理也提供了更多的方式。
&nbsp;




------------------&nbsp;原始邮件&nbsp;------------------
发件人:                                                                                                                        "user-zh"                                                                                    <shenleifighting@gmail.com&gt;;
发送时间:&nbsp;2021年2月25日(星期四) 中午12:00
收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;

主题:&nbsp;Re: Flink 维表延迟join



Hi,

&nbsp;&nbsp;&nbsp; Benchao,这种发送到另外一个 topic
,再来关联,虽然感觉可以减缓这种没有关联到维表数据对于下游业务的影响,不过还是很难控制到具体的延缓时间,我们现在也考虑怎么优雅的实现。

Benchao Li <libenchao@apache.org&gt; 于2020年8月27日周四 上午10:08写道:

&gt; Hi,
&gt;
&gt; 我们也遇到过类似场景,我们的做法是修改了一下维表Join算子,让它来支持延迟join。
&gt;
&gt; 其实还有个思路,你可以把这种没有join到的数据发送到另外一个topic,然后再消费回来继续join。
&gt;
&gt; 郑斌斌 <zhengbinbin@heint.cn&gt; 于2020年8月27日周四 上午9:23写道:
&gt;
&gt; &gt; 小伙伴们:
&gt; &gt;
&gt; &gt;
&gt; 大家好,请教一个问题,流表和维表在JOIN时,如果流表的数据没在维表中时,能否进行延迟join,比如,每10分钟进行match一下,连续match6次都没有match上的话,丢弃该数据。
&gt; &gt; 这个场景怎么通过flink SQL或UDF实现,目前是通过timer来实现的,感觉有些麻烦。
&gt; &gt;
&gt; &gt; Thanks&amp;Regards
&gt;
&gt;
&gt;
&gt; --
&gt;
&gt; Best,
&gt; Benchao Li
&gt;

Re:回复: Flink 维表延迟join

Posted by "casel.chen" <ca...@126.com>.
双流interval join是否可行呢?

















在 2021-06-07 16:35:10,"Jason Lee" <ja...@163.com> 写道:
>
>
>我么生产环境同样遇到这种问题,因为上有流数据到了,但是维表数据未更新导致丢失部分数据,请问大家现在有好的解决方案去解决Flink SQL 维表延迟Join的问题了吗?
>
>
>有解决方案的小伙伴能分享下嘛?
>| |
>JasonLee
>|
>|
>jasonlee1781@163.com
>|
>签名由网易邮箱大师定制
>
>
>在2021年02月25日 14:40,Suhan<ma...@foxmail.com> 写道:
>我们生产环境也遇到了同样的问题,除了benchao说的用算子来做延迟join外。可以使用rocketmq的延迟发送功能来存放维度拼接失败的消息。然后flink再同时消费kafka + rocket mq的数据。
>我建议在生产环境使用,因为有的时候flink侧很难判断到底哪种情况是拼接失败,是异常呢,还是空值呢,还是返回结果不符合要求。我觉得在用户层面做会比较灵活。单独的容灾队列对于下游的处理也提供了更多的方式。
>&nbsp;
>
>
>
>
>------------------&nbsp;原始邮件&nbsp;------------------
>发件人:                                                                                                                        "user-zh"                                                                                    <shenleifighting@gmail.com&gt;;
>发送时间:&nbsp;2021年2月25日(星期四) 中午12:00
>收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;
>
>主题:&nbsp;Re: Flink 维表延迟join
>
>
>
>Hi,
>
>&nbsp;&nbsp;&nbsp; Benchao,这种发送到另外一个 topic
>,再来关联,虽然感觉可以减缓这种没有关联到维表数据对于下游业务的影响,不过还是很难控制到具体的延缓时间,我们现在也考虑怎么优雅的实现。
>
>Benchao Li <libenchao@apache.org&gt; 于2020年8月27日周四 上午10:08写道:
>
>&gt; Hi,
>&gt;
>&gt; 我们也遇到过类似场景,我们的做法是修改了一下维表Join算子,让它来支持延迟join。
>&gt;
>&gt; 其实还有个思路,你可以把这种没有join到的数据发送到另外一个topic,然后再消费回来继续join。
>&gt;
>&gt; 郑斌斌 <zhengbinbin@heint.cn&gt; 于2020年8月27日周四 上午9:23写道:
>&gt;
>&gt; &gt; 小伙伴们:
>&gt; &gt;
>&gt; &gt;
>&gt; 大家好,请教一个问题,流表和维表在JOIN时,如果流表的数据没在维表中时,能否进行延迟join,比如,每10分钟进行match一下,连续match6次都没有match上的话,丢弃该数据。
>&gt; &gt; 这个场景怎么通过flink SQL或UDF实现,目前是通过timer来实现的,感觉有些麻烦。
>&gt; &gt;
>&gt; &gt; Thanks&amp;Regards
>&gt;
>&gt;
>&gt;
>&gt; --
>&gt;
>&gt; Best,
>&gt; Benchao Li
>&gt;

Re:回复: Flink 维表延迟join

Posted by Michael Ran <gr...@163.com>.
双流join,或者局部更新能解决
在 2021-06-07 16:35:10,"Jason Lee" <ja...@163.com> 写道:
>
>
>我么生产环境同样遇到这种问题,因为上有流数据到了,但是维表数据未更新导致丢失部分数据,请问大家现在有好的解决方案去解决Flink SQL 维表延迟Join的问题了吗?
>
>
>有解决方案的小伙伴能分享下嘛?
>| |
>JasonLee
>|
>|
>jasonlee1781@163.com
>|
>签名由网易邮箱大师定制
>
>
>在2021年02月25日 14:40,Suhan<ma...@foxmail.com> 写道:
>我们生产环境也遇到了同样的问题,除了benchao说的用算子来做延迟join外。可以使用rocketmq的延迟发送功能来存放维度拼接失败的消息。然后flink再同时消费kafka + rocket mq的数据。
>我建议在生产环境使用,因为有的时候flink侧很难判断到底哪种情况是拼接失败,是异常呢,还是空值呢,还是返回结果不符合要求。我觉得在用户层面做会比较灵活。单独的容灾队列对于下游的处理也提供了更多的方式。
>&nbsp;
>
>
>
>
>------------------&nbsp;原始邮件&nbsp;------------------
>发件人:                                                                                                                        "user-zh"                                                                                    <shenleifighting@gmail.com&gt;;
>发送时间:&nbsp;2021年2月25日(星期四) 中午12:00
>收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;
>
>主题:&nbsp;Re: Flink 维表延迟join
>
>
>
>Hi,
>
>&nbsp;&nbsp;&nbsp; Benchao,这种发送到另外一个 topic
>,再来关联,虽然感觉可以减缓这种没有关联到维表数据对于下游业务的影响,不过还是很难控制到具体的延缓时间,我们现在也考虑怎么优雅的实现。
>
>Benchao Li <libenchao@apache.org&gt; 于2020年8月27日周四 上午10:08写道:
>
>&gt; Hi,
>&gt;
>&gt; 我们也遇到过类似场景,我们的做法是修改了一下维表Join算子,让它来支持延迟join。
>&gt;
>&gt; 其实还有个思路,你可以把这种没有join到的数据发送到另外一个topic,然后再消费回来继续join。
>&gt;
>&gt; 郑斌斌 <zhengbinbin@heint.cn&gt; 于2020年8月27日周四 上午9:23写道:
>&gt;
>&gt; &gt; 小伙伴们:
>&gt; &gt;
>&gt; &gt;
>&gt; 大家好,请教一个问题,流表和维表在JOIN时,如果流表的数据没在维表中时,能否进行延迟join,比如,每10分钟进行match一下,连续match6次都没有match上的话,丢弃该数据。
>&gt; &gt; 这个场景怎么通过flink SQL或UDF实现,目前是通过timer来实现的,感觉有些麻烦。
>&gt; &gt;
>&gt; &gt; Thanks&amp;Regards
>&gt;
>&gt;
>&gt;
>&gt; --
>&gt;
>&gt; Best,
>&gt; Benchao Li
>&gt;

回复: Flink 维表延迟join

Posted by Jason Lee <ja...@163.com>.

我么生产环境同样遇到这种问题,因为上有流数据到了,但是维表数据未更新导致丢失部分数据,请问大家现在有好的解决方案去解决Flink SQL 维表延迟Join的问题了吗?


有解决方案的小伙伴能分享下嘛?
| |
JasonLee
|
|
jasonlee1781@163.com
|
签名由网易邮箱大师定制


在2021年02月25日 14:40,Suhan<ma...@foxmail.com> 写道:
我们生产环境也遇到了同样的问题,除了benchao说的用算子来做延迟join外。可以使用rocketmq的延迟发送功能来存放维度拼接失败的消息。然后flink再同时消费kafka + rocket mq的数据。
我建议在生产环境使用,因为有的时候flink侧很难判断到底哪种情况是拼接失败,是异常呢,还是空值呢,还是返回结果不符合要求。我觉得在用户层面做会比较灵活。单独的容灾队列对于下游的处理也提供了更多的方式。
&nbsp;




------------------&nbsp;原始邮件&nbsp;------------------
发件人:                                                                                                                        "user-zh"                                                                                    <shenleifighting@gmail.com&gt;;
发送时间:&nbsp;2021年2月25日(星期四) 中午12:00
收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;

主题:&nbsp;Re: Flink 维表延迟join



Hi,

&nbsp;&nbsp;&nbsp; Benchao,这种发送到另外一个 topic
,再来关联,虽然感觉可以减缓这种没有关联到维表数据对于下游业务的影响,不过还是很难控制到具体的延缓时间,我们现在也考虑怎么优雅的实现。

Benchao Li <libenchao@apache.org&gt; 于2020年8月27日周四 上午10:08写道:

&gt; Hi,
&gt;
&gt; 我们也遇到过类似场景,我们的做法是修改了一下维表Join算子,让它来支持延迟join。
&gt;
&gt; 其实还有个思路,你可以把这种没有join到的数据发送到另外一个topic,然后再消费回来继续join。
&gt;
&gt; 郑斌斌 <zhengbinbin@heint.cn&gt; 于2020年8月27日周四 上午9:23写道:
&gt;
&gt; &gt; 小伙伴们:
&gt; &gt;
&gt; &gt;
&gt; 大家好,请教一个问题,流表和维表在JOIN时,如果流表的数据没在维表中时,能否进行延迟join,比如,每10分钟进行match一下,连续match6次都没有match上的话,丢弃该数据。
&gt; &gt; 这个场景怎么通过flink SQL或UDF实现,目前是通过timer来实现的,感觉有些麻烦。
&gt; &gt;
&gt; &gt; Thanks&amp;Regards
&gt;
&gt;
&gt;
&gt; --
&gt;
&gt; Best,
&gt; Benchao Li
&gt;