happytails.ai
한국어

Avro 스키마 호환성 검사기

새 Avro 스키마가 이전 스키마로 기록된 데이터를 계속 읽을 수 있는지, 또는 그 반대인지 확인하세요. 호환성을 막는 모든 필드, 유형, enum 기호가 경로와 함께 나열됩니다.

각 Avro 스키마는 JSON 기준 최대 1,000,000자이며 JSON 값은 최대 50,000개, 중첩은 최대 64단계까지 허용합니다. 트랜지티브 모드에서는 이전 버전을 최대 50개까지 지정할 수 있습니다. 검사는 브라우저의 백그라운드 워커에서 실행됩니다. JSON 보고서와 문제 목록 CSV를 다운로드할 수 있습니다. writer 스키마를 JSON으로 넣거나 전이 모드에서 이전 스키마를 오래된 순서부터 배열한 {"versions":[...]}를 넣으세요. 최대 1,000,000자까지 입력할 수 있습니다. 실행하기 전에 설정을 검토하세요.

내 결과

문제를 신고하거나 아이디어를 공유해 주세요.

Avro 스키마 호환성 검사기
  1. 주 입력란에 이전 Avro 스키마를 붙여 넣거나, 전이 모드에서는 {"versions":[...]}를 붙여 넣으세요.
  2. New schema 필드에 새 스키마를 붙여 넣으세요.
  3. 하위, 상위 또는 전체 호환성을 선택하세요.
  4. 검사를 실행하고 JSON 보고서 또는 문제 목록 CSV를 다운로드하세요.

알아두세요

각 Avro 스키마는 JSON 기준 최대 1,000,000자이며 JSON 값은 최대 50,000개, 중첩은 최대 64단계까지 허용합니다. 트랜지티브 모드에서는 이전 버전을 최대 50개까지 지정할 수 있습니다. 검사는 브라우저의 백그라운드 워커에서 실행됩니다. JSON 보고서와 문제 목록 CSV를 다운로드할 수 있습니다.

모드

하위 호환성은 새 스키마가 이전 스키마로 기록된 데이터를 읽을 수 있다는 뜻이며, 소비자를 업그레이드할 때 필요합니다. 상위 호환성은 이전 스키마가 새 스키마로 기록된 데이터를 읽을 수 있다는 뜻입니다. 전체 호환성은 두 방향을 모두 확인합니다. 트랜지티브 모드는 최신 버전만 확인하는 대신 지정한 모든 이전 버전을 가장 오래된 것부터 새 스키마와 비교합니다.

해결 규칙

Avro 1.11 사양의 Schema Resolution 절을 따릅니다. int는 long, float, double로 승격되고, long은 float와 double로, float는 double로 승격되며, string과 bytes는 서로 변환됩니다. 레코드는 전체 이름, 패키지를 뺀 이름 또는 reader 별칭으로 매칭됩니다. writer에 없는 reader 필드에는 유효한 기본값이 필요합니다. reader enum에는 기본값이 없는 한 writer의 모든 기호가 있어야 합니다. writer union의 각 분기는 reader에서 해석될 수 있어야 합니다.

검사의 한계

이 검사는 Avro 스키마 해석을 확인하며 특정 스키마 레지스트리의 추가 규칙은 확인하지 않습니다. 유효한 decimal 논리 유형은 bytes 및 fixed 인코딩 모두에서 precision과 scale이 같아야 합니다. 알 수 없거나 유효하지 않은 논리 유형은 기반 Avro 유형을 사용합니다. union 기본값은 첫 번째 분기를 기준으로 확인하며 중첩 기본값은 재귀적으로 검증합니다.

다음에 할 수 있는 작업