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侧很难判断到底哪种情况是拼接失败,是异常呢,还是空值呢,还是返回结果不符合要求。我觉得在用户层面做会比较灵活。单独的容灾队列对于下游的处理也提供了更多的方式。
------------------ 原始邮件 ------------------
发件人: "user-zh" <shenleifighting@gmail.com>;
发送时间: 2021年2月25日(星期四) 中午12:00
收件人: "user-zh"<user-zh@flink.apache.org>;
主题: Re: Flink 维表延迟join
Hi,
Benchao,这种发送到另外一个 topic
,再来关联,虽然感觉可以减缓这种没有关联到维表数据对于下游业务的影响,不过还是很难控制到具体的延缓时间,我们现在也考虑怎么优雅的实现。
Benchao Li <libenchao@apache.org> 于2020年8月27日周四 上午10:08写道:
> Hi,
>
> 我们也遇到过类似场景,我们的做法是修改了一下维表Join算子,让它来支持延迟join。
>
> 其实还有个思路,你可以把这种没有join到的数据发送到另外一个topic,然后再消费回来继续join。
>
> 郑斌斌 <zhengbinbin@heint.cn> 于2020年8月27日周四 上午9:23写道:
>
> > 小伙伴们:
> >
> >
> 大家好,请教一个问题,流表和维表在JOIN时,如果流表的数据没在维表中时,能否进行延迟join,比如,每10分钟进行match一下,连续match6次都没有match上的话,丢弃该数据。
> > 这个场景怎么通过flink SQL或UDF实现,目前是通过timer来实现的,感觉有些麻烦。
> >
> > Thanks&Regards
>
>
>
> --
>
> Best,
> Benchao Li
>
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侧很难判断到底哪种情况是拼接失败,是异常呢,还是空值呢,还是返回结果不符合要求。我觉得在用户层面做会比较灵活。单独的容灾队列对于下游的处理也提供了更多的方式。
>
>
>
>
>
>------------------ 原始邮件 ------------------
>发件人: "user-zh" <shenleifighting@gmail.com>;
>发送时间: 2021年2月25日(星期四) 中午12:00
>收件人: "user-zh"<user-zh@flink.apache.org>;
>
>主题: Re: Flink 维表延迟join
>
>
>
>Hi,
>
> Benchao,这种发送到另外一个 topic
>,再来关联,虽然感觉可以减缓这种没有关联到维表数据对于下游业务的影响,不过还是很难控制到具体的延缓时间,我们现在也考虑怎么优雅的实现。
>
>Benchao Li <libenchao@apache.org> 于2020年8月27日周四 上午10:08写道:
>
>> Hi,
>>
>> 我们也遇到过类似场景,我们的做法是修改了一下维表Join算子,让它来支持延迟join。
>>
>> 其实还有个思路,你可以把这种没有join到的数据发送到另外一个topic,然后再消费回来继续join。
>>
>> 郑斌斌 <zhengbinbin@heint.cn> 于2020年8月27日周四 上午9:23写道:
>>
>> > 小伙伴们:
>> >
>> >
>> 大家好,请教一个问题,流表和维表在JOIN时,如果流表的数据没在维表中时,能否进行延迟join,比如,每10分钟进行match一下,连续match6次都没有match上的话,丢弃该数据。
>> > 这个场景怎么通过flink SQL或UDF实现,目前是通过timer来实现的,感觉有些麻烦。
>> >
>> > Thanks&Regards
>>
>>
>>
>> --
>>
>> Best,
>> Benchao Li
>>
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侧很难判断到底哪种情况是拼接失败,是异常呢,还是空值呢,还是返回结果不符合要求。我觉得在用户层面做会比较灵活。单独的容灾队列对于下游的处理也提供了更多的方式。
>
>
>
>
>
>------------------ 原始邮件 ------------------
>发件人: "user-zh" <shenleifighting@gmail.com>;
>发送时间: 2021年2月25日(星期四) 中午12:00
>收件人: "user-zh"<user-zh@flink.apache.org>;
>
>主题: Re: Flink 维表延迟join
>
>
>
>Hi,
>
> Benchao,这种发送到另外一个 topic
>,再来关联,虽然感觉可以减缓这种没有关联到维表数据对于下游业务的影响,不过还是很难控制到具体的延缓时间,我们现在也考虑怎么优雅的实现。
>
>Benchao Li <libenchao@apache.org> 于2020年8月27日周四 上午10:08写道:
>
>> Hi,
>>
>> 我们也遇到过类似场景,我们的做法是修改了一下维表Join算子,让它来支持延迟join。
>>
>> 其实还有个思路,你可以把这种没有join到的数据发送到另外一个topic,然后再消费回来继续join。
>>
>> 郑斌斌 <zhengbinbin@heint.cn> 于2020年8月27日周四 上午9:23写道:
>>
>> > 小伙伴们:
>> >
>> >
>> 大家好,请教一个问题,流表和维表在JOIN时,如果流表的数据没在维表中时,能否进行延迟join,比如,每10分钟进行match一下,连续match6次都没有match上的话,丢弃该数据。
>> > 这个场景怎么通过flink SQL或UDF实现,目前是通过timer来实现的,感觉有些麻烦。
>> >
>> > Thanks&Regards
>>
>>
>>
>> --
>>
>> Best,
>> Benchao Li
>>
回复: 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侧很难判断到底哪种情况是拼接失败,是异常呢,还是空值呢,还是返回结果不符合要求。我觉得在用户层面做会比较灵活。单独的容灾队列对于下游的处理也提供了更多的方式。
------------------ 原始邮件 ------------------
发件人: "user-zh" <shenleifighting@gmail.com>;
发送时间: 2021年2月25日(星期四) 中午12:00
收件人: "user-zh"<user-zh@flink.apache.org>;
主题: Re: Flink 维表延迟join
Hi,
Benchao,这种发送到另外一个 topic
,再来关联,虽然感觉可以减缓这种没有关联到维表数据对于下游业务的影响,不过还是很难控制到具体的延缓时间,我们现在也考虑怎么优雅的实现。
Benchao Li <libenchao@apache.org> 于2020年8月27日周四 上午10:08写道:
> Hi,
>
> 我们也遇到过类似场景,我们的做法是修改了一下维表Join算子,让它来支持延迟join。
>
> 其实还有个思路,你可以把这种没有join到的数据发送到另外一个topic,然后再消费回来继续join。
>
> 郑斌斌 <zhengbinbin@heint.cn> 于2020年8月27日周四 上午9:23写道:
>
> > 小伙伴们:
> >
> >
> 大家好,请教一个问题,流表和维表在JOIN时,如果流表的数据没在维表中时,能否进行延迟join,比如,每10分钟进行match一下,连续match6次都没有match上的话,丢弃该数据。
> > 这个场景怎么通过flink SQL或UDF实现,目前是通过timer来实现的,感觉有些麻烦。
> >
> > Thanks&Regards
>
>
>
> --
>
> Best,
> Benchao Li
>