Flink怎么实现多个实时流的关联。官方文档,很多教程 给的Demo都是两个实时流的关联。
1. 分析业务数据源,很多需要多个流的join的场景 是伪命题,用union即可。
2. union + group by ,在基于key的流中可以取代join。优势: 在join 发生数据倾斜或者反压,很难 checkpoint时,用union可以回避这个问题。
3. 例如三个流join,可以 tempstream = stream1.join(stream2) ResultStream = tempstream.join(stream3)。语法支持,看了下生成的图,不确定是不是想要的效果。
4. 将第三点的 join 换成 cogroup操作。这个是社区直播中,提问多流join后 得到的回复
5. 基于blink引擎,多表join 直接用sql表达出来。select * from table1 a left join table2 b on a.id = b.id left join table3 c on b.id = c.id 这个方案也是在社区直播,提问多流join后 得到的回复。