【すきーまれじすとり】
スキーマレジストリ とは?
最終更新:
💡 データの形を共有する、型定義の図書館
データの項目や型を決めるスキーマを登録し、バージョンや互換性を管理する仕組み。Kafkaなどのデータ通信で、送り手と受け手が形式を共有するために使う。互換性の検査範囲や対応形式は製品と設定によって異なる。
📌 このページのポイント
何を登録する場所なの?
注文イベントならorder_idやamountのような項目と、その型などを定義するスキーマを登録するよ。注文データそのものを保管する場所とは役割が違うんだ。
どうやって送り手と受け手で共有する?
後方互換と前方互換は、どちら向き?
項目を増やしたら、必ず安全?
形式や項目の定義、互換性の設定によって変わるよ。たとえばAvroで項目を追加するとき、新しい読み手が古いデータを読むには、その項目の既定値が必要になる。項目の意味を変える影響まで自動で保証するものではないね。
Kafkaでしか使えないの?
もっと詳しく知りたい人へ
ConfluentのBACKWARDなら、すべての古い版と互換性がある?
BACKWARDは原則として直前の版との比較で、すべての登録済みの版を直接検査する設定ではありません。全過去版との後方互換性を検査するにはBACKWARD_TRANSITIVEを使います。前方互換や双方向にもTRANSITIVE設定があります。読み手が使う版と、過去に保存されたデータを含めて設定を選びます。
まとめ:ざっくりこれだけ覚えればOK!
「スキーマレジストリ」って出てきたら「データの型定義と、その変更を管理する場所」と思えばだいたいOK!
📖 おまけ:英語の意味
「Schema Registry」 = スキーマの登録管理所
💬 schema(データ構造の定義)+ registry(登録・管理する場所)だよ。コンテナイメージのDockerレジストリと同じ発想で、データの「型」を登録・管理するんだ