Hi, casel. 这种现在应该是没支持,好像也没有issue说要支持,可以去jira里建一个feature看看大家的反响。
目前同样可以实现的方式: 1. 三次look up join + union + udaf。 2. udf,row by row自己查,搞一个缓存提高性能。 3. 将社区的connector魔改一下,重新打包使用。 4. ...... -- Best! Xuyang 在 2023-11-22 20:44:47,"casel.chen" <casel_c...@126.com> 写道: >有一张维表 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" <xyzhong...@163.com> 写道: >>Hi, casel. >>可以对“批量lookup join”再描述详细一点么?看上去是符合一个lookup join里直接带上k1=v1 and k2=v2 and >>k3=v3的用法的。 >> >> >> >> >>-- >> >> Best! >> Xuyang >> >> >> >> >>在 2023-11-22 11:55:11,"casel.chen" <casel_c...@126.com> 写道: >>>一行数据带了三个待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社区打算原生支持么?