【问题标题】:Validate array of json objects whose size is dynamic with avro schema使用 avro 模式验证大小是动态的 json 对象数组
【发布时间】:2019-12-16 06:37:56
【问题描述】:

我正在尝试使用 apache Nifi 中的 avro 模式验证大小是动态的 json 对象数组。我知道如果知道大小,我们可以编写一个模式来验证。即使大小是动态的,有没有办法验证。

Json 条目如下所示

"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"
        }
    ]

【问题讨论】:

    标签: apache-nifi avro


    【解决方案1】:

    您不需要知道数组的大小来验证它,只要数组中的每个对象都具有相同的架构。在 Avro 架构中,您只需指定一个 Array type ,其中包含由您上面列出的每个单独项目的架构定义的项目。如果某些字段可能无法为数组中的某些对象填充,您可以通过将字段设置为 Union 将它们设置为“可选”,包括“null”类型作为这些字段的可能性。

    【讨论】:

      猜你喜欢
      • 2020-10-31
      • 1970-01-01
      • 2018-09-20
      • 1970-01-01
      • 2020-07-28
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多