DataHub vs OpenMetadata ~OSSデータカタログツール比較~ 【概要編】
データカタログ、皆さんはどう運用してますでしょうか。必要だとは思うけどプライオリティーが低く特に導入していない、スプレッドシート(エクセル)管理でお茶を濁している、各クラウドベンダー標準のものをとりあえず使っている、という所も多いのかなと勝手に想像しています。
とはいえデータカタログは、データを利用したい、特に初めて触るようなデータを利用しようとしているユーザーにとっては、一番最初に触れるデータプロダクトになる可能性が高く、ここがおざなりになっていて本当に良いのだろうか、というのがこの2つのツールを比較しようと思ったきっかけです。まずは、データカタログのニーズを一身に受けて開発が進めらているこれらのツールを比較してみることで、データカタログに求められているものを把握してみようという魂胆です。
※ 以降の比較は、DataHub v0.8.34、OpenMetadata ver. 0.10.0 をもとに行っています。
目次
各ツールの基本情報
DataHub
DataHubは、LinkedIn内部のメタデータ管理に利用されていたツールがオープンソース化されたもので2019年から公開されています。OpenMetadataはじめほかのツールと比較した際の一番の特徴はこのブログポストにもあるように、スケーラブルなメタデータ管理ができるようなアーキテクチャ構造や内部のデータモデル設計がされているという点です。Kafkaを利用したイベントソーシングベースの実装でメタデータの登録と検索エンジン(ElasticSearch)内のインデックスを作成するようになっていたり、データモデルが柔軟に必要なエンティティを追加できるような実装になっています。
同社より2016年に公開されていたWhereHowsというツールがベースになっており、それを再構成したものです。
OpenMetadata
OpenMetadataは、2021年から開発が開始された新興のデータカタログツールで、データに関わる様々なメタデータを集中管理することを目指して開発されています(参考)。RedashやAirByteのように、SaaS版も用意される(もうすでに用意してある?)予定もあるようです(参考)。
このブログポストからも読み取れるように、アーキテクチャ面では反DataHubの姿勢をとっており、なるべくミニマムな構成、ミニマムなデータ構造で機能を実現できるように配慮されています。一方で、以降で比較するように機能面でもDataHubは意識されているように見え、とりあえずまずはDataHubが一般的にした機能を提供することを目標に置かれているように感じます。
ちなみに管理主体は open-metadata.org となっていますが、元々Hadoop系のコミュニティーで活動していて2021年4月までUberで働いていた Suresh Srinivas 氏が創業者である Collate, inc. 内で主に開発されているようです。
機能概要
主にサポートされている機能は以下になります。
機能 | DataHub | OpenMetadata |
---|---|---|
メタデータの検索 | キーワード検索(詳細検索可) タグによる絞り込み 階層構造からの絞り込み |
キーワード検索(詳細検索可) タグによる絞り込み 一覧からの絞り込み |
メタデータの詳細 | スキーマ テーブル・カラムの説明 タグの設定 |
スキーマ テーブル・カラムの説明 タグの設定 |
プロファイリング | レコードの数 カラムのNULLの数および比率 カラム中のdistinctな値の数および比率 統計量 値のサンプル ※参考 |
レコードの数 カラム中ののNULLの比率 カラム中のdistinctな値の比率 ユニークな値の比率 統計量 値のサンプル |
取り込み処理 | configファイル&CLI | AirFlowのタスク configファイル&CLI |
データの使用履歴 | テーブル毎のクエリ一覧 カラム毎のアクセス数 |
テーブル毎のクエリ一覧 ※参考 |
データ品質 | Great Expectations連携でテストを追加 | GUIや設定ファイルで独自仕様のテストを追加 |
データリネージ | SQLログから自動作成 dbtなどの変換ツールクエリから自動生成 BIツールのSQLから自動生成 |
SQLログから自動作成 dbtなどの変換ツールクエリから自動生成 BIツールのSQLから自動生成 |
扱えるエンティティ | データセット チャート ダッシュボード パイプライン MLモデル ML特徴量 など |
データセット チャート ダッシュボード パイプライン MLモデル など |
メタデータのバージョニング | APIで書き込む | 自動付与 |
アクセスコントロール | アクションの許可設定 リソース単位でのアクションの許可設定 ※参考 |
アクションのAllowおよびDeny設定 |
SSO | OIDC | OIDC |
構成の概要
DataHub
DataHubは上記でも説明したように、スケーラブルな処理を目指しており、ツールもコンポーネント毎に独立した構造になっています。メインのサーバーとフロントエンドが分かれているだけでなく、MySQLにKafkaやElasticSearch、neo4jも動いており、気軽に立ち上げるにはかなり大規模です(参考)。また、これに加えデータ取り込み処理を実行するためのAirFlowなどは別に設置する必要があります。
OpenMetadata
サーバー以外には、MySQLとElasticSearch、そしてデータ取り込み用のAirFlowがあればよく、比較的シンプルに構築することができます(参考)。AirFlowはGUIで構築した取り込み処理によってタスクが自動作成されるなど大きく依存していますが、既存のインスタンスがあればそれを再利用可能になっているなど、AirFlowユーザーにとっては負担の少ない構成になっています。
次回以降は、各機能の詳細、デプロイや連携のしやすさなどを細かく見ていこうと思います。