В схеме Avro, как проверить, нет ли несоответствия в "псевдонимах"?
Есть ли способ проверить правильность схемы Avro? Особенно мне нужно проверить, что в "псевдонимах" нет дублирующихся значений?
Контекст:
Я использую NiFi для проверки входящих FlowFiles. Для этого я сгенерировал "вручную" схему Avro и статус нашего AvroSchemaRegistry
превратился в "Неверный", когда я сохранил схему в нем.
Я не нашел ни одного полезного сообщения в журналах NiFi, и всплывающее сообщение об ошибке в графическом интерфейсе NiFi также оказалось бесполезным, потому что наша схема 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-класс, но, похоже, не было проверки псевдонимов.
Я также пытался играть с другой библиотекой avro-cli-0.2.7.jar
, но без успеха снова.
У кого-нибудь есть идея, чтобы решить это (незначительное) неудобство?