嗨:
我利用Last_Value的UDF实现数据回撤功能时,发现无法取到最近数据的null值,这个是我使用不当还是就是无法获取NUll啊,如果是无法获取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] |
才注意到刚才的回复是单独发的,没有抄送到社区邮件列表。
我也不知道这个设计是出于什么考虑,已经抄送了小令和云邪,他们应该比较清楚这么设计的原因。 姬洪超 <[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] |
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] > > |
Free forum by Nabble | Edit this page |