标准Avro架构演变示例显示向记录添加具有默认值的新字段。但是,如果您的旧模式有一个数组并且您想要向该数组添加一个新字段呢?
例如,给定一组记录:
{
"type": "array",
"items": {
"name": "Loss",
"type": "record",
"fields": [
{
"name": "lossTotalAmount",
"type": [ "null", "string" ],
"default": null
},
{
"name": "lossType",
"type": [ "null", "string" ],
"default": null
},
{
"name": "lossId",
"type": [ "null", "string" ],
"default": null
},
{
"name": "vehicleLossCode",
"type": [ "null", "string" ],
"default": null
}
]
}
}
添加新字段claimNumber
:
{
"type": "array",
"items": {
"name": "Loss",
"type": "record",
"fields": [
{
"name": "lossTotalAmount",
"type": [ "null", "string" ],
"default": null
},
{
"name": "lossType",
"type": [ "null", "string" ],
"default": null
},
{
"name": "lossId",
"type": [ "null", "string" ],
"default": null
},
{
"name": "vehicleLossCode",
"type": [ "null", "string" ],
"default": null
},
{
"name": "claimNumber",
"type": [ "null", "string" ],
"default": null
}
]
}
}
使用常规技术似乎不起作用,因为我开始遇到反序列化异常。是否有不同的方法来扩展Avro中的现有阵列,还是不可能?