AvroData使用架构默认值替换空值

问题描述 投票:0回答:1

我正在使用io.confluent.connect.avro.AvroData.fromConnectData在序列化之前转换消息。 AvroData使用struct.get(field)来获取值,这些值又使用模式默认值替换空值。

正如我从avro doc中理解的那样,当读者期望在编写器模式中缺少字段(而不是特定的消息)时,应该使用默认值来进行模式兼容性。

所以我的问题是:用架构默认值替换空值是否正确?或者我应该用另一种方式转换消息?

avro apache-kafka-connect
1个回答
0
投票

遗漏的理解是默认值不用于替换空值,它用于填充您的字段值,以防您的数据不包含该字段。这主要用于模式演化目的。你想要做什么(用另一个值替换作为数据一部分的空值)是不可能通过avro架构,你需要在你的程序中处理它。

© www.soinside.com 2019 - 2024. All rights reserved.