בודק תאימות של סכמת Avro
בדקו אם סכמת Avro חדשה עדיין יכולה לקרוא נתונים שנכתבו בישנה, או להפך. כל שדה, סוג וסמל enum שמונעים תאימות מופיעים עם הנתיב שלהם.
מקבל סכמות Avro בפורמט JSON, עד 1,000,000 תווים לכל סכמה, ועד 50,000 ערכי JSON ו-64 רמות קינון. במצבים טרנזיטיביים אפשר לספק עד 50 גרסאות קודמות. הבדיקה פועלת בעובד רקע בדפדפן. קובצי ההורדה הם דוח JSON ורשימת בעיות ב-CSV. סכמת ה-writer כ-JSON, או {"versions":[...]} עם סכמות קודמות מהישנה לחדשה במצבים טרנזיטיביים. עד 1,000,000 תווים. בדקו את ההגדרות לפני ההרצה.
התוצאה שלכם
בודק תאימות של סכמת Avro
- הדביקו את סכמת Avro הקודמת בתיבה הראשית, או הזינו {"versions":[...]} למצב טרנזיטיבי.
- הדביקו את הסכמה החדשה בשדה New schema.
- בחרו תאימות לאחור, קדימה או מלאה.
- הריצו את הבדיקה והורידו דוח 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 יכולים להתקדם זה לזה. רשומות מותאמות לפי שם מלא, שם ללא חבילה או כינוי של reader. שדה שקיים ב-reader ולא ב-writer זקוק לברירת מחדל תקינה. enum של reader חייב לכלול כל סמל של writer, אלא אם יש לו ברירת מחדל. כל ענף ב-union של writer חייב להיפתר ב-reader.
מגבלות הבדיקה
הבדיקה הזאת בודקת פתרון סכמת Avro ולא כללים נוספים של מאגר סכמות מסוים. לסוגים לוגיים decimal תקינים חייבים להיות אותם precision ו-scale, גם בקידודי bytes וגם בקידודי fixed. סוגים לוגיים לא מוכרים או לא תקינים משתמשים בסוג Avro הבסיסי. ברירות מחדל של union נבדקות מול הענף הראשון; ברירות מחדל מקוננות מאומתות רקורסיבית.