ตัวตรวจสอบความเข้ากันได้ของสคีมา Avro
ตรวจสอบว่าสคีมา Avro ใหม่ยังอ่านข้อมูลที่เขียนด้วยสคีมาเก่าได้หรือไม่ หรือกลับกัน ทุกฟิลด์ type และ enum symbol ที่ขัดขวางความเข้ากันได้จะแสดงพร้อม path
รับสคีมา Avro ในรูปแบบ JSON ได้สูงสุด 1,000,000 อักขระต่อสคีมา มีค่า JSON ไม่เกิน 50,000 ค่าและ nesting 64 ระดับ โหมด transitive รับเวอร์ชันก่อนหน้าได้สูงสุด 50 เวอร์ชัน การตรวจทำงานใน background worker ของเบราว์เซอร์ ดาวน์โหลดรายงาน JSON และรายการปัญหา CSV ได้ writer schema เป็น JSON หรือ {"versions":[...]} โดยเรียง schema ก่อนหน้าจากเก่าสุดสำหรับโหมด transitive สูงสุด 1,000,000 ตัวอักษร ตรวจสอบการตั้งค่าก่อนเริ่มประมวลผล
ผลลัพธ์ของคุณ
ตัวตรวจสอบความเข้ากันได้ของสคีมา Avro
- วาง Avro schema เก่าในช่องหลัก หรือ {"versions":[...]} สำหรับโหมด transitive
- วางสคีมาใหม่ในช่อง New schema
- เลือกความเข้ากันได้แบบย้อนหลัง ไปข้างหน้า หรือเต็มรูปแบบ
- เรียกใช้การตรวจสอบและดาวน์โหลดรายงาน JSON หรือรายการปัญหา CSV
สิ่งที่ควรทราบ
รับสคีมา Avro ในรูปแบบ JSON ได้สูงสุด 1,000,000 อักขระต่อสคีมา มีค่า JSON ไม่เกิน 50,000 ค่าและ nesting 64 ระดับ โหมด transitive รับเวอร์ชันก่อนหน้าได้สูงสุด 50 เวอร์ชัน การตรวจทำงานใน background worker ของเบราว์เซอร์ ดาวน์โหลดรายงาน JSON และรายการปัญหา CSV ได้
โหมด
ความเข้ากันได้ย้อนหลังหมายถึงสคีมาใหม่อ่านข้อมูลที่เขียนด้วยสคีมาเก่าได้ ซึ่งจำเป็นต่อการอัปเกรด consumer ความเข้ากันได้ไปข้างหน้าหมายถึงสคีมาเก่าอ่านข้อมูลที่เขียนด้วยสคีมาใหม่ได้ การตรวจแบบเต็มตรวจทั้งสองทิศทาง โหมด transitive ตรวจสคีมาใหม่กับทุกเวอร์ชันก่อนหน้าที่ระบุ เรียงจากเก่าไปใหม่ แทนที่จะตรวจเฉพาะเวอร์ชันล่าสุด
กฎการแก้ความหมาย
การตรวจทำตามส่วน Schema Resolution ของข้อกำหนด Avro 1.11: int เลื่อนชนิดเป็น long, float และ double; long เป็น float และ double; float เป็น double; และ string กับ bytes เลื่อนชนิดถึงกันได้ record จับคู่ตามชื่อเต็ม ชื่อที่ไม่มี package หรือ reader alias ฟิลด์ที่ reader มีแต่ writer ไม่มีต้องมี default ที่ถูกต้อง reader enum ต้องมีทุก symbol ของ writer เว้นแต่จะมี default ทุก branch ของ writer union ต้อง resolve ได้ใน reader
ข้อจำกัดของการตรวจ
ตรวจสอบ Avro schema resolution ไม่ใช่กฎเพิ่มเติมของ schema registry ใดโดยเฉพาะ decimal logical types ที่ถูกต้องต้องมี precision และ scale เท่ากัน ทั้งแบบ bytes และ fixed logical type ที่ไม่รู้จักหรือไม่ถูกต้องจะใช้ Avro type พื้นฐาน ตรวจ union default กับ branch แรก และตรวจ default ที่ซ้อนกันแบบ recursive