Hi, Flink 的 lookup join 目前不支持对维表进行预处理, 并且需要有对维表原始字段的等值连接条件(因为需要通过确定的字段值去查找) 示例中 t4 字段不做计算应该是 work 的, 比如 udf(t1.telephone_no) = t4.de_mobile
Best, Lincoln Lee Fei Han <hanfeizi0...@aliyun.com.invalid> 于2022年10月27日周四 12:12写道: > 大家好!请教几个问题 > 1. FlinkSQL维表join的时候,能不能把维表先用flinksql 当做一个临时表,然后在用临时表做维表join > 例如:临时表 > WITH employee_tmp AS( > select > userid as userid, > name as name, > mobile as de_mobile > from ygp_dwd_catalog.flink_dwd.employee > ) > select > * > from ( select > * > from ygp_dwd_catalog.flink_dwd.xxx ) t1 > left join employee_tmp FOR SYSTEM_TIME AS OF ..... > 以上这样写对不对,测试的时候发现是null。 > 2.维表FOR SYSTEM_TIME AS OF 后面关联条件能否如下方式写: > FOR SYSTEM_TIME AS OF t1.proc_time as t4 on udf(t1.telephone_no) = > udf(t4.de_mobile) > 上面写法报错如下: > Temporal table join requires an equality condition on fields of table。 > 但问题的关键是UDF在hive和presto都可以跑起来的。FlinkSQL就报了相同的条件要 >