Verificador de compatibilidade de esquemas Avro
Verifique se um esquema Avro novo ainda consegue ler dados escritos com o antigo, ou o inverso. Cada campo, tipo e símbolo de enumeração que impeça a compatibilidade é apresentado com o seu caminho.
Aceita esquemas Avro em JSON com até 1 000 000 de caracteres cada, no máximo 50 000 valores JSON e 64 níveis de aninhamento e até 50 versões anteriores nos modos transitivos. A verificação é executada no seu navegador num processo de trabalho em segundo plano. Transferências: um relatório JSON e uma lista CSV de problemas. O esquema de escrita em JSON ou {"versions":[...]} com os esquemas anteriores do mais antigo ao mais recente nos modos transitivos. Até 1 000 000 de caracteres. Reveja as definições antes de executar.
Seu resultado
Verificador de compatibilidade de esquemas Avro
- Cole o esquema Avro anterior no campo principal ou {"versions":[...]} para um modo transitivo.
- Cole o novo esquema no campo «Novo esquema».
- Escolha retrocompatibilidade, compatibilidade futura ou completa.
- Execute a verificação e transfira o relatório JSON ou a lista CSV de problemas.
O que esperar
Aceita esquemas Avro em JSON com até 1 000 000 de caracteres cada, no máximo 50 000 valores JSON e 64 níveis de aninhamento e até 50 versões anteriores nos modos transitivos. A verificação é executada no seu navegador num processo de trabalho em segundo plano. Transferências: um relatório JSON e uma lista CSV de problemas.
Modos
A retrocompatibilidade permite ao esquema novo ler dados escritos com o antigo, o que é necessário ao atualizar um consumidor. A compatibilidade futura permite ao esquema antigo ler dados escritos com o novo. A compatibilidade completa verifica ambas as direções. Os modos transitivos comparam o novo esquema com cada versão anterior indicada, da mais antiga à mais recente, em vez de apenas com a última.
Regras de resolução
As verificações seguem a secção Schema Resolution da especificação Avro 1.11: int pode ser convertido em long, float e double; long em float e double; float em double; e string e bytes entre si. Os registos são associados por nome completo, nome não qualificado ou alias do esquema de leitura. Um campo do esquema de leitura ausente no de escrita necessita de um valor predefinido válido. Uma enumeração do esquema de leitura necessita de todos os símbolos do esquema de escrita, exceto se tiver um valor predefinido. Cada ramo de uma união do esquema de escrita deve poder ser resolvido no de leitura.
Limites da verificação
Verifica a resolução de esquemas Avro, não as regras adicionais de um registo de esquemas específico. Os tipos lógicos decimal válidos devem ter a mesma precisão e escala, nas codificações bytes e fixed. Os tipos lógicos desconhecidos ou inválidos utilizam o tipo Avro subjacente. Os valores predefinidos das uniões são verificados com o primeiro ramo; os predefinidos aninhados são validados recursivamente.