happytails.ai
Svenska

Kompatibilitetskontroll för Avro-scheman

Kontrollera om ett nytt Avro-schema fortfarande kan läsa data skrivna med det gamla, eller tvärtom. Varje fält, typ och uppräkningssymbol som hindrar kompatibilitet listas med sin sökväg.

Tar emot Avro-scheman som JSON med högst 1 000 000 tecken vardera, högst 50 000 JSON-värden och 64 nästlingsnivåer samt upp till 50 tidigare versioner för transitiva lägen. Kontrollen körs i webbläsaren i en bakgrundsworker. Nedladdningarna är en JSON-rapport och en CSV-lista över problem. Skrivarschemat som JSON, eller {"versions":[...]} med tidigare scheman från äldst till nyast för transitiva lägen. Upp till 1 000 000 tecken. Kontrollera inställningarna innan du kör.

Ditt resultat

Rapportera ett problem eller dela en idé.

Kompatibilitetskontroll för Avro-scheman
  1. Klistra in det tidigare Avro-schemat i huvudrutan eller {"versions":[...]} för ett transitivt läge.
  2. Klistra in det nya schemat i fältet Nytt schema.
  3. Välj bakåtkompatibilitet, framåtkompatibilitet eller full kompatibilitet.
  4. Kör kontrollen och ladda ned JSON-rapporten eller CSV-listan över problem.

Vad du kan förvänta dig

Tar emot Avro-scheman som JSON med högst 1 000 000 tecken vardera, högst 50 000 JSON-värden och 64 nästlingsnivåer samt upp till 50 tidigare versioner för transitiva lägen. Kontrollen körs i webbläsaren i en bakgrundsworker. Nedladdningarna är en JSON-rapport och en CSV-lista över problem.

Lägen

Bakåtkompatibilitet innebär att det nya schemat kan läsa data skrivna med det gamla, vilket behövs när en konsument uppgraderas. Framåtkompatibilitet innebär att det gamla schemat kan läsa data skrivna med det nya. Full kompatibilitet kontrollerar båda riktningarna. De transitiva lägena kontrollerar det nya schemat mot varje tidigare version du anger, från äldst till nyast, i stället för bara den senaste.

Regler för schemaupplösning

Kontrollerna följer avsnittet Schema Resolution i Avro 1.11-specifikationen: int kan befordras till long, float och double, long till float och double, float till double och string och bytes till varandra. Poster matchas med fullständigt namn, okvalificerat namn eller ett läsaralias. Ett läsarfält som skrivaren saknar behöver ett giltigt standardvärde. En läsaruppräkning behöver varje skrivarsymbol om den inte har ett standardvärde. Varje gren i en skrivarunion måste kunna lösas i läsaren.

Kontrollens begränsningar

Detta kontrollerar Avro-schemaupplösning snarare än extra regler i ett visst schemaregister. Giltiga decimal-logiska typer måste ha samma precision och skala, både för bytes- och fixed-kodning. Okända eller ogiltiga logiska typer använder den underliggande Avro-typen. Unionsstandardvärden kontrolleras mot den första grenen; nästlade standardvärden valideras rekursivt.

Användbara nästa steg