Avro是否支持必填字段?

时间:2015-08-13 17:48:52

标签: avro

即。是否可以使字段需要类似于ProtoBuf:

消息SearchRequest {   必需字符串查询= 1; }

1 个答案:

答案 0 :(得分:12)

默认情况下,Avro中需要所有字段。与官方文档中的mentioned一样,如果你想要创建一些可选的东西,你必须通过将它的类型与null结合起来使它成为可空的,就像这样

{ "namespace": "example.avro",
  "type": "record",
  "name": "User",
  "fields": [
    {"name": "name", "type": "string"},
    {"name": "favorite_number",  "type": ["int", "null"]},
    {"name": "favorite_color", "type": ["string", "null"]}
  ]
}

在此示例中,name是必需的,favorite_numberfavorite_color是可选的。我建议您花一些时间阅读文档。