我向Schema注册表中注册一个Schema,如下所示:
{ Prop1:val1,
prop2:val2,
prop3:val3}
以上所有字段均为可选
当我通过Rest Proxy发送数据有效载荷时,如下所示:
{ "":val1, Prop2:val2, Prop3:val3 }
我希望架构注册表抛出错误。但这没有发生。数据通过接收器连接器,第一个键/值对将被忽略。
这是预期的行为吗?如果属性不存在,如何强制错误(该属性是可选的,但是当我们发送空白属性时,它应该引发错误)。
答案 0 :(得分:0)
这似乎是Avro中的架构解析。
如果作者的记录包含一个字段,而该字段的名称不存在 读者记录,该字段的作者值将被忽略。
来自: https://avro.apache.org/docs/1.8.1/spec.html#Schema+Resolution
基本上在我的架构仓库中,它们合而为一-我要求架构具有3个属性-所有都是可选的。
{
propA:val1,
propB:val2,
propC:val3
}
如果我发送的数据包具有其他属性或未在注册架构中充斥的属性,则它们将被忽略。
{
"":val1, //<- considered as new property and ignored
propB:val2,
propC:val3
}