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. Поставете новата схема в полето Нова схема.
  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, а не допълнителните правила на конкретен регистър на схеми. Валидните логически типове decimal трябва да имат еднаква точност и мащаб както при bytes, така и при fixed кодиране. Неизвестните или невалидни логически типове използват основния тип Avro. Стойностите по подразбиране на обединенията се проверяват спрямо първия клон; вложените стойности по подразбиране се валидират рекурсивно.

Полезни следващи стъпки