AvroData将空值替换为架构默认值

时间:2019-03-18 07:34:41

标签: avro apache-kafka-connect

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

据avro doc所知,当读者期望在编写者模式中缺少字段(不是特定消息)时,应使用默认值来实现模式兼容性。

所以我的问题是:用架构默认值替换空值是正确的方法吗?还是我应该使用另一种方式来转换邮件?

1 个答案:

答案 0 :(得分:0)

错过的理解是,默认值不用于替换空值,如果数据不包含字段,则默认值用于填充字段值。这主要用于架构演变目的。您尝试执行的操作(将作为数据一部分的空值替换为另一个值)无法通过avro模式进行,您需要在程序中进行处理。