happytails.ai
Polski

Kontrola zgodności schematów Avro

Sprawdź, czy nowy schemat Avro nadal odczytuje dane zapisane według starego lub odwrotnie. Każde pole, typ i symbol wyliczenia blokujące zgodność są podane wraz ze ścieżką.

Przyjmuje schematy Avro w formacie JSON, każdy do 1 000 000 znaków, z maksymalnie 50 000 wartości JSON i 64 poziomami zagnieżdżenia, oraz do 50 wcześniejszych wersji w trybach przechodnich. Kontrola działa w przeglądarce w osobnym zadaniu w tle. Do pobrania są raport JSON i lista problemów CSV. Schemat modułu zapisującego jako JSON lub {"versions":[...]} z wcześniejszymi schematami od najstarszego dla trybów przechodnich. Do 1000000 znaków. Sprawdź ustawienia przed uruchomieniem.

Twój wynik

Zgłoś problem lub podziel się pomysłem.

Kontrola zgodności schematów Avro
  1. Wklej wcześniejszy schemat Avro w głównym polu lub {"versions":[...]} dla trybu przechodniego.
  2. Wklej nowy schemat w polu Nowy schemat.
  3. Wybierz zgodność wsteczną, w przód lub pełną.
  4. Uruchom kontrolę i pobierz raport JSON lub listę problemów CSV.

Warto wiedzieć

Przyjmuje schematy Avro w formacie JSON, każdy do 1 000 000 znaków, z maksymalnie 50 000 wartości JSON i 64 poziomami zagnieżdżenia, oraz do 50 wcześniejszych wersji w trybach przechodnich. Kontrola działa w przeglądarce w osobnym zadaniu w tle. Do pobrania są raport JSON i lista problemów CSV.

Tryby

Zgodność wsteczna oznacza, że nowy schemat może odczytać dane zapisane według starego, co jest potrzebne przy aktualizacji odbiorcy danych. Zgodność w przód oznacza, że stary schemat może odczytać dane zapisane według nowego. Zgodność pełna sprawdza obie strony. Tryby przechodnie porównują nowy schemat z każdą podaną wcześniejszą wersją, od najstarszej, a nie tylko z ostatnią.

Reguły dopasowywania schematów

Kontrole stosują sekcję Schema Resolution specyfikacji Avro 1.11: int może być rozszerzony do long, float i double; long do float i double; float do double; string i bytes wzajemnie do siebie. Rekordy pasują według pełnej nazwy, nazwy niekwalifikowanej lub aliasu modułu odczytującego. Pole modułu odczytującego, którego nie ma w module zapisującym, wymaga prawidłowej wartości domyślnej. Wyliczenie modułu odczytującego musi obsługiwać każdy symbol modułu zapisującego, chyba że ma wartość domyślną. Każda gałąź unii modułu zapisującego musi dać się dopasować w module odczytującym.

Ograniczenia kontroli

To narzędzie sprawdza dopasowywanie schematów Avro, a nie dodatkowe reguły konkretnego rejestru schematów. Prawidłowe typy logiczne decimal muszą mieć równą precyzję i skalę, zarówno dla kodowania bytes, jak i fixed. Nieznane lub nieprawidłowe typy logiczne używają bazowego typu Avro. Wartości domyślne unii są sprawdzane względem pierwszej gałęzi; zagnieżdżone wartości domyślne są sprawdzane rekurencyjnie.

Przydatne kolejne kroki