Kompatibilitetskontroll for Avro-skjemaer
Kontroller om et nytt Avro-skjema fortsatt kan lese data skrevet med det gamle, eller omvendt. Hvert felt, hver type og hvert enum-symbol som hindrer kompatibilitet, vises med sin sti.
Godtar Avro-skjemaer som JSON med opptil 1 000 000 tegn hver, høyst 50 000 JSON-verdier og 64 nøstingsnivåer, samt opptil 50 tidligere versjoner i transitive moduser. Kontrollen kjøres i nettleseren i en bakgrunnsworker. Nedlastingene er en JSON-rapport og en CSV-liste over problemer. Skriverskjemaet som JSON, eller {"versions":[...]} med tidligere skjemaer fra eldst til nyest for transitive moduser. Opptil 1 000 000 tegn. Se gjennom innstillingene før du kjører.
Resultatet ditt
Kompatibilitetskontroll for Avro-skjemaer
- Lim inn det tidligere Avro-skjemaet i hovedfeltet, eller {"versions":[...]} for en transitiv modus.
- Lim inn det nye skjemaet i feltet Nytt skjema.
- Velg bakoverkompatibilitet, fremoverkompatibilitet eller full kompatibilitet.
- Kjør kontrollen og last ned JSON-rapporten eller CSV-listen over problemer.
Dette bør du vite
Godtar Avro-skjemaer som JSON med opptil 1 000 000 tegn hver, høyst 50 000 JSON-verdier og 64 nøstingsnivåer, samt opptil 50 tidligere versjoner i transitive moduser. Kontrollen kjøres i nettleseren i en bakgrunnsworker. Nedlastingene er en JSON-rapport og en CSV-liste over problemer.
Moduser
Bakoverkompatibilitet betyr at det nye skjemaet kan lese data skrevet med det gamle, noe som er nødvendig ved oppgradering av en konsument. Fremoverkompatibilitet betyr at det gamle skjemaet kan lese data skrevet med det nye. Full kompatibilitet kontrollerer begge retninger. De transitive modusene kontrollerer det nye skjemaet mot hver tidligere versjon du oppgir, fra eldst til nyest, i stedet for bare den siste.
Regler for skjemaoppløsning
Kontrollene følger avsnittet Schema Resolution i Avro 1.11-spesifikasjonen: int kan utvides til long, float og double, long til float og double, float til double, og string og bytes til hverandre. Poster samsvarer etter fullt navn, ukvalifisert navn eller et leseralias. Et leserfelt som skriveren ikke har, krever en gyldig standardverdi. En leser-enumerasjon trenger alle symbolene fra skriveren med mindre den har en standardverdi. Hver gren i en skriverunion må kunne håndteres av leseren.
Kontrollens begrensninger
Dette kontrollerer Avro-skjemaoppløsning, ikke tilleggsreglene til et bestemt skjemaregister. Gyldige logiske desimaltyper må ha samme presisjon og skala for både bytes- og fixed-koding. Ukjente eller ugyldige logiske typer bruker den underliggende Avro-typen. Standardverdier for unioner kontrolleres mot den første grenen; nøstede standardverdier valideres rekursivt.