You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 忝忝向仧 <15...@qq.com> on 2020/06/25 15:31:44 UTC

【Flink SQL对于NULL在不等时候的处理】

Hi,all:


Flink sql 在使用<&gt;或者!=做过滤时候,null也会像在hive里面样被过滤掉么?
hive里面感觉这有点坑,每次还要小心处理下.
谢谢.

回复:【Flink SQL对于NULL在不等时候的处理】

Posted by Yichao Yang <10...@qq.com>.
Hi


下列邮件列表或许可以帮到你


[1]http://apache-flink.147419.n8.nabble.com/flink-sql-null-false-td3640.html#a3658


Best,
Yichao Yang




------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"忝忝向仧"<153488125@qq.com&gt;;
发送时间:&nbsp;2020年6月25日(星期四) 晚上11:31
收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;

主题:&nbsp;【Flink SQL对于NULL在不等时候的处理】



Hi,all:


Flink sql 在使用<&amp;gt;或者!=做过滤时候,null也会像在hive里面样被过滤掉么?
hive里面感觉这有点坑,每次还要小心处理下.
谢谢.

Re: 【Flink SQL对于NULL在不等时候的处理】

Posted by Leonard Xu <xb...@gmail.com>.
> 社区之前有个issue[1]在跟进这个问题, 在此之前建议处理 null 时,都用 IS NULL , IS NOT NULL 先做下过滤再做逻辑判断,一般SQL里面也是这样处理的。
> 
> 祝好,
> Leonard Xu
> [1] https://issues.apache.org/jira/browse/FLINK-18164 <https://issues.apache.org/jira/browse/FLINK-18164>
> 

更新下,社区这个 issue(FLINK-18164 <https://issues.apache.org/jira/browse/FLINK-18164>)和 Benchao 讨论后关闭了,因为当前Flink在处理 null 的行为是正确的,所以建议处理 null 时,都用 IS NULL , IS NOT NULL 先做下过滤再做逻辑判断,一般SQL里面也是这样处理的。

祝好,
Leonard Xu

Re: 【Flink SQL对于NULL在不等时候的处理】

Posted by Leonard Xu <xb...@gmail.com>.
Hi,
不仅在 hive 中,在 Flink 中也是一样的,两个系统的SQL解析优化框架都是参考了Calcite, hive的SQL解析是自己的,flink的SQL解析和优化都是基于Calcite,

对于null值是否过滤,SQL中 一个 bool表达式(如 a > b) 的返回值 是有三个的,true,false,unknown,unknown 主要出现在有null值得情况下,比如 null > ‘hello’ 的返回值就是unknown, unknown的返回值可以在calcite中配置,Flink 默认的配置是 unknown as mode,就是 null > ‘hello’ 返回false,看你条件是过滤false的话,那么null值就会被过滤掉.
 
社区之前有个issue[1]在跟进这个问题, 在此之前建议处理 null 时,都用 IS NULL , IS NOT NULL 先做下过滤再做逻辑判断,一般SQL里面也是这样处理的。

祝好,
Leonard Xu
[1] https://issues.apache.org/jira/browse/FLINK-18164 <https://issues.apache.org/jira/browse/FLINK-18164>

> 在 2020年6月25日,23:31,忝忝向仧 <15...@qq.com> 写道:
> 
> Hi,all:
> 
> 
> Flink sql 在使用<&gt;或者!=做过滤时候,null也会像在hive里面样被过滤掉么?
> hive里面感觉这有点坑,每次还要小心处理下.
> 谢谢.