如何在 Avro 架构中包含多个记录?

How to include more than one record in Avro schema?

我是 Apache Avro 的新手。我通过使用解析器读取模式来序列化数据。以下详细信息包括我的架构。我需要在同一个架构中包含多个记录。

{  "namespace": "tutorial.model",
   "type": "record",
   "name": "Employee",
   "fields": [
               {"name": "firstName", "type": "string"},
               {"name": "lastName", "type": "string"},
               {"name": "age",  "type": "int"},
               {"name": "id",  "type": "string"},
               {"name" : "company", "type" : "string"}
             ]
}

您可以按照此处的说明定义嵌入式记录 GettingStartedGuide

所以,您的模式应该是这样的

{
    "type" : "record",
    "name" : "userInfo",
    "namespace" : "my.example",
    "fields" : [{"name" : "username", 
                 "type" : "string", 
                 "default" : "NONE"},

                {"name" : "age", 
                 "type" : "int",
                 "default" : -1},

                 {"name" : "phone", 
                  "type" : "string", 
                  "default" : "NONE"},

                 {"name" : "housenum", 
                  "type" : "string", 
                  "default" : "NONE"},

                  {"name" : "address", 
                   "type" : {
                         "type" : "record",
                         "name" : "mailing_address",
                         "fields" : [
                            {"name" : "street", 
                             "type" : "string", 
                             "default" : "NONE"},

                            {"name" : "city", 
                             "type" : "string", 
                             "default" : "NONE"},

                            {"name" : "state_prov", 
                             "type" : "string", 
                             "default" : "NONE"},

                            {"name" : "country", 
                             "type" : "string", 
                             "default" : "NONE"},

                            {"name" : "zip", 
                             "type" : "string", 
                             "default" : "NONE"}
                          ]},
                          "default" : {}
                }
    ]
}