有一张维表 user,包含id和name字段 id | name ----------------- 1 | zhangsan 2 | lisi 3 | wangwu
现在实时来了一条交易数据 id | creator_id | approver_id | deployer_id --------------------------------------------------------- 1 | 1 | 2 | 3 希望lookup维表user返回各用户名称 id | creator_name | approver_name | deployer_name ------------------------------------------------------------------------ 1 | zhangsan | lisi |. wangwu 以上场景用flink sql要如何实现? 在 2023-11-22 12:37:10,"Xuyang" <[email protected]> 写道: >Hi, casel. >可以对“批量lookup join”再描述详细一点么?看上去是符合一个lookup join里直接带上k1=v1 and k2=v2 and >k3=v3的用法的。 > > > > >-- > > Best! > Xuyang > > > > >在 2023-11-22 11:55:11,"casel.chen" <[email protected]> 写道: >>一行数据带了三个待lookup查询的key,分别是key1,key2和key3 >> >> >>id key1 key2 key3 >>想实现批量lookup查询返回一行数据 id value1 value2 value3 >> >> >>查了下目前包括jdbc connector在内的lookup都不支持批量查询,所以只能先将多列转成多行分别lookup再将多行转成多列,如下所示 >>id key1 key2 key3 >>先将多列转成多行 >>id key1 >>id key2 >>id key3 >> >>分别进行lookup join后得到 >>id value1 >>id value2 >>id value3 >>最后多行转多列返回一行数据 >> >>id value1 value2 value3 >> >> >>上述方案目前我能想到的是通过udtf + udaf来实现,但缺点是不具备通用性。Flink社区打算原生支持么?
