flink1.11 sql kafka 抽取事件时间

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

flink1.11 sql kafka 抽取事件时间

18500348251@163.com
大家好!

使用flink1.11 sql接入kafka ,format为csv
从eventTime字段中抽取事件时间
rowtime AS TO_TIMESTAMP(FROM_UNIXTIME(eventTime / 1000, 'yyyy-MM-dd HH:mm:ss'))
eventTime可能存在脏数据(非13位的毫秒时间戳),设置了 'csv.ignore-parse-errors' = 'true', 那么eventTime会被设置为null,此时会报一个异常:
Caused by: java.lang.RuntimeException: RowTime field should not be null, please convert it to a non-null long value.

有没有什么好的方式可以解决


祝好!



[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: flink1.11 sql kafka 抽取事件时间

Benchao Li-2
我感觉可以通过计算列的方式来解决呀,你只需要在计算rowtime这个列的时候保证它不是null即可,如果是null,可以设置一个默认值之类的?

[hidden email] <[hidden email]> 于2020年7月15日周三 下午3:04写道:

> 大家好!
>
> 使用flink1.11 sql接入kafka ,format为csv
> 从eventTime字段中抽取事件时间
> rowtime AS TO_TIMESTAMP(FROM_UNIXTIME(eventTime / 1000, 'yyyy-MM-dd
> HH:mm:ss'))
> eventTime可能存在脏数据(非13位的毫秒时间戳),设置了 'csv.ignore-parse-errors' = 'true',
> 那么eventTime会被设置为null,此时会报一个异常:
> Caused by: java.lang.RuntimeException: RowTime field should not be null,
> please convert it to a non-null long value.
>
> 有没有什么好的方式可以解决
>
>
> 祝好!
>
>
>
> [hidden email]
>


--

Best,
Benchao Li