我可以从我的AVRO模式中删除一个元素吗

时间:2019-05-02 16:20:53

标签: apache-kafka avro

我可以从我的AVRO模式中删除一个元素,请参见下面的枚举,可以删除它吗?原因是我想添加一个列表类型,它可以从同一个枚举中获取多个值。

"fields": [{
			"name": "etype",
			"type":
			{
				"type": "enum",
				"name": "EFilter",
				"symbols" : ["ONE", "TWO", "THREE", "FOUR"]
			},
			"doc": "event types"
		},

1 个答案:

答案 0 :(得分:1)

您是否正在使用架构注册表?

如果是这样,您可以尝试删除该字段并将新架构发布到最新版本的架构中

https://docs.confluent.io/current/schema-registry/develop/api.html#heading2-4

否则,如果您正在考虑删除诸如字段之类的向后发展,我认为您将无法删除它,因为它不可为空或具有默认值。

另一种选择是只添加新的列表字段,然后在序列化过程中用一些伪值填充枚举,而在反序列化过程中将其忽略。