Last_Value为啥不能取最近为NULL的值

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Last_Value为啥不能取最近为NULL的值

姬洪超
嗨:
   我利用Last_Value的UDF实现数据回撤功能时,发现无法取到最近数据的null值,这个是我使用不当还是就是无法获取NUll啊,如果是无法获取NULL的话,为什么啊?谢谢

Reply | Threaded
Open this post in threaded view
|

Re: Last_Value为啥不能取最近为NULL的值

Benchao Li
没太理解你的问题,

1,你说last_value UDF,指的是你自己实现了一个last_value么?还是用的内置函数last_value?
2, 实现数据回撤是什么意思呢?

姬洪超 <[hidden email]> 于2020年4月24日周五 下午4:23写道:

> 嗨:
>
>  我利用Last_Value的UDF实现数据回撤功能时,发现无法取到最近数据的null值,这个是我使用不当还是就是无法获取NUll啊,如果是无法获取NULL的话,为什么啊?谢谢
>
>

--

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: [hidden email]; [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Last_Value为啥不能取最近为NULL的值

Benchao Li
才注意到刚才的回复是单独发的,没有抄送到社区邮件列表。

我也不知道这个设计是出于什么考虑,已经抄送了小令和云邪,他们应该比较清楚这么设计的原因。

姬洪超 <[hidden email]> 于2020年4月24日周五 下午4:59写道:

> 这是出于什么样的考虑啊?
>
> ------------------------------------------------------------------
> 发件人:Benchao Li <[hidden email]>
> 发送时间:2020年4月24日(星期五) 16:55
> 收件人:姬洪超 <[hidden email]>
> 主 题:Re: Last_Value为啥不能取最近为NULL的值
>
> 看了一眼last_value的实现,的确是判断了数据是否为null,如果是null就直接忽略了,不会更新聚合结果为null
>
> 姬洪超 <[hidden email]> 于2020年4月24日周五 下午4:48写道:
>
>
> 我使用的是内置的last_value。数据回撤就是处理mysql的binlog的delete或者update的数据的时候,想获取kafka中相同key的最近一条的数据,发现内置的last_value无法获取值为null的数据
> ------------------------------------------------------------------
> 发件人:Benchao Li <[hidden email]>
> 发送时间:2020年4月24日(星期五) 16:44
> 收件人:user-zh <[hidden email]>; 姬洪超 <[hidden email]>
> 主 题:Re: Last_Value为啥不能取最近为NULL的值
>
> 没太理解你的问题,
>
> 1,你说last_value UDF,指的是你自己实现了一个last_value么?还是用的内置函数last_value?
> 2, 实现数据回撤是什么意思呢?
>
> 姬洪超 <[hidden email]> 于2020年4月24日周五 下午4:23写道:
> 嗨:
>
>  我利用Last_Value的UDF实现数据回撤功能时,发现无法取到最近数据的null值,这个是我使用不当还是就是无法获取NUll啊,如果是无法获取NULL的话,为什么啊?谢谢
>
>
>
> --
>
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: [hidden email]; [hidden email]
>
>
>
>
> --
>
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: [hidden email]; [hidden email]
>
>
>

--

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: [hidden email]; [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Last_Value为啥不能取最近为NULL的值

Jark
Administrator
Hi,

内置的 last_value 这个 UDAF 是特意会去忽略 null 值的。
这是因为在传统数据库和标准 SQL 中定义的 agg ,基本上都是忽略输入的 null 值的,如果所有输入都是 null,那么会输出 null。

对于你的场景,我建议使用 deduplicate by last row 语法[1],last row 会保留该 key
下完整的上一行数据,因此在回撤时会输出 完整上一行的回撤消息。

Best,
Jark

[1]:
https://ci.apache.org/projects/flink/flink-docs-master/zh/dev/table/sql/queries.html#%E5%8E%BB%E9%87%8D

On Fri, 24 Apr 2020 at 17:18, Benchao Li <[hidden email]> wrote:

> 才注意到刚才的回复是单独发的,没有抄送到社区邮件列表。
>
> 我也不知道这个设计是出于什么考虑,已经抄送了小令和云邪,他们应该比较清楚这么设计的原因。
>
> 姬洪超 <[hidden email]> 于2020年4月24日周五 下午4:59写道:
>
>> 这是出于什么样的考虑啊?
>>
>> ------------------------------------------------------------------
>> 发件人:Benchao Li <[hidden email]>
>> 发送时间:2020年4月24日(星期五) 16:55
>> 收件人:姬洪超 <[hidden email]>
>> 主 题:Re: Last_Value为啥不能取最近为NULL的值
>>
>> 看了一眼last_value的实现,的确是判断了数据是否为null,如果是null就直接忽略了,不会更新聚合结果为null
>>
>> 姬洪超 <[hidden email]> 于2020年4月24日周五 下午4:48写道:
>>
>>
>> 我使用的是内置的last_value。数据回撤就是处理mysql的binlog的delete或者update的数据的时候,想获取kafka中相同key的最近一条的数据,发现内置的last_value无法获取值为null的数据
>> ------------------------------------------------------------------
>> 发件人:Benchao Li <[hidden email]>
>> 发送时间:2020年4月24日(星期五) 16:44
>> 收件人:user-zh <[hidden email]>; 姬洪超 <[hidden email]>
>> 主 题:Re: Last_Value为啥不能取最近为NULL的值
>>
>> 没太理解你的问题,
>>
>> 1,你说last_value UDF,指的是你自己实现了一个last_value么?还是用的内置函数last_value?
>> 2, 实现数据回撤是什么意思呢?
>>
>> 姬洪超 <[hidden email]> 于2020年4月24日周五 下午4:23写道:
>> 嗨:
>>
>>  我利用Last_Value的UDF实现数据回撤功能时,发现无法取到最近数据的null值,这个是我使用不当还是就是无法获取NUll啊,如果是无法获取NULL的话,为什么啊?谢谢
>>
>>
>>
>> --
>>
>> Benchao Li
>> School of Electronics Engineering and Computer Science, Peking University
>> Tel:+86-15650713730
>> Email: [hidden email]; [hidden email]
>>
>>
>>
>>
>> --
>>
>> Benchao Li
>> School of Electronics Engineering and Computer Science, Peking University
>> Tel:+86-15650713730
>> Email: [hidden email]; [hidden email]
>>
>>
>>
>
> --
>
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: [hidden email]; [hidden email]
>
>