LinkedInのような巨大データ組織が、自社のデータ問題を解くために作ったツールが、OSS化して世に出る。DataHubは、そんな出自を持つデータカタログです。2019年に内部ツールを公開し、いまではOSSデータカタログの代表格として、大企業の本番運用に広く採用されています。

DataHubの中核は、すべてを「メタデータグラフ」として扱う設計思想です。テーブル、ダッシュボード、ユーザー、ジョブ、ポリシー、それらの関係を「エンティティ」と「アスペクト」で表現します。拡張性が高い反面、概念の理解にコストがかかるツールでもあります。実装と運用を順に押さえます。

DataHubのアーキテクチャ

コンポーネント役割
FrontendWeb UI(React)
GMS(Metadata Service)メタデータAPI・グラフサービス
Metadata StoreMySQL/Postgres + Elasticsearch + Neo4j(オプション)
Kafkaメタデータイベントのストリーム
Ingestion FrameworkPythonの取り込みフレームワーク

マイクロサービス的な構成で、Kafkaを介してメタデータイベントが流れます。スケーラビリティは高いですが、本番運用には複数コンポーネントの管理スキルが要ります。

中核概念:Entity と Aspect

DataHubのすべては「Entity」と「Aspect」で表現されます。

概念意味
Entityカタログに登録される対象(Dataset、Dashboard、User等)
AspectEntityの特定の側面(オーナー、タグ、リネージ、品質等)
URNEntityのグローバルな識別子

「テーブルA」というEntityに、「Owner」アスペクト、「Tags」アスペクト、「Lineage」アスペクトが紐づく、という形でメタデータを表現します。新しい種類の情報を持ちたい場合は、新しいAspectを定義して足せます。この拡張性が、DataHubが大規模で生き残っている理由のひとつです。

メタデータ取り込み

DataHubの取り込みは、Python製のIngestion Frameworkで行います。設定YAMLにソースとシンクを書き、`datahub ingest`コマンドで実行します。

# recipe.yml
source:
  type: snowflake
  config:
    account_id: my_account
    warehouse: COMPUTE_WH
    username: ${SNOWFLAKE_USER}
    password: ${SNOWFLAKE_PASSWORD}
    role: ACCOUNTADMIN

sink:
  type: datahub-rest
  config:
    server: http://localhost:8080
# 取り込み実行
datahub ingest -c recipe.yml

30以上のソース(Snowflake、BigQuery、dbt、Tableau、Looker、Airflow等)が対応しており、設定だけで取り込みが組めます。スケジュール実行はAirflowやcronから呼ぶか、DataHub UI上のスケジューラを使います。

リネージ:列レベルの追跡

DataHubの強みのひとつが、列レベル(カラムレベル)のリネージです。テーブル単位だけでなく、「このカラムは上流のどのカラムから派生しているか」までトレースできます。

dbtとの統合では、modelからのリネージだけでなく、modelの各カラムが上流のどのカラムから生成されたかも追えます。「customer_idの定義が変わるとどのダッシュボードに影響するか」が、列単位で把握できます。dbt実装の基本はdbt実装ガイドを参照してください。

ガバナンス機能

機能内容
Tags柔軟なタグ付け(PII、Critical等)
Glossary Terms用語集と、データ資産との関連付け
Domains組織の領域(Sales、Finance等)でグルーピング
Policies誰が何を見られるかのアクセスポリシー
Assertionsデータ品質ルールの管理

「データを誰がどう扱うか」を組織のポリシーとして管理する機能が、近年のDataHubでは厚みを増しています。データガバナンスの主戦場として、DataHubは強い立ち位置にあります。

DataHub OSSとAcryl Cloud

DataHub OSSAcryl Cloud
提供形態OSS自社デプロイマネージドSaaS
運用負担あり(複数コンポーネント)無し
費用無料+インフラ規模に応じた課金
サポートコミュニティ商用サポート

