Verificatore di compatibilità degli schemi Avro
Verifica se un nuovo schema Avro può ancora leggere dati scritti con quello vecchio o viceversa. Ogni campo, tipo e simbolo di enumerazione che impedisce la compatibilità è elencato con il suo percorso.
Accetta schemi Avro in JSON fino a 1.000.000 di caratteri ciascuno, con al massimo 50.000 valori JSON e 64 livelli di annidamento, e fino a 50 versioni precedenti per le modalità transitive. Il controllo viene eseguito nel browser tramite un’elaborazione separata in secondo piano. I download sono un report JSON e un elenco CSV dei problemi. Lo schema dello scrittore come JSON oppure {"versions":[...]} con schemi precedenti dal più vecchio al più recente per le modalità transitive. Fino a 1.000.000 di caratteri. Controlla le impostazioni prima di eseguire.
Il tuo risultato
Verificatore di compatibilità degli schemi Avro
- Incolla lo schema Avro precedente nel campo principale oppure {"versions":[...]} per una modalità transitiva.
- Incolla il nuovo schema nel campo Nuovo schema.
- Scegli compatibilità all'indietro, in avanti o completa.
- Esegui il controllo e scarica il report JSON o l'elenco CSV dei problemi.
Cosa aspettarsi
Accetta schemi Avro in JSON fino a 1.000.000 di caratteri ciascuno, con al massimo 50.000 valori JSON e 64 livelli di annidamento, e fino a 50 versioni precedenti per le modalità transitive. Il controllo viene eseguito nel browser tramite un’elaborazione separata in secondo piano. I download sono un report JSON e un elenco CSV dei problemi.
Modalità
La compatibilità all'indietro consente al nuovo schema di leggere dati scritti con quello vecchio, come serve quando si aggiorna un consumatore. La compatibilità in avanti consente al vecchio schema di leggere dati scritti con quello nuovo. La compatibilità completa verifica entrambe le direzioni. Le modalità transitive confrontano il nuovo schema con ogni versione precedente elencata, dalla più vecchia alla più recente, anziché solo con l'ultima.
Regole di risoluzione
I controlli seguono la sezione Schema Resolution della specifica Avro 1.11: int può essere promosso a long, float e double; long a float e double; float a double; string e bytes l'uno all'altro. I record corrispondono per nome completo, nome non qualificato o alias del lettore. Un campo del lettore che lo scrittore non possiede richiede un valore predefinito valido. Un'enumerazione del lettore richiede ogni simbolo dello scrittore, salvo che abbia un valore predefinito. Ogni ramo di un'unione dello scrittore deve poter essere risolto nel lettore.
Limiti del controllo
Questo controllo verifica la risoluzione degli schemi Avro, anziché regole aggiuntive di uno specifico registro di schemi. I tipi logici decimal validi devono avere precisione e scala uguali, sia per la codifica bytes sia per fixed. I tipi logici sconosciuti o non validi usano il tipo Avro sottostante. I valori predefiniti delle unioni vengono controllati rispetto al primo ramo; quelli annidati vengono validati ricorsivamente.