В схеме 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, но без успеха снова.

У кого-нибудь есть идея, чтобы решить это (незначительное) неудобство?

0 ответов

Другие вопросы по тегам