マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2020.01.01
【OSS情報アーカイブ】Schema Registry


※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。
コンテンツ
「Schema Registry」とは
基本情報
概要
Schema Registry(スキーマ レジストリ)とは、メッセージングシステム「Apache Kafka」ベースのストリームデータ基盤「Confluent Platform」の1コンポーネントです。一元的なスキーマ管理機能を提供します。
ストリームデータ基盤「Confluent Platform」とは
Confluent Platformとは、大量データを管理可能なストリームデータ基盤です。さまざまなITシステムから集まる構造化されていないものの価値あるデータ群に対して、統一的で容易なアクセスを可能とします。
Confluent Platformは、「Apache Kafka」をコアとして使用し、「Schema Registry」「Rest Proxy」「Camus(Hadoop Cluster向けMapReduce実装)」などのコンポーネントを統合し、一貫性と柔軟性を持つストリームデータ処理基盤を容易に構築できます。各コンポーネントはインクリメンタルに追加可能です。
Confluent Platformは、Apache Kafkaプロジェクトにコミットしており、Kafka(OSSバージョン)に対して常時互換性を保持しています。
「Schema Registry」基本説明
「Schema Registry」は「Confluent Platform」の1コンポーネントで、スキーマ管理に対して一元管理されたシリアライズ機構を提供します。
主な特徴
「Apache Kafka」のスキーマ定義問題
「Apache Kafka」などのメッセージングサービスを利用する場合、共通フォーマットを定義しておき、それに従ったメッセージを使用します。
しかし、システム拡張などにより、「新たなフォーマットを取り込まなければならなくなる」などのフォーマット互換性維持が課題となります。
スキーマ定義言語「Avro」
フォーマット定義としてよく使われる「JSONフォーマット」には弱点があります。
1.JSON自体に構造(スキーマ)定義を入れ込んだ場合、各フィールドに形式付記をしなければならず煩雑
2.構造定義なしの場合、予期しないデータが入り込む危険性がある
そのような、データスキーマ問題を解消するため、スキーマ定義言語「Avro」が使われ始めています。
「Avro」の特徴
・「スキーマ変化に対応できる仕組み」を有している
・スキーマ定義はJSON
・シリアライズ時+デシリアライズ時にこのスキーマを使用
→シリアライズ化したデータからはフィールド名が除去される(データサイズ縮小)
「Avro」の互換性確保パターン
1.後方互換(Backward Compatibility)
2.前方互換(Forward Compatibility)
3.完全互換(Full Compatibility)
「Schema Registry」概要
「Schema Registry」は、「Apache Kafka」をバックエンドに使用し、Avroスキーマ用分散ストレージ層で、一元管理可能なシリアライズ機構を提供します。RESTfulインターフェイスを提供します。
「Apache Kafka」の各Topicに対して使用された全バージョンのスキーマを管理します。すべてのスキーマのバージョン履歴を保存し、複数の互換性設定によりスキーマの進化を可能にします。
ユーザの定義した互換性設定に応じた変更のみを可能とする安全なスキーマ変更環境を提供することで、予期せぬ問題発生を防止します。
ライセンス情報
Schema Registryのライセンスは「Apache License Version 2.0」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
- 🏆ランク1位🏆
【OSS情報アーカイブ】SonarQube - 🏆ランク2位🏆
【OSS情報アーカイブ】NetBSD - 🏆ランク3位🏆
【OSS情報アーカイブ】nano - 🏆ランク4位🏆
【無料で使える】「 プロジェクト管理 」ツールまとめ - 🏆ランク5位🏆
【OSS情報アーカイブ】K-9 Mail - 🏆ランク6位🏆
【OSS情報アーカイブ】fping - 🏆ランク7位🏆
【OSS情報アーカイブ】Snort - 🏆ランク8位🏆
【OSS情報アーカイブ】Concourse CI - 🏆ランク9位🏆
【OSS情報アーカイブ】JBoss Enterprise Application Platform - 🏆ランク10位🏆
【OSS情報アーカイブ】Cyrus IMAP