DataHub OSSは本番運用に堪える成熟度がありますが、複数コンポーネントの管理に運用工数がかかります。Acryl Cloudは「DataHubの作者が運営する商用版」で、運用負担を肩代わりします。中規模以上で「DataHubの機能は欲しいが、自社で運用したくない」場合の現実解です。

運用上のハマりどころ

  • 本番運用のインフラ要件が大きい:MySQL/Postgres + Elasticsearch + Kafka + GMS + Frontendを動かす必要があり、Kubernetes運用が前提。
  • UIがエンジニア寄り:Atlanに比べてビジネス側に対するアフォーダンスが弱い。ビジネス側の利用には、教育とテンプレが必要。
  • 取り込み設定の管理:ソースが増えるとYAML(recipe)が増える。IaCで管理する設計が要る。
  • カスタマイズの自由度の罠:拡張できる反面、組織でルールを決めないとメタデータがバラつく。Aspect命名のガイドラインを早めに作る。

向く・向かない場面

  • 向く:OSSで自社運用したい、Kubernetes運用ができる、列レベルリネージが欲しい、エンタープライズ規模で拡張性重視、エンジニア中心のチーム
  • 向かない:UXとコラボを重視(→Atlan)、オールインワンで素早く始めたい(→OpenMetadata)、運用工数を取れない中小規模

まとめ

  • DataHubはLinkedIn発のOSSデータカタログ。メタデータグラフモデルが特徴。
  • Entity+Aspectの拡張可能な設計で、大規模・複雑な組織でも生き残る。
  • 列レベルリネージ、Glossary、Domains、Policiesで本格的なガバナンスを実装できる。
  • OSS本番運用は複数コンポーネント管理が必要。Acryl Cloudが商用代替。
  • エンジニア中心・OSS志向・規模重視の組織で強い選択肢。

全体像はデータガバナンスとカタログツール選定、隣接の選択肢はAtlan とはOpenMetadata とはにあります。DataHub導入や運用設計の壁打ちは、DE-STKの初回相談(30分・無料)もご利用ください。

よくある質問(FAQ)

Q. DataHubの本番運用にはどのくらいの体制が必要ですか?

A. 専任のSREまたはデータプラットフォームエンジニアが0.5〜1名は必要という目安です。Kafka・Elasticsearchを含むスタックの運用、アップデート対応、取り込みパイプライン管理、ユーザーオンボーディングが日常業務に入ります。「カタログを使うチーム」と「カタログを運用するチーム」は別人で考えるのが現実的です。

Q. データ品質のAssertions機能は十分ですか?

A. 基本的なルール(行数・null・unique等)はDataHub Assertionsで宣言できます。けれども専用ツール(Great Expectations、Soda、Monte Carlo等)の機能とは差があります。dbtテスト結果を取り込んで表示する、外部品質ツールの結果を集約する、といった「ハブ的」な使い方が現実解です。品質ツールの選定はデータ品質ツール選定ガイドを参照してください。

Q. AtlanとDataHubで悩んだら、どう決めますか?

A. 主な軸は「マネージドの完成度+UXを買うか」「OSSで自社制御を取るか」です。エンタープライズでデータチームの予算が大きく、業務側を本気で巻き込むならAtlan。エンジニア中心で、データプラットフォームの一部として深く統合したいなら、DataHub(OSSまたはAcryl Cloud)が向きます。実データでのPoC比較が判断には最も効きます。

Q. メタデータの履歴は残りますか?

A. 残ります。DataHubはKafkaベースのイベントストリームでメタデータ変更を記録するので、「いつ・誰が・何を変えたか」が監査可能です。「カラム説明が3ヶ月前に変わった」「品質テストが先月から失敗し始めた」といった追跡ができます。エンタープライズのコンプライアンス要件でも、この監査ログが評価ポイントになります。

▼ このトピックをポチポチ学ぶ

データガバナンスとカタログ

関連記事を順序立てて読みながら、ステップごとに4択クイズで理解を確認できる学習パスです。登録不要・進捗自動保存。

学習パスを始める →