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 のデフォルトは最初の分岐に対して検査され、ネストされたデフォルトは再帰的に検証されます。

次に使えるツール