Apache nifi 使用avro模式验证大小为动态的json对象数组
我试图用ApacheNIFI中的avro模式验证大小为动态的json对象数组。我知道如果大小已知,我们可以编写一个模式来验证。即使大小是动态的,也有方法进行验证 Json条目如下所示Apache nifi 使用avro模式验证大小为动态的json对象数组,apache-nifi,avro,Apache Nifi,Avro,我试图用ApacheNIFI中的avro模式验证大小为动态的json对象数组。我知道如果大小已知,我们可以编写一个模式来验证。即使大小是动态的,也有方法进行验证 Json条目如下所示 "multi_location" : [ { "cityState" : "Seattle, Washington", "country" : "United States", "city" : "Seattle",
"multi_location" : [
{
"cityState" : "Seattle, Washington",
"country" : "United States",
"city" : "Seattle",
"location" : "Seattle, Washington, United States",
"cityCountry" : "Seattle, United States",
"cityStateCountry" : "Seattle, Washington, United States",
"state" : "Washington",
"mapQueryLocation" : "Seattle, Washington, United States",
"stateCountry" : "Washington, United States"
},
{
"cityState" : "Toronto, Ontario",
"country" : "Canada",
"city" : "Toronto",
"location" : "Toronto, Ontario, Canada",
"cityCountry" : "Toronto, Canada",
"cityStateCountry" : "Toronto, Ontario, Canada",
"state" : "Ontario",
"mapQueryLocation" : "Toronto, Ontario, Canada",
"stateCountry" : "Ontario, Canada"
},
{
"cityState" : "Vancouver, British Columbia",
"country" : "Canada",
"city" : "Vancouver",
"location" : "Vancouver, British Columbia, Canada",
"cityCountry" : "Vancouver, Canada",
"cityStateCountry" : "Vancouver, British Columbia, Canada",
"state" : "British Columbia",
"mapQueryLocation" : "Vancouver, British Columbia, Canada",
"stateCountry" : "British Columbia, Canada"
}
]
只要数组中的每个对象都具有相同的模式,就不需要知道数组的大小来验证它。在Avro模式中,您只需指定一个包含由上面列出的每个单独项目的模式定义的项目的。如果数组中的某些对象可能未填充某些字段,则可以通过使字段a包含“null”类型,使其成为“可选”字段。只要数组中的每个对象具有相同的架构,则无需知道数组的大小即可进行验证。在Avro模式中,您只需指定一个包含由上面列出的每个单独项目的模式定义的项目的。如果数组中的某些对象可能未填充某些字段,则可以通过将字段设置为包含“null”类型作为这些字段的可能,使其成为“可选”字段