Re: flinksql 维表join

2022-10-27 文章 Lincoln Lee
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就报了相同的条件要
>


flinksql 维表join

2022-10-26 文章 Fei Han
大家好!请教几个问题
 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就报了相同的条件要


flinksql维表join

2020-12-04 文章 leiyanrui
flinksql维表join之后不能做些过滤这样的操作吗



--
Sent from: http://apache-flink.147419.n8.nabble.com/