Avro shēmu saderības pārbaudītājs
Pārbaudiet, vai jaunā Avro shēma vēl var lasīt datus, kas ierakstīti ar veco shēmu, vai otrādi. Katrs lauks, tips un uzskaitījuma simbols, kas kavē saderību, ir norādīts ar tā ceļu.
Pieņem Avro shēmas JSON formātā, katru līdz 1 000 000 rakstzīmēm, ar ne vairāk kā 50 000 JSON vērtībām un 64 ligzdošanas līmeņiem. Tranzitīvajiem režīmiem var norādīt līdz 50 agrākām versijām. Pārbaude notiek pārlūkā, fona uzdevumā. Var lejupielādēt JSON pārskatu un CSV problēmu sarakstu. Rakstītāja shēma JSON formātā vai {"versions":[...]} ar agrākām shēmām, sākot ar vecāko, tranzitīvajiem režīmiem. Līdz 1 000 000 rakstzīmēm. Pirms palaišanas pārskatiet iestatījumus.
Jūsu rezultāts
Avro shēmu saderības pārbaudītājs
- Galvenajā laukā ielīmējiet agrāko Avro shēmu vai {"versions":[...]} tranzitīvajam režīmam.
- Ielīmējiet jauno shēmu laukā „Jaunā shēma“.
- Izvēlieties atpakaļsaderību, saderību uz priekšu vai pilnu saderību.
- Palaidiet pārbaudi un lejupielādējiet JSON pārskatu vai CSV problēmu sarakstu.
Kas jāzina
Pieņem Avro shēmas JSON formātā, katru līdz 1 000 000 rakstzīmēm, ar ne vairāk kā 50 000 JSON vērtībām un 64 ligzdošanas līmeņiem. Tranzitīvajiem režīmiem var norādīt līdz 50 agrākām versijām. Pārbaude notiek pārlūkā, fona uzdevumā. Var lejupielādēt JSON pārskatu un CSV problēmu sarakstu.
Režīmi
Atpakaļsaderība nozīmē, ka jaunā shēma var lasīt datus, kas ierakstīti ar veco shēmu; tas vajadzīgs, atjauninot datu patērētāju. Saderība uz priekšu nozīmē, ka vecā shēma var lasīt datus, kas ierakstīti ar jauno shēmu. Pilna saderība pārbauda abus virzienus. Tranzitīvie režīmi pārbauda jauno shēmu pret katru norādīto agrāko versiju, sākot ar vecāko, nevis tikai pret pēdējo.
Shēmu saskaņošanas noteikumi
Pārbaudes ievēro Avro 1.11 specifikācijas shēmu saskaņošanas sadaļu: int var paplašināt uz long, float un double, long uz float un double, float uz double, bet string un bytes vienu uz otru. Ieraksti atbilst pēc pilnā nosaukuma, nekvalificētā nosaukuma vai lasītāja aizstājvārda. Lasītāja laukam, kura rakstītājam nav, vajadzīga derīga noklusējuma vērtība. Lasītāja uzskaitījumam vajadzīgi visi rakstītāja simboli, ja vien tam nav noklusējuma vērtības. Katram rakstītāja apvienojuma zaram jābūt saskaņojamam ar lasītāju.
Pārbaudes ierobežojumi
Šī pārbaude attiecas uz Avro shēmu saskaņošanu, nevis kāda konkrēta shēmu reģistra papildu noteikumiem. Derīgiem decimal loģiskajiem tipiem jābūt vienādai precizitātei un mērogam gan bytes, gan fixed kodējumā. Nezināmiem vai nederīgiem loģiskajiem tipiem izmanto pamatā esošo Avro tipu. Apvienojuma noklusējuma vērtības pārbauda pret pirmo atzaru; ligzdotās noklusējuma vērtības pārbauda rekursīvi.