Hi,
Flink 的 lookup join 目前不支持对维表进行预处理, 并且需要有对维表原始字段的等值连接条件(因为需要通过确定的字段值去查找)
示例中 t4 字段不做计算应该是 work 的, 比如 udf(t1.telephone_no) = t4.de_mobile
Best,
Lincoln Lee
Fei Han 于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就报了相同的条件要
>