【问题标题】:AvroData replaces nulls with schema default valuesAvroData 用架构默认值替换空值
【发布时间】:2019-08-08 12:46:50
【问题描述】:

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

正如我从 avro doc 中了解到的,当阅读器期望写入器模式中缺少的字段(不是特定消息)时,应该使用默认值来实现模式兼容性。

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

【问题讨论】:

    标签: avro apache-kafka-connect


    【解决方案1】:

    错过的理解是默认值不是用来替换空值的,它是用来填充你的字段值,以防你的数据不包含该字段。这主要用于模式演变目的。您正在尝试做的事情(将作为数据的一部分出现的空值替换为另一个值)是不可能通过 avro 模式实现的,您需要在程序中处理它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-08
      • 2014-03-31
      • 2016-09-29
      • 1970-01-01
      • 2016-12-13
      • 2021-02-09
      • 1970-01-01
      • 2012-09-04
      相关资源
      最近更新 更多