目前在准备搞实时数仓:碰到一个问题:
比如统计一个所有员工所有的业绩的报表,这个报表需要关联1个员工维表,4个业绩相关流表; 
如果是正常SQL的话是这样join :


维表 left join  流表  1
left join 流表 2
left join 流表 3
left join 流表 4


因为flink-sql 的temporal join 不支持 维表在左边 left join 流表,


故只能 流表在左,维表在右来join  
即:select  * from  table a  left join dim_XXX  FOR SYSTEM_TIME AS OF a.proctime 
as c on a.memberId=c.rowkey 


但是这个存在的问题是那些今天没有业绩的员工就没有统计数据,如果只是join一张流表,那么我可以把没有数据的员工在出报表时补空数据,现在的情况是要join4 
张流表,那么必须得四张流表都有数据的员工才会有数据,这个就是问题了:最终的报表只有4个流表都有数据的员工。


上次问过一次,上次回答的是双流join,双流join的问题也是一样,只有两者都有数据才会得到最终结果,更何况是员工维表,基本上变化很少。因为有点找不到上次那个邮件了,所以再问一下,这种场景(维表在左
 left join 流表)有没有比较好的解决方案







回复