有没有办法验证Avro架构是否有效?特别是我需要检查“别名”中没有重复的值吗?
上下文:
我正在使用NiFi来验证传入的FlowFiles。为此,我“手动”生成了Avro架构,当我将架构存储在其中时,我们AvroSchemaRegistry
的状态变为“无效”。
我在NiFi日志中没有找到任何有用的消息,并且NiFi GUI中的错误弹出也无能为力,因为我们的Avro架构太长而且帮助消息的末尾被截断了。
经过多次测试后,我终于发现我在aliases
部分有两个包含重复值的字段。
一个简短的例子:
{
"type": "record",
"name": "testDuplicate",
"namespace":"test",
"fields": [
{"name":"field_1","type": ["string" ,"null"],"aliases": ["Alias_01"]},
{"name":"field_2","type": ["string" ,"null"],"aliases": ["Alias_02", "Alias_01"]}
]
}
所以我想知道在将模式导入AvroSchemaRegistry
之前,某些工具是否可以检测到这种错误?
我查看了avro-tools.jar
但是我没有看到可能有用的东西......命令java -jar ./avro-tools-1.8.2.jar compile --schema-file test.schema
确实生成了java类,但似乎没有检查别名
我还尝试使用另一个lib avro-cli-0.2.7.jar
,但又没有成功。
有没有人想解决这个(轻微的)不便?