我在模式注册表中注册了一个模式,如下所示:
{ Prop1:val1,
prop2:val2,
prop3:val3}
以上所有字段都是可选的
当我通过rest代理发送数据负载时,如下所示: { "":val1, Prop2:val2, Prop3:val3 }
我希望模式注册表抛出一个错误。但这并没有发生。数据通过接收器连接器,第一个键/值对被忽略。
这是预期的行为吗?如果属性不存在,我如何强制出错(属性是可选的,但是当我们发送一个空白属性时,它应该抛出一个错误)。
我在模式注册表中注册了一个模式,如下所示:
{ Prop1:val1,
prop2:val2,
prop3:val3}
以上所有字段都是可选的
当我通过rest代理发送数据负载时,如下所示: { "":val1, Prop2:val2, Prop3:val3 }
我希望模式注册表抛出一个错误。但这并没有发生。数据通过接收器连接器,第一个键/值对被忽略。
这是预期的行为吗?如果属性不存在,我如何强制出错(属性是可选的,但是当我们发送一个空白属性时,它应该抛出一个错误)。
1条答案
按热度按时间wgx48brx1#
这似乎是avro中的模式解析。
如果writer的记录包含一个字段,而该字段的名称在reader的记录中不存在,则该字段的writer值将被忽略。
发件人:https://avro.apache.org/docs/1.8.1/spec.html#schema+分辨率
基本上,在我的模式repo inConfluent中-我重新注册了一个模式以获取3个属性-所有属性都是可选的。
如果我发送了一个数据包,其中包含其他属性或注册模式中不存在的属性,那么它们将被忽略。