happytails.ai
Nederlands

Compatibiliteitscontrole voor Avro-schema's

Controleer of een nieuw Avro-schema nog gegevens kan lezen die met het oude schema zijn geschreven, of andersom. Elk veld, type en enumeratiesymbool dat compatibiliteit verhindert, wordt met het bijbehorende pad vermeld.

Accepteert Avro-schema's als JSON van maximaal 1.000.000 tekens per schema, met maximaal 50.000 JSON-waarden en 64 nestingsniveaus, en maximaal 50 eerdere versies voor transitieve modi. De controle draait in je browser in een achtergrondworker. Downloads zijn een JSON-rapport en een CSV-lijst met problemen. Het schrijverschema als JSON of {"versions":[...]} met eerdere schema's van oud naar nieuw voor transitieve modi. Maximaal 1.000.000 tekens. Controleer de instellingen voordat je de tool uitvoert.

Je resultaat

Meld een probleem of deel een idee.

Compatibiliteitscontrole voor Avro-schema's
  1. Plak het eerdere Avro-schema in het hoofdvak of {"versions":[...]} voor een transitieve modus.
  2. Plak het nieuwe schema in het veld Nieuw schema.
  3. Kies achterwaartse, voorwaartse of volledige compatibiliteit.
  4. Voer de controle uit en download het JSON-rapport of de CSV-lijst met problemen.

Wat je kunt verwachten

Accepteert Avro-schema's als JSON van maximaal 1.000.000 tekens per schema, met maximaal 50.000 JSON-waarden en 64 nestingsniveaus, en maximaal 50 eerdere versies voor transitieve modi. De controle draait in je browser in een achtergrondworker. Downloads zijn een JSON-rapport en een CSV-lijst met problemen.

Modi

Achterwaartse compatibiliteit betekent dat het nieuwe schema gegevens kan lezen die met het oude schema zijn geschreven, wat nodig is bij het bijwerken van een consument. Voorwaartse compatibiliteit betekent dat het oude schema gegevens kan lezen die met het nieuwe schema zijn geschreven. Volledige compatibiliteit controleert beide richtingen. De transitieve modi vergelijken het nieuwe schema met elke opgegeven eerdere versie, van oud naar nieuw, in plaats van alleen met de laatste.

Regels voor schemaresolutie

De controles volgen de sectie Schema Resolution van de Avro 1.11-specificatie: int kan worden gepromoveerd naar long, float en double; long naar float en double; float naar double; en string en bytes naar elkaar. Records worden gekoppeld op volledige naam, niet-gekwalificeerde naam of een alias van de lezer. Een lezerveld dat de schrijver niet heeft, vereist een geldige standaardwaarde. Een lezerenumeratie vereist elk schrijversymbool, tenzij deze een standaardwaarde heeft. Elke tak van een schrijverunie moet in de lezer kunnen worden opgelost.

Beperkingen van de controle

Deze controle toetst Avro-schemaresolutie en niet aanvullende regels van een bepaald schemaregister. Geldige decimal-logische typen moeten dezelfde precisie en schaal hebben, zowel bij bytes- als fixed-coderingen. Onbekende of ongeldige logische typen gebruiken het onderliggende Avro-type. Standaardwaarden van unies worden tegen de eerste tak getoetst; geneste standaardwaarden worden recursief gevalideerd.

Handige vervolgstappen