happytails.ai
Deutsch

Avro-Schema-Kompatibilitätsprüfung

Prüfe, ob ein neues Avro-Schema mit dem alten Schema geschriebene Daten noch lesen kann oder umgekehrt. Jedes Feld, jeder Typ und jedes Enum-Symbol, das die Kompatibilität verhindert, wird mit seinem Pfad aufgelistet.

Akzeptiert Avro-Schemas als JSON mit jeweils bis zu 1.000.000 Zeichen, höchstens 50.000 JSON-Werten und 64 Verschachtelungsebenen sowie bis zu 50 früheren Versionen für transitive Modi. Die Prüfung läuft in deinem Browser in einem Hintergrund-Worker. Downloads: ein JSON-Bericht und eine CSV-Problemliste. Das Schreibschema als JSON oder {"versions":[...]} mit früheren Schemas, das älteste zuerst, für transitive Modi. Bis zu 1.000.000 Zeichen. Prüfe die Einstellungen vor dem Start.

Dein Ergebnis

Melde ein Problem oder teile eine Idee.

Avro-Schema-Kompatibilitätsprüfung
  1. Füge das frühere Avro-Schema in das Hauptfeld ein oder für einen transitiven Modus {"versions":[...]}.
  2. Füge das neue Schema in das Feld „Neues Schema“ ein.
  3. Wähle Rückwärts-, Vorwärts- oder vollständige Kompatibilität.
  4. Starte die Prüfung und lade den JSON-Bericht oder die CSV-Problemliste herunter.

Was du wissen solltest

Akzeptiert Avro-Schemas als JSON mit jeweils bis zu 1.000.000 Zeichen, höchstens 50.000 JSON-Werten und 64 Verschachtelungsebenen sowie bis zu 50 früheren Versionen für transitive Modi. Die Prüfung läuft in deinem Browser in einem Hintergrund-Worker. Downloads: ein JSON-Bericht und eine CSV-Problemliste.

Modi

Rückwärtskompatibilität bedeutet, dass das neue Schema Daten lesen kann, die mit dem alten geschrieben wurden. Das wird beim Upgrade eines Datenverbrauchers benötigt. Vorwärtskompatibilität bedeutet, dass das alte Schema mit dem neuen geschriebene Daten lesen kann. Vollständige Kompatibilität prüft beide Richtungen. Transitive Modi prüfen das neue Schema gegen jede aufgeführte frühere Version, von der ältesten bis zur neuesten, statt nur gegen die letzte.

Auflösungsregeln

Die Prüfungen folgen dem Abschnitt Schema Resolution der Avro-1.11-Spezifikation: int kann in long, float und double umgewandelt werden, long in float und double, float in double sowie string und bytes ineinander. Datensätze werden nach vollständigem Namen, unqualifiziertem Namen oder einem Alias des Leseschemas zugeordnet. Ein Feld des Leseschemas, das im Schreibschema fehlt, benötigt einen gültigen Standardwert. Eine Enumeration des Leseschemas benötigt jedes Symbol des Schreibschemas, sofern sie keinen Standardwert hat. Jeder Zweig einer Union des Schreibschemas muss im Leseschema auflösbar sein.

Grenzen der Prüfung

Geprüft wird die Avro-Schemaauflösung, nicht zusätzliche Regeln einer bestimmten Schemaregistrierung. Gültige logische decimal-Typen müssen bei bytes- und fixed-Codierungen gleiche Präzision und Skalierung haben. Unbekannte oder ungültige logische Typen verwenden den zugrunde liegenden Avro-Typ. Standardwerte von Unions werden gegen den ersten Zweig geprüft; verschachtelte Standardwerte werden rekursiv validiert.

Sinnvolle nächste Schritte