happytails.ai
Русский

Проверка совместимости схем Avro

Проверьте, может ли новая схема Avro читать данные, записанные старой схемой, или наоборот. Каждое поле, тип и символ перечисления, блокирующие совместимость, перечислены с путём.

Принимает схемы Avro в формате JSON размером до 1 000 000 символов каждая, не более 50 000 значений JSON, с вложенностью до 64 уровней и до 50 более ранних версий для транзитивных режимов. Проверка выполняется в фоновом процессе браузера. Можно скачать отчёт JSON и список проблем CSV. Схема писателя в формате JSON или {"versions":[...]} с предыдущими схемами от самой старой для транзитивных режимов. До 1 000 000 символов. Проверьте настройки перед запуском.

Ваш результат

Сообщите о проблеме или поделитесь идеей.

Проверка совместимости схем Avro
  1. Вставьте предыдущую схему Avro в основное поле или {"versions":[...]} для транзитивного режима.
  2. Вставьте новую схему в поле New schema.
  3. Выберите обратную, прямую или полную совместимость.
  4. Запустите проверку и скачайте отчёт JSON или список проблем CSV.

Что нужно знать

Принимает схемы Avro в формате JSON размером до 1 000 000 символов каждая, не более 50 000 значений JSON, с вложенностью до 64 уровней и до 50 более ранних версий для транзитивных режимов. Проверка выполняется в фоновом процессе браузера. Можно скачать отчёт JSON и список проблем CSV.

Режимы

Обратная совместимость означает, что новая схема может читать данные, записанные старой схемой, что требуется при обновлении потребителя. Прямая совместимость означает, что старая схема может читать данные, записанные новой. Полная проверяет оба направления. Транзитивные режимы проверяют новую схему со всеми указанными более ранними версиями, начиная с самой старой, а не только с последней.

Правила разрешения

Проверки следуют разделу Schema Resolution спецификации Avro 1.11: int преобразуется в long, float и double; long — в float и double; float — в double; string и bytes преобразуются друг в друга. Записи сопоставляются по полному имени, имени без пакета или псевдониму читателя. Полю читателя, отсутствующему у писателя, нужно корректное значение по умолчанию. Перечисление читателя должно содержать каждый символ писателя, если у него нет значения по умолчанию. Каждая ветвь объединения писателя должна разрешаться читателем.

Ограничения проверки

Здесь проверяется разрешение схем Avro, а не дополнительные правила конкретного реестра схем. Допустимые логические десятичные типы должны иметь одинаковые точность и масштаб для представления bytes и фиксированного размера. Неизвестные или недопустимые логические типы используют базовый тип Avro. Значения по умолчанию в объединениях проверяются по первой ветви; вложенные значения по умолчанию проверяются рекурсивно.

Что можно сделать дальше