happytails.ai
Français

Vérificateur de compatibilité des schémas Avro

Vérifiez si un nouveau schéma Avro peut encore lire les données écrites avec l’ancien, ou l’inverse. Chaque champ, type et symbole d’énumération qui empêche la compatibilité est répertorié avec son chemin.

Accepte des schémas Avro au format JSON de jusqu’à 1 000 000 caractères chacun, avec au plus 50 000 valeurs JSON, 64 niveaux d’imbrication et 50 versions antérieures pour les modes transitifs. La vérification s’exécute dans votre navigateur, dans un processus de travail en arrière-plan. Les téléchargements comprennent un rapport JSON et un fichier CSV des problèmes. Schéma d’écriture au format JSON, ou {"versions":[...]} avec les schémas antérieurs du plus ancien au plus récent pour les modes transitifs. Jusqu’à 1 000 000 caractères. Vérifiez les réglages avant de lancer le traitement.

Votre résultat

Signalez un problème ou partagez une idée.

Vérificateur de compatibilité des schémas Avro
  1. Collez le schéma Avro antérieur dans le champ principal, ou {"versions":[...]} pour un mode transitif.
  2. Collez le nouveau schéma dans le champ « Nouveau schéma ».
  3. Choisissez la compatibilité backward, forward ou full.
  4. Lancez la vérification et téléchargez le rapport JSON ou le fichier CSV des problèmes.

À savoir

Accepte des schémas Avro au format JSON de jusqu’à 1 000 000 caractères chacun, avec au plus 50 000 valeurs JSON, 64 niveaux d’imbrication et 50 versions antérieures pour les modes transitifs. La vérification s’exécute dans votre navigateur, dans un processus de travail en arrière-plan. Les téléchargements comprennent un rapport JSON et un fichier CSV des problèmes.

Modes

La compatibilité « backward » signifie que le nouveau schéma peut lire les données écrites avec l’ancien, ce qui correspond au besoin d’une mise à niveau du consommateur. La compatibilité « forward » signifie que l’ancien schéma peut lire les données écrites avec le nouveau. Le mode « full » vérifie les deux. Les modes transitifs comparent le nouveau schéma à toutes les versions antérieures que vous indiquez, de la plus ancienne à la plus récente, au lieu de le comparer uniquement à la dernière.

Règles de résolution

Les vérifications suivent la section Schema Resolution de la spécification Avro 1.11 : int peut être converti en long, float ou double; long en float ou double; float en double; et string et bytes peuvent être convertis l’un en l’autre. Les enregistrements correspondent par nom complet, nom non qualifié ou alias du schéma de lecture. Un champ présent dans le schéma de lecture mais absent du schéma d’écriture doit avoir une valeur par défaut valide. Une énumération du schéma de lecture doit contenir chaque symbole du schéma d’écriture, sauf si elle a une valeur par défaut. Chaque branche d’une union du schéma d’écriture doit pouvoir être résolue dans le schéma de lecture.

Limites de la vérification

Cette vérification porte sur la résolution des schémas Avro, et non sur les règles supplémentaires propres à un registre de schémas. Les types logiques decimal valides doivent avoir la même précision et la même échelle, qu’ils soient encodés en bytes ou en fixed. Les types logiques inconnus ou non valides utilisent le type Avro sous-jacent. Les valeurs par défaut des unions sont vérifiées par rapport à la première branche; les valeurs par défaut imbriquées sont validées récursivement.

Pour continuer