データ分析基盤におけるメタデータの活用② - インストール~Ingestion~Lineage
重要:個人情報や機密情報の使用に関する注意喚起(必ずお読みください)
当検証で紹介している技術やサービスの使用は、読者の皆様自身の判断と責任で行ってください。特に、個人情報や機密情報を含むデータの取り扱いについては、最大限の注意を払い、適切なセキュリティ対策を講じることが不可欠です。
検証や実際の利用を行う際には、常にプライバシー保護の法律、規制、およびベストプラクティスを遵守するよう心掛けてください。また、第三者のデータを使用する場合は、必要な同意を得ること、及びそのデータの使用が法律に準じていることを確認することが重要です。
本ブログや筆者、所属する団体は、紹介する技術を用いて行われるいかなる活動から生じる直接的または間接的な損害に対して、責任を負いかねます。技術を使用することによって生じ得るリスクを理解し、自己の責任で慎重にご活用ください。
本投稿に記載されている会社名やクラウド製品名は、各社の登録商標です。
また、投稿内容は投稿日時点のものであり、変更される可能性があります。
ご不明点や懸念がある場合は、クラウドベンダーや専門家に相談することをお勧めします。
当検証の情報を活用することで、読者の皆様が新たな知識やスキルを安全に身に付け、ビジネスでの活用をすすめていただければ幸いです。
今回と次回の2回にわたり、オープンソースのメタデータ管理ツール「DataHub」を使って、実際のデータマネジメントに対して果たす機能を検証します。
DataHubは、LinkedInによって開発されたオープンソースのメタデータ管理ツールであり、データの探索、理解、およびガバナンスを支援します。主な機能には、データセット、ダッシュボード、ストリーム、タスクなどのメタデータをカタログ化することが含まれ、これによりデータの発見と理解が容易になります。DataHubは、データ系統の可視化、データ品質の追跡、データの使用状況の分析など、多岐にわたる機能を提供し、データのライフサイクル全体にわたる管理をサポートします。
インストール
まず、インストールについて簡潔に説明します。
環境
イントールした環境は下表のとおりです。
項目 | 内容 |
---|---|
プラットフォーム | Google Cloud Platform |
インスタンスタイプ | e2-standard-4 |
RAM | 8GB |
ストレージ | 20GB |
OS | Ubuntu 22.04.4 LTS |
Pythonバージョン | Python 3.8.10 |
Dockerバージョン | 26.1.4 |
Docker-compseバージョン | v2.27.1 |
接続データベース | Google BigQuery |
インストール手順
DockerとDocker-Composeのインストール
DataHubのシンプルインストールは、複数のDockerコンテナ上で動作するため、DockerおよびDocker Composeのインストールが必要です。
検証環境では、Dockerの公式ドキュメントを参考にインストールを行いました。
- Dockerのインストール Install Docker Engine on Ubuntu | Docker Docs
- Docker-Composeのインストール Install Docker Engine on Ubuntu | Docker Docs
DataHubのインストール
DataHubのインストールは次のクイックスタートからインストールできます。
手順に従ってインストール及び起動を行い、コンソールにこの状態が表示されると、利用可能となります。

Ingestion
インストールが完了し、DataHubを起動できたら、次にIngestionを行います。
Ingestionとは、データカタログにデータやメタデータを取り込むプロセスを指します。これは、組織内の様々なデータソースから情報を収集し、統合し、一元管理するための重要なステップです。Ingestionにより、データカタログは豊富なメタデータを保持し、ユーザーがデータを簡単に発見、理解、活用できるようになります。対象となるデータソースは、各種データベース、データウェアハウス、クラウドストレージ、BIツールなど様々です。
2024年6月時点では以下のような対象があります。

今回は、Google BigQueryを対象にIngestionを行います。
Ingestionを行うと、データベースの構造情報やリネージュ情報が取得されます。
データベースの構造情報
Ingestionにより取得できるデータベースの構造情報を特定のテーブルを対象に確認します。
BigQueryの情報
- テーブル情報

- カラム情報

Ingestion結果
Ingestionを実施した結果は次のようになりました。
- テーブル情報

- カラム情報

Ingestionにより連携された構造情報
上記の結果より、Ingestionによって連携されたデータベースの構造情報は次の通りです。
分類 | 対象 | 結果 | 備考 |
---|---|---|---|
テーブル | プロジェクト | 〇 | |
データセット | 〇 | ||
テーブル名 | 〇 | ||
説明 | △ | 日本語部分のみ文字化けしている | |
制約(PK) | × | ||
制約(FK) | × | ||
カラム | カラム名 | 〇 | |
データ型 | 〇 | ||
説明 | 〇 | ||
Null可否 | × |
データベースの種類によって取得できる内容が異なる可能性もありますが、BigQueryの場合はこのような結果になりました。(制約に関連する情報が取得できていないのは、BigQueryの制約は強制されていない(not enforced)ことが原因かもしれません。)
Lineage
Lineageとは、データの生成から消費までの流れを追跡し、データの出所や変換プロセスを可視化することを指します。リネージュ情報は、データの信頼性と透明性を確保し、データの品質管理やコンプライアンス遵守を支援します。
Ingestionを行うと、Lineage情報も併せて取得されます。これは、データベースの構造情報とSQLの実行履歴をDataHubが確認し、自動的に取得されます。
下図は、データウェアハウスからインフォメーションマートのファクトテーブルが作成されている環境をIngestした結果により取得されたLineage情報です。SQLにはINSERT/UPDATE/MERGE文が使用されていますが、いずれも正しくDAG(有向非巡回グラフ)が作成されています。

これによって、ビジネスユーザーは、利用するデータの起源を確認することができます。また、IT担当者は、データの仕様変更の影響範囲を調査することも可能です。
おわりに
今回の検証では、メタデータ管理ツールを使用してデータベースから情報を取り込み、その方法と取得可能な情報について検証しました。次回は、メタデータの一部である「データガバナンス情報」および「ドメイン定義」について、引き続きDatahubを利用して管理の方法を検証します。