メタデータ管理OSS個人的まとめ

いろいろ触ったのでまとめる。(今後追記予定あり)

TL;DR

データガバナンスツールのOSSにおいて、世間的にデファクトスタンダード的なものも、個人的にこれは!というものも見た限りなかった。 テクニカルメタデータの収集はだいたいどこも同じな一方、ビジネスメタデータ、リネージへの取り組みには顕著な差がある。 お金があるなら有償製品を導入したほうがいいかもしれない。 1 データガバナンスツールは、JIRAみたいなビジネスツールとして捉えるべきという所感。

変更履歴

  • 2020-05-18
    • Egeriaを追加

前提と関心のある領域

  • ベンチャーではなく様々な領域の事業を扱う大きめの企業。
  • マルチクラウド、マルチベンダー、マルチプラットフォーム。データストアは数百以上。
  • ETL基盤、データ分析基盤はすでに存在し、内製のメタデータ管理ツールもある。
  • データ利活用よりもガバナンスを強化したい。

調べたOSS一覧と諸元

プロダクト名 開発元 ライセンス リポジトリ
Amundsen lyft Apache Licence 2.0 https://github.com/lyft/amundsen
datahub linkedin Apache Licence 2.0 https://github.com/linkedin/datahub
metacat Netflix Apache Licence 2.0 https://github.com/Netflix/metacat
Apache Atlas Apache Foundation Apache Licence 2.0 https://github.com/apache/atlas
Egeria ODPi Apache Licence 2.0 https://github.com/odpi/egeria

Amundsen

  • フロント、バックエンドともにPython
  • 検索にElasticsearch、メタデータのストアにNeo4jを利用。
  • Pull型2

pros

  • マイクロサービス的に画面のサービス、検索のサービス、メタデータのサービスに別れている。
  • データ収集処理が抽象化されており再利用しやすそう。

cons

  • ビジネスメタデータを入れる余地は少ない。
  • メタデータのストアをNeo4jからApache Atlasに入れ替える改修が行われておりいまからの導入は不確実性が高いように思えた。

datahub

  • もともとWhereHowsというモノリシックなガバナンスツールのリプレイスで生まれた。
  • 検索にElasticsearch、メタデータのストアにNeo4jを利用。3
  • Push型で、kafkaを通じてCDCを処理できる。
  • Java

pros

  • テーブルレベルについてオーナーシップを細かく設定できる。
    • DB単位にはできない
  • avroでスキーマ管理されているので厳格な運用ができる。
  • データの上流下流を定義できる。(リネージ)
  • データセットが非推奨であることを明示的に設定可能。-> ライフサイクル管理の概念がある

cons

  • 画面からデータを投入することができない。すべてAPI経由。人間の手を入れないほうが管理が楽という割り切りかもしれない。
  • elasticsearchのバージョンが5系。ESの最新バージョンは8なので結構な遅れがある。(ES自体に破壊的変更が入ってる)

metacat

  • 画面のないAPIサーバ。UIは非公開か。
  • Java
  • Auditログ機能がある。

(とっつきが悪くあまり調べられなかった…)

Apache Atlas

pros

  • 強力な型システムにより、どんなミドルウェアにも対応できる。
  • ビジネスメタデータも型システムで表現すれば格納できる。
  • ClassificationとLineageを組み合わせて、Classificationの伝播を表現できる。
    • あるテーブルにPII(個人を識別できる情報)が入っるとフラグづけすると、 それをETLした先のテーブルにも自動的にPIIのフラグが設定される。
  • Lineageが強そう。

cons

  • 型システムが強力だが自分で設計する必要がある。概念の学習コストも高い。
  • その汎用性ゆえか、画面の動線がいまいちで、すべての情報がフラットに見える。
    • APIが公開されているので自分たちで実装したほうがよいと思った。

Egeria

https://github.com/odpi/egeria/blob/master/open-metadata-publication/website/open-metadata-types/Figure-1-Open-Metadata-Areas.png?raw=true

pros

cons

  • コンポーネントがやたら多い。
  • webuiが見当たらない? どうやって動かすんだこれ。

まとめ

いずれのOSSも成熟してるとは言い難い。 metacatの記事でコメントされていたが、基本的に各社のビジネスにフォーカスした必要な分だけの機能となっており、再利用は難しい。 とりわけ、対応データソースにはムラがあり、実際の収集をする実装が公開されていないため、結局自分たちで実装する必要がある。また、ガバナンスの観点ではほぼカバーされておらず、いわゆる分析用途がフォーカスされている感がある。

メタデータストア部分と、データグラフ構築は再利用できるかもしれない。 APIを利用したWebUI、ワークフローなどはスクラッチするべきか。 いずれも各プロダクトの独自スキーマ定義を理解する必要があり、学習コストは高い。

未調査または有償製品

プロダクト名 開発元 有償製品 紹介記事
Dataportal AirBnb Democratizing Data at Airbnb - Airbnb Engineering & Data Science - Medium
Alation Alation o https://www.alation.com/
Databook Uber https://eng.uber.com/databook/
AWS Glue DataCatalog Amazon o https://docs.aws.amazon.com/ja_jp/glue/latest/dg/populate-data-catalog.html
GCP Data Catalog google o https://cloud.google.com/data-catalog
Collibra Collibra o https://www.collibra.com/
Ground UC Berkeley’s RISE Lab http://www.ground-context.org/

Appendix

[^4] 2020-05-18 追記


  1. まだ基礎調査段階だが、有償製品はCollibraがよさそうに見える]

  2. To Push or Pull? That is the question. | SAP Blogs

  3. Neo4j人気だな。