Έλεγχος συμβατότητας σχημάτων Avro
Ελέγξτε αν ένα νέο σχήμα Avro μπορεί ακόμη να διαβάσει δεδομένα γραμμένα με το παλιό ή το αντίστροφο. Κάθε πεδίο, τύπος και σύμβολο enum που εμποδίζει τη συμβατότητα εμφανίζεται μαζί με τη διαδρομή του.
Δέχεται σχήματα Avro σε JSON έως 1.000.000 χαρακτήρες το καθένα, με έως 50.000 τιμές JSON και 64 επίπεδα εμφώλευσης, καθώς και έως 50 παλαιότερες εκδόσεις για μεταβατικές λειτουργίες. Ο έλεγχος εκτελείται σε εργασία παρασκηνίου του προγράμματος περιήγησης. Διατίθενται για λήψη αναφορά JSON και κατάλογος προβλημάτων CSV. Σχήμα εγγραφέα ως JSON ή {"versions":[...]} με παλαιότερα σχήματα από το παλαιότερο προς το νεότερο για μεταβατικές λειτουργίες. Έως 1.000.000 χαρακτήρες. Εξετάστε τις ρυθμίσεις πριν από την εκτέλεση.
Το αποτέλεσμά σας
Έλεγχος συμβατότητας σχημάτων Avro
- Επικολλήστε το παλαιότερο σχήμα Avro στο κύριο πεδίο ή {"versions":[...]} για μεταβατική λειτουργία.
- Επικολλήστε το νέο σχήμα στο πεδίο Νέο σχήμα.
- Επιλέξτε συμβατότητα προς τα πίσω, προς τα εμπρός ή πλήρη.
- Εκτελέστε τον έλεγχο και κατεβάστε την αναφορά JSON ή τον κατάλογο προβλημάτων CSV.
Τι να περιμένετε
Δέχεται σχήματα Avro σε JSON έως 1.000.000 χαρακτήρες το καθένα, με έως 50.000 τιμές JSON και 64 επίπεδα εμφώλευσης, καθώς και έως 50 παλαιότερες εκδόσεις για μεταβατικές λειτουργίες. Ο έλεγχος εκτελείται σε εργασία παρασκηνίου του προγράμματος περιήγησης. Διατίθενται για λήψη αναφορά JSON και κατάλογος προβλημάτων CSV.
Λειτουργίες
Συμβατότητα προς τα πίσω σημαίνει ότι το νέο σχήμα μπορεί να διαβάσει δεδομένα που γράφτηκαν με το παλιό, κάτι που χρειάζεται κατά την αναβάθμιση ενός καταναλωτή. Συμβατότητα προς τα εμπρός σημαίνει ότι το παλιό σχήμα μπορεί να διαβάσει δεδομένα που γράφτηκαν με το νέο. Ο πλήρης έλεγχος εξετάζει και τις δύο κατευθύνσεις. Οι μεταβατικές λειτουργίες ελέγχουν το νέο σχήμα έναντι κάθε παλαιότερης έκδοσης που δηλώνετε, ξεκινώντας από την παλαιότερη, όχι μόνο από την πιο πρόσφατη.
Κανόνες επίλυσης
Οι έλεγχοι ακολουθούν την ενότητα Schema Resolution της προδιαγραφής Avro 1.11: το int προάγεται σε long, float και double· το long σε float και double· το float σε double· και τα string και bytes μετατρέπονται το ένα στο άλλο. Οι εγγραφές αντιστοιχίζονται με βάση το πλήρες όνομα, το μη πλήρως προσδιορισμένο όνομα ή ένα alias του αναγνώστη. Πεδίο αναγνώστη που δεν υπάρχει στον εγγραφέα χρειάζεται έγκυρη προεπιλογή. Ένα enum αναγνώστη χρειάζεται κάθε σύμβολο του εγγραφέα, εκτός αν έχει προεπιλογή. Κάθε κλάδος της ένωσης του εγγραφέα πρέπει να μπορεί να επιλυθεί από τον αναγνώστη.
Όρια ελέγχου
Αυτό ελέγχει την επίλυση σχήματος Avro και όχι πρόσθετους κανόνες συγκεκριμένου μητρώου σχημάτων. Έγκυροι λογικοί δεκαδικοί τύποι πρέπει να έχουν ίδια ακρίβεια και κλίμακα τόσο για κωδικοποιήσεις bytes όσο και fixed. Άγνωστοι ή μη έγκυροι λογικοί τύποι χρησιμοποιούν τον υποκείμενο τύπο Avro. Οι προεπιλογές ένωσης ελέγχονται με βάση τον πρώτο κλάδο· οι εμφωλευμένες προεπιλογές επικυρώνονται αναδρομικά.