今天做个测试,发现一些类型的特点,想确认下。
目前来看,kafka数据的2个配置,(1)不存在字段设置null(2)解析错误忽略。 发现如下几个特征 (1)顶层字段字符串情况,实际数据为 "a": "a" 合法,"a":12不合法。 (2)非顶层字段,比如d map<String,String>,d中的字段 "b": 12则是合法的。 (3)t字段为bigint类型,并且由此衍生了eventtime。 如果数据为 t: abc 则数据直接非法被忽略。 如果数据为t: "abc",则t被转为null? 当然eventtime本身还有个不可null的限制,我通过COALESCE解决了。 想知道有没有什么规则,尽可能避免任务失败的。因为数据一旦有一点异常导致失败就会很麻烦。 比如那个忽略错误,实际是无法解决event time为null的情况的这种错误的。 我是通过COALESCE解决的。 |
而且按照string无法接受"a":a,bigint在 "t":"as"情况下会为null。
这么来看,bigint反而比string还通用了,可以将非法数据通过null录入进来。 string方式反而丢失部分信息了还。 赵一旦 <[hidden email]> 于2020年9月25日周五 上午10:57写道: > 今天做个测试,发现一些类型的特点,想确认下。 > > 目前来看,kafka数据的2个配置,(1)不存在字段设置null(2)解析错误忽略。 > > > 发现如下几个特征 > (1)顶层字段字符串情况,实际数据为 "a": "a" 合法,"a":12不合法。 > (2)非顶层字段,比如d map<String,String>,d中的字段 "b": 12则是合法的。 > (3)t字段为bigint类型,并且由此衍生了eventtime。 > 如果数据为 t: abc 则数据直接非法被忽略。 > 如果数据为t: "abc",则t被转为null? > 当然eventtime本身还有个不可null的限制,我通过COALESCE解决了。 > > > 想知道有没有什么规则,尽可能避免任务失败的。因为数据一旦有一点异常导致失败就会很麻烦。 > > 比如那个忽略错误,实际是无法解决event time为null的情况的这种错误的。 > 我是通过COALESCE解决的。 > |
你用的是哪个版本?1.11版本应该是改进过这块,不应该出现这个情况。
赵一旦 <[hidden email]> 于2020年9月25日周五 上午11:02写道: > 而且按照string无法接受"a":a,bigint在 "t":"as"情况下会为null。 > 这么来看,bigint反而比string还通用了,可以将非法数据通过null录入进来。 > string方式反而丢失部分信息了还。 > > 赵一旦 <[hidden email]> 于2020年9月25日周五 上午10:57写道: > > > 今天做个测试,发现一些类型的特点,想确认下。 > > > > 目前来看,kafka数据的2个配置,(1)不存在字段设置null(2)解析错误忽略。 > > > > > > 发现如下几个特征 > > (1)顶层字段字符串情况,实际数据为 "a": "a" 合法,"a":12不合法。 > > (2)非顶层字段,比如d map<String,String>,d中的字段 "b": 12则是合法的。 > > (3)t字段为bigint类型,并且由此衍生了eventtime。 > > 如果数据为 t: abc 则数据直接非法被忽略。 > > 如果数据为t: "abc",则t被转为null? > > 当然eventtime本身还有个不可null的限制,我通过COALESCE解决了。 > > > > > > 想知道有没有什么规则,尽可能避免任务失败的。因为数据一旦有一点异常导致失败就会很麻烦。 > > > > 比如那个忽略错误,实际是无法解决event time为null的情况的这种错误的。 > > 我是通过COALESCE解决的。 > > > -- Best, Benchao Li |
我基于1.11测试的。目前来看,json format的2个设置都设置好。然后event
time部分使用COALESCE将null情况设置为event_time 0。这么做是最好的情况啦。 Benchao Li <[hidden email]> 于2020年9月25日周五 下午2:08写道: > 你用的是哪个版本?1.11版本应该是改进过这块,不应该出现这个情况。 > > 赵一旦 <[hidden email]> 于2020年9月25日周五 上午11:02写道: > > > 而且按照string无法接受"a":a,bigint在 "t":"as"情况下会为null。 > > 这么来看,bigint反而比string还通用了,可以将非法数据通过null录入进来。 > > string方式反而丢失部分信息了还。 > > > > 赵一旦 <[hidden email]> 于2020年9月25日周五 上午10:57写道: > > > > > 今天做个测试,发现一些类型的特点,想确认下。 > > > > > > 目前来看,kafka数据的2个配置,(1)不存在字段设置null(2)解析错误忽略。 > > > > > > > > > 发现如下几个特征 > > > (1)顶层字段字符串情况,实际数据为 "a": "a" 合法,"a":12不合法。 > > > (2)非顶层字段,比如d map<String,String>,d中的字段 "b": 12则是合法的。 > > > (3)t字段为bigint类型,并且由此衍生了eventtime。 > > > 如果数据为 t: abc 则数据直接非法被忽略。 > > > 如果数据为t: "abc",则t被转为null? > > > 当然eventtime本身还有个不可null的限制,我通过COALESCE解决了。 > > > > > > > > > 想知道有没有什么规则,尽可能避免任务失败的。因为数据一旦有一点异常导致失败就会很麻烦。 > > > > > > 比如那个忽略错误,实际是无法解决event time为null的情况的这种错误的。 > > > 我是通过COALESCE解决的。 > > > > > > > > -- > > Best, > Benchao Li > |
1.11的话,
string类型是允许:"a":"abc" 和 "a": 123这两种形式的 bigint类型的话:"a": 123 和 "a": "123"也都是合法的 默认如果是字段不存在,会用null来表示; 如果字段解析错误,会抛异常,如果配置了ignoreParseError,则会忽略整条数据。 不知道你上面提到的(1)是怎么测出来的,方便把具体的DDL定义和示例数据贴一下吗? 赵一旦 <[hidden email]> 于2020年9月25日周五 下午2:52写道: > 我基于1.11测试的。目前来看,json format的2个设置都设置好。然后event > time部分使用COALESCE将null情况设置为event_time 0。这么做是最好的情况啦。 > > Benchao Li <[hidden email]> 于2020年9月25日周五 下午2:08写道: > > > 你用的是哪个版本?1.11版本应该是改进过这块,不应该出现这个情况。 > > > > 赵一旦 <[hidden email]> 于2020年9月25日周五 上午11:02写道: > > > > > 而且按照string无法接受"a":a,bigint在 "t":"as"情况下会为null。 > > > 这么来看,bigint反而比string还通用了,可以将非法数据通过null录入进来。 > > > string方式反而丢失部分信息了还。 > > > > > > 赵一旦 <[hidden email]> 于2020年9月25日周五 上午10:57写道: > > > > > > > 今天做个测试,发现一些类型的特点,想确认下。 > > > > > > > > 目前来看,kafka数据的2个配置,(1)不存在字段设置null(2)解析错误忽略。 > > > > > > > > > > > > 发现如下几个特征 > > > > (1)顶层字段字符串情况,实际数据为 "a": "a" 合法,"a":12不合法。 > > > > (2)非顶层字段,比如d map<String,String>,d中的字段 "b": 12则是合法的。 > > > > (3)t字段为bigint类型,并且由此衍生了eventtime。 > > > > 如果数据为 t: abc 则数据直接非法被忽略。 > > > > 如果数据为t: "abc",则t被转为null? > > > > 当然eventtime本身还有个不可null的限制,我通过COALESCE解决了。 > > > > > > > > > > > > 想知道有没有什么规则,尽可能避免任务失败的。因为数据一旦有一点异常导致失败就会很麻烦。 > > > > > > > > 比如那个忽略错误,实际是无法解决event time为null的情况的这种错误的。 > > > > 我是通过COALESCE解决的。 > > > > > > > > > > > > > -- > > > > Best, > > Benchao Li > > > -- Best, Benchao Li |
Free forum by Nabble | Edit this page |