Hi houyin, Jark, Sorry I missed Jark's response before. > We should support lookup HBase on multiple fields (by Get#setFilter). Feel free to open issues. I agree with Jark. It's better to support multiple keys for HBase. > How can I solve this problem ? Before Hbase supports multiple keys, we could use the solution mentioned in my last email as a walk around way. Because only constant value and field input ref only be parsed as LookupKey, you could add some operation on t2.city_code, for example update `AND t1.city_code = t2.city_code` to `AND UPPER(t1.city_code) = UPPER(t2.city_code) ` or `AND CAST(t1.city_code AS VARCHAR) = CAST(t2.city_code AS VARCHAR) `
Best regards, JING ZHANG JING ZHANG <beyond1...@gmail.com> 于2021年6月28日周一 下午2:43写道: > Hi houyin, > > It maybe because the conditions in where clause, being pushed down as > a predicate into join clause ? > Yes, after pushdown, hbase lookupkeys are `rowKey` and `city_code`, which > trigger above exception. > > How can I solve this problem ? > Because only constant value and field input ref only be parsed as > LookupKey, you could add some operation on t2.city_code, for example > update `AND t1.city_code = t2.city_code` to `AND UPPER(t1.city_code) = > UPPER(t2.city_code) ` or `AND CAST(t1.city_code AS VARCHAR) = CAST > (t2.city_code AS VARCHAR) ` > > Best regards, > JING ZHANG > > 纳兰清风 <houying910...@163.com> 于2021年6月28日周一 下午12:48写道: > >> Hi, >> >> When I was using hbase table as my lookup table, I got this error: >> >> Caused by: java.lang.IllegalArgumentException: Currently, HBase table >> can only be lookup by single row key. >> at >> org.apache.flink.util.Preconditions.checkArgument(Preconditions.java:138) >> >> My SQL is >> >> insert into sink_kafka(user_ucid,city_code,`source`,system_type) >> SELECT t1.ucid AS user_ucid, >> t1.city_code, >> t1.`source`, >> t1.system_type >> FROM tmp_ucid_check t1 >> LEFT JOIN dim_hbase_valid_im_commercial_cust_di_cache >> for SYSTEM_TIME AS OF t1.proctime AS t2 >> ON concat(t1.ucid,'&',t1.city_code) = t2.rowKey >> WHERE t2.city_code is NOT null >> AND t1.city_code = t2.city_code; >> >> It maybe because the conditions in where clause, being pushed down as a >> predicate >> into join clause ? >> How can I solve this problem ? >> >> Thank you >> >> >> >> >