🐷

datahubに入門してみた

2023/08/07に公開

入門してみた系のdatahubです!
最近データカタログにハマっています。特にopenMetadataとか。。。
今回はデータカタログのOSS製品datahubに入門してみます!

datahubとは

https://datahubproject.io/

公式ドキュメントより抜粋
DataHubは、データの発見、データの可観測性、
フェデレーテッドガバナンスを可能にし、
データエコシステムの複雑さを和らげる拡張可能なメタデータプラットフォームです。

機能

datahubの機能は大きく以下3つあります。

    1. Search and Discovery
    1. Modern Data Governance
    1. DataHub Administration

1. Search and Discovery(検索と発見)

1.1 あらゆるデータスタックからデータを検索発見します

公式ドキュメントより抜粋
DataHubの統一された検索エクスペリエンスは、データベース、
データレイク、BIプラットフォーム、MLフィーチャーストア、
オーケストレーションツールなどを横断して検索結果を表示します。

1.2 エンドツーエンドでリネージをトレースします

公式ドキュメントより抜粋
プラットフォーム、データセット、ETL/ELTパイプライン、
チャート、ダッシュボードなど、さまざまな経路をたどることで、
データのエンド・ツー・エンド・ジャーニーをすばやく理解できます。

1.3 データ変更やテーブル変更などで下流の依存関係に与える影響を特定します

公式ドキュメントより抜粋
影響度分析を使用して、変更によって影響を受ける可能性のあるエンティティを事前に特定する。

1.4 メタデータの360°ビューを提供します

技術的なメタデータと論理的なメタデータを組み合わせて、
データ・エンティティの360°ビューを提供します。
データセットの統計情報を生成して、データの形状と分布を理解します。

2. Modern Data Governance(モダンデータガバナンス)

2.1 リアルタイムな各種処理をサポート

公式ドキュメントより抜粋
通知: DataHub上で変更があった場合、組織固有の通知を生成します。
      例えば、データ資産に "PII "タグが追加された場合、ガバナンスチームにメールを送信します。
ワークフローの統合: DataHubを組織内のワークフローに統合します。
                  例えば、データセットに特定のタグや用語が提案された場合、Jiraチケットを作成します。
同期: DataHubでの変更をサードパーティシステムに同期します。
      例えば、DataHubで追加したタグをSnowflakeに反映します。
監査: DataHub上で誰がどのような変更を行ったかを時系列で監査します。

2.2 エンティティの所有権を管理する

公式ドキュメントより抜粋
ユーザーやユーザーグループへのエンティティの所有権の割り当てを迅速かつ簡単に行うことができます

2.3 タグ、用語集、ドメインによる管理

データ所有者がデータ・エンティティを管理できるようにします

公式ドキュメントより抜粋
タグ: 検索と発見のためのツールとして機能する、非公式で緩やかに管理されたラベル。
      正式な中央管理はない。
用語集用語: 任意の階層構造を持つ管理された語彙で、一般的にビジネスの中核概念や測定値を記述するために使用される。
ドメイン: データメッシュにおいて、部門別(財務、マーケティングなど)やデータ製品別にエンティティを整理するために広く使用されている。

3. DataHub Administration(DataHub管理)

3.1 ユーザー、グループ、アクセスポリシーの作成

DataHub管理者はポリシーを作成し、誰がどのリソースに対してどのようなアクションを実行できるかを定義することができます。
新しいポリシーを作成すると、以下の項目を定義することができます

公式ドキュメントより抜粋
ポリシーの種類: プラットフォーム(ユーザー、グループ、ポリシーの管理など、DataHubプラットフォームのトップレベルの権限)またはメタデータ(所有権、タグ、ドキュメントなどを操作する権限)。
リソースの種類: データセット、ダッシュボード、パイプラインなど、リソースの種類を指定します。
権限: 所有者の編集、ドキュメントの編集、リンクの編集などの権限を選択します。
      ユーザおよび/またはグループ - 関連するユーザとグループを割り当てます。
      どのグループに属しているかに関係なく、リソースの所有者にポリシーを割り当てることもできます。

3.2 UIからメタデータを取り込む

公式ドキュメントより抜粋
DataHubのユーザーインターフェイスを使用して、メタデータのバッチインジェストを作成、設定、スケジュール、実行できます。
これにより、カスタム統合パイプラインの操作に必要なオーバーヘッドを最小限に抑え、DataHubへのメタデータの取り込みが容易になります。

インストールしてみる

動作環境

  • mac book pro 2018 15inch RAM16 SSD512
  • Python 3.9.6

インストール手順

以下公式のドキュメントを参考にし、インストール作業を行います。
https://datahubproject.io/docs/quickstart/

acryl-datahubのインストール
python3 -m pip install --upgrade acryl-datahub
datahubコマンドにPATHが通っている場合
datahub docker quickstart
datahubコマンドにPATHが通ってない場合
/Users/******/Library/Python/3.9/bin/datahub docker quickstart
インストールログ
~略~
..
✔ DataHub is now running
Ingest some demo data using `datahub docker ingest-sample-data`,
or head to http://localhost:9002 (username: datahub, password: datahub) to play around with the frontend.
Need support? Get in touch on Slack: https://slack.datahubproject.io/

ブラウザからlocalhost:9002にアクセスしてみる

datahubのログイン画面が表示されるので、datahubでユーザ名、パスワードを入力し、ログインしてみる。

ログインに成功すると以下のような画面に遷移する。

まとめ

openMetadataとの比較になりますが、インストールは両方ともdockerイメージなので構築は楽でした。
機能面では、両方とも似たような機能をサポートしているので、ちょっと差別化が難しいです。
これから実際に検証を進めるので、その中で差別化できるポイントがあれば記事にしていきたいと思います。

Discussion