Hi, binlog中相同的note_id要取最新的note_id来和维表join吗?如果是可以用duplication 写法[1]
Best, Leonard Xu [1]https://ci.apache.org/projects/flink/flink-docs-master/dev/table/sql/queries.html#deduplication <https://ci.apache.org/projects/flink/flink-docs-master/dev/table/sql/queries.html#deduplication> > 在 2020年5月9日,20:33,Benchao Li <libenc...@gmail.com> 写道: > > 那这样可能的确是不太好处理了,或者可以把维表改成: >> 维表(图片表):picture(pic_count count, note_id varchar) > > 纯SQL的方法我没有想到更好的办法。 > > 867127831 <867127...@qq.com> 于2020年5月9日周六 下午8:21写道: > >> 你好,我的主表流中note_id是会有重复的,比如我的主表是来自于binlog,这个note_id对应的记录中任何一个字段的变更 >> ,都会有一条对应于这个note_id的消息进入到主流中。 >> >> >> >> >> >> ------------------ 原始邮件 ------------------ >> 发件人: "Benchao Li"<libenc...@gmail.com>; >> 发送时间: 2020年5月9日(星期六) 晚上7:36 >> 收件人: "user-zh"<user-zh@flink.apache.org>; >> >> 主题: Re: flink lookup join 关联出多条记录的语义问题 >> >> >> >> Hi,维表关联出来多条数据是符合预期的,维表本来的语义就是可以join出0到多条都有可能,需要看你的数据。 >> >> 你的主表的流里面note_id会有重复么?没有重复的话,直接group by求count应该是可以的。 >> >> 867127831 <867127...@qq.com> 于2020年5月9日周六 下午7:10写道: >> >> > Hi,&nbsp; >> > >> > >> > 在使用flink做lookup join时,如果左表的一条记录关联出右表的多条记录,这个时候该怎么处理? 比如有如下两个表: >> > >> > >> > 主表(笔记表):note(note_id varchar) >> > 维表(图片表):picture(pic_id varchar, note_id varchar) >> > >> > >> > 一篇笔记会有多张图片,所以一条note记录对应了多条picture记录,现在要实时统计出每一个note有多少张picture, >> 我的sql是这样的: >> > >> > >> > select >> > &nbsp; N.note_id as note_id, >> > &nbsp; COUNT(P.pic_id) AS img_count&nbsp; >> > from note N >> > LEFT JOIN picture FOR SYSTEM_TIME AS OF N.proc_time AS P ON N.note_id >> = >> > P.note_id >> > group by N.note_id >> > >> > >> > >> > 如果不使用group by语法,有没有其它途径实现这个目的呢? >> >> >> >> -- >> >> Benchao Li >> School of Electronics Engineering and Computer Science, Peking University >> Tel:+86-15650713730 >> Email: libenc...@gmail.com; libenc...@pku.edu.cn > > > > -- > > Benchao Li > School of Electronics Engineering and Computer Science, Peking University > Tel:+86-15650713730 > Email: libenc...@gmail.com; libenc...@pku.edu.cn