Avro-Schema-Generator
Der Avro-Schema-Generator erstellt aus einem JSON-Beispiel ein gültiges Avro-Schema mit Records, Arrays, optionalen Feldern und logischen Typen.
Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.
Avro-Schema erstellen aus Beispieldaten
Der Avro-Schema-Generator erzeugt aus einem JSON-Beispiel ein Schema für Apache Avro. Avro ist ein binäres Datenformat, das vor allem mit Kafka, Hadoop, Spark und Data Lakes genutzt wird. Jede Avro-Datei und jede Nachricht in einer Schema Registry braucht ein Schema, das Felder und Typen genau beschreibt. Statt es von Hand zu schreiben, fügen Sie eine oder mehrere Beispielnachrichten ein und erhalten ein gültiges Avro Schema aus JSON, das Sie als .avsc-Datei speichern können.
So entsteht das Schema: Objekte werden zu record-Typen mit eigenem Namen, Listen zu array, ganze Zahlen zu int oder bei Werten über 2.147.483.647 zu long, Kommazahlen zu double. Geben Sie ein Array mit mehreren Datensätzen ein, führt das Werkzeug die Typen zusammen: Ein Feld, das nur in manchen Datensätzen vorkommt oder null enthält, wird zur Union ["null", …] mit Standardwert null. Feldnamen mit Umlauten oder Bindestrichen passt der Generator an die Avro-Regeln an (Buchstaben, Ziffern, Unterstrich) und vermerkt den Originalnamen im Feld doc.
Grenzen: Ein Beispiel zeigt nie alle möglichen Werte. Prüfen Sie deshalb, ob ein Feld wirklich immer vorhanden ist, ob int auf Dauer reicht und ob Zeitstempel als timestamp-millis gewünscht sind. Enums und Maps erkennt der Generator nicht automatisch, weil sie sich aus Beispielen nicht sicher ableiten lassen. Für JSON-basierte Prüfungen eignet sich der JSON-Schema-Generator, für Typen im Code JSON in TypeScript.
Anleitung: Avro-Schema-Generator in 4 Schritten
- JSON-Beispiel in das Feld „JSON-Beispiel“ einfügen, gern als Array mit mehreren Datensätzen.
- Unter „Name des Records“ und „Namespace“ die Angaben für Ihr Schema eintragen, z. B.
Kundeundde.firma.crm. - Mit „Alle Felder optional“ und „Logische Typen erkennen“ festlegen, wie streng das Schema werden soll.
- Schema prüfen, mit „Kopieren“ übernehmen oder mit „Als .avsc herunterladen“ speichern.
Typische Anwendungsfälle
- Ein neues Kafka-Topic soll ein Avro-Schema in der Schema Registry bekommen, und es gibt bisher nur Beispielnachrichten im JSON-Format.
- Bestehende JSON-Exporte sollen in ein Data Lake mit Avro-Dateien überführt werden; das Schema dient als Startpunkt.
- Für Tests mit Spark, Flink oder Hive wird schnell ein passendes Schema für eine Beispieldatei gebraucht.
- Im Code-Review lässt sich vergleichen, ob ein handgeschriebenes Schema zu echten Nachrichten passt.
Häufige Fragen
Was ist ein Avro-Schema?
Ein Avro-Schema ist ein JSON-Dokument, das die Struktur von Avro-Daten festlegt: Name des Datensatzes, Felder, Typen und Standardwerte. Ohne Schema lassen sich Avro-Daten weder schreiben noch lesen.
Warum sollte ich mehrere Beispieldatensätze eingeben?
Aus einem einzelnen Datensatz kann der Generator nicht erkennen, welche Felder optional sind. Mit mehreren Beispielen sieht er, welche Felder fehlen oder null sind, und macht genau diese optional.
Welche logischen Typen werden erkannt?
Strings im Format JJJJ-MM-TT werden zu date (int), ISO-Zeitstempel zu timestamp-millis (long) und UUIDs zu uuid (string). Wenn Sie das nicht möchten, schalten Sie „Logische Typen erkennen“ aus.
Funktioniert das Schema mit der Confluent Schema Registry?
Ja, das erzeugte Schema ist normales Avro-JSON. Prüfen Sie vor der Registrierung die Kompatibilitätsregeln Ihres Topics, denn neue Pflichtfelder ohne Standardwert sind nicht rückwärtskompatibel.
Warum steht null an erster Stelle der Union?
Avro verlangt, dass der Standardwert eines Feldes zum ersten Typ der Union passt. Mit ["null", "string"] und "default": null ist das Feld optional und alte Daten bleiben lesbar.
Kann ich das Schema mit avro-tools prüfen?
Ja. Speichern Sie es als .avsc und lesen Sie es zum Beispiel mit java -jar avro-tools.jar compile schema kunde.avsc . ein. Ungültige Namen oder Unions meldet das Werkzeug sofort.
Das könnte auch helfen
JSON minimieren
JSON auf eine Zeile verdichten: Leerraum entfernen, Zahlen exakt erhalten, optional Schlüssel sortieren.
ÖffnenJSON in CSV umwandeln
JSON-Arrays in CSV für Excel umwandeln: verschachtelte Felder als Spalten, Semikolon oder Komma.
ÖffnenCSV in JSON umwandeln
CSV in JSON umwandeln mit automatischer Trennzeichen-Erkennung und Anführungszeichen nach RFC 4180.
ÖffnenXML formatieren und prüfen
XML einrücken, minimieren und auf Wohlgeformtheit prüfen, mit Fehlerstelle in Zeile und Spalte.
ÖffnenXML in JSON umwandeln
XML in JSON umwandeln: Attribute mit Präfix, wiederholte Elemente als Arrays, Zahlen erkannt.
ÖffnenYAML in JSON umwandeln
YAML prüfen und in JSON umwandeln: Listen, Anker, Block-Strings und mehrere Dokumente.
Öffnen