avro模式演化:扩展现有数组

vhmi4jdf  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(269)

标准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中的现有阵列,还是不可能?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题