データカタログとは～DMBOKをベースにした拡張的解釈～

## はじめに
データレイクの普及に伴い、再注目されているデータカタログについて整理します。本投稿は、Data Management Body of Knowledge 日本語版（以後、 DMBOK ）をベースに投稿者の解釈を加えてものであり、DMBOKに準拠しているわけではないことに留意してください。

## データカタログとは
データカタログとは、データモデルとData Integration and Interoperability（データ統合と相互運用性）のメタデータに関する、カタログの作成（定義・抽出・蓄積）、および、カタログの利用（探索・把握・共有・配信）によるデータガバナンス支援ツールです。

メタデータとは、DMBOKにて、下記のように記載されています。

> 最も一般的な定義である「データに関するデータ」は単純過ぎて誤解を招きやすい。メタデータとして分類できる情報の種類は幅広い。ITプロセスと業務プロセス、データのルールと制約、論理的および物理的なデータ構造、以上に含まれる情報がメタデータに含まれる。メタデータはデータ自体（例えばデータベース、データエレメント、データモデル）、データが象徴する概念（例えば業務プロセス、アプリケーションシステム、ソフトウェアコード、IT基盤）、データと概念の関係性（リレーションシップ）を記述する。

引用元：DMBOK 2nd 第12章 メタデータ管理

Data Integration and Interoperability（以後、DII）とは、DMBOKにて、データ統合と相互運用性と翻訳されており、下記のような記載がされています。

> データストア、アプリケーション、組織などの内部とそれらの相互間で実行される、データの移動と統合に関するプロセスを表している。データ統合はデータを物理的、仮想的を問わず、一貫した形式に統一する。

引用元：DMBOK 2nd 第8章 データ統合と相互運用性

### DMBOKにおけるデータカタログ相当の定義とその拡張的視点について
DMBOK 2ndにてデータカタログという記載は確認できず、メタデータリポジトリが最も近い言葉であると考えられるような記載があります。

> メタデータリポジトリは、データモデルに関する記述情報を格納するソフトウェアツールである。そこにはほかのツールやプロセスからインポートされたメタデータや、図の定義などのテキスト情報が含まれている。

引用元：DMBOK 2nd 第5章 データモデリングとデザイン

データカタログに対してテーブル定義を確認することだけでなく、データリネージの可視化に重点が置かれるようになってきたこともあり、DIIの情報も含めてデータカタログとして定義してます。

### カタログの作成（定義・抽出・蓄積）とカタログの利用（探索・把握・共有・配信）について
カタログの作成（定義・抽出・蓄積）とは、ソースからメタデータを抽出やメタデータ管理ツールを使用したメタデータの手動入力により、抽出したメタデータは「メタデータの関連付け」「メタデータの属性分類」「データプロファイリング」等の加工処理の上、管理することです。

それに対して、カタログの利用（探索・把握・共有・配信）とは、メタデータのマニュアル更新や様々なユーザーグループによるメタデータの要求、探索、参照をサポートすることで、メタデータの利用者が探索したメタデータをもとにデータの意味が理解でき、データがシステム間を移動する際にどのように変換されるかについて情報(データリネージ)を取得できるようにすることです。


データ利用者、およびメタデータの供給を必要とするアプリケーションやツールに配信する仕組みとして、記載されています。

>・ブラウザ、検索、クエリ、レポート、分析のためのメタデータ・イントラネットウェブサイト
・レポート、用語集などのドキュメント
・データウェアハウス、データマート、BIツール
・モデリングとソフトウェア開発ツール
・メッセージングとトランザクション
・ウェブサービスとAPI
・外部組織とのインターフェースソリューション

引用元：DMBOK 2nd 12章 2.4.2 メタデータの配布と配信

### 受動的なデータカタログから、能動的なデータカタログ（メタデータの配信）へ
収集したテーブル定義等を確認する機能でなく、システムへ配信する機能も保持するようになってきました。従来であればメタデータ抽出という単方向の実施のみででしたが、メタデータの配信を行うなどの双方向も実施するようになってきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/0caab6d2-f9f9-135a-d18a-8e2ebc7c8e04.png)


AWS Glue CatalogにおけるHive Metastoreの情報に基づき、AWS Athena(Prestoベース)からクエリを実行できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/376c0c51-32e9-88f7-ff4e-f3703f1ebc19.png)

引用元：[Simplify Amazon DynamoDB data extraction and analysis by using AWS Glue and Amazon Athena](https://aws.amazon.com/jp/blogs/database/simplify-amazon-dynamodb-data-extraction-and-analysis-by-using-aws-glue-and-amazon-athena/)

ZOZO様がLooker（データモデリング・ツール）によりETL処理を実施しており、定義したメタデータを配信するような機能もデータカタログの機能として捉えてよさそうです。また、MicroStrategyにおいても、スキーマオブジェクトを用いた統合管理が以前から実施できましたが、データカタログ機能として提案がされているようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/3ed822d1-1d03-cd50-7c6d-e51a30b11d85.png)

引用元：[データ集計基盤の改善でLooker導入に至ったワケ](https://techblog.zozo.com/entry/looker-data-processing-improvement)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/929d4f1d-ef16-fe6e-60f5-1598a84ddbb7.png)


## データカタログの主なユースケースについて
主なユースケースとしては、３つに分類できます。必要な利用シナリオから、必要な機能・必要なメタデータから、自分の組織にあったデータカタログを構築してください。

| 番号 | ユースケース             | 利用例                                                       |
| ---- | ------------------------ | ------------------------------------------------------------ |
| 1    | データ利活用推進         | ・テーブル一覧の情報をたよりに、欲しいテーブルを特定できる <br/>・データ項目名を検索してデータの意味を理解できる <br/>・データに想定の形式で。抽出方法・変換方法を特定できる |
| 2    | コンプライアンス対応     | ・個人情報の所在が管理され、特定できる <br/>・データ管理者が明らかである <br/>・速やかに大元のデータが確認できる<br/>・法令を遵守しガバナンスされた状態である |
| 3    | システム開発・運用・保守 | ・類似エンティティの排除、マスタデータの統合やコードの標準化の徹底<br/>・データ資産のスリム化を図り、成果物の作成に活用する<br/>・テクニカルメタデータを定義し、その定義をシステムに配信する |

## データカタログの主な機能について

### データカタログに含めるべき機能について
データカタログとして保持すべき機能は、DMBOK 8章のツールとして紹介されている下記機能です。すべての機能を保持したサービスは現在のところ確認できず、複数のサービスを組み合わせて運用することとなります。

| 番号 | 機能                               | 説明                                                         |
| ---- | ---------------------------------- | ------------------------------------------------------------ |
| 1    | 業務ルールエンジン                 | 業務ルールエンジンは、ソフトウェアで実装された業務ルールを技術者以外のユーザーが管理でき、ソリューションの展開を低コストで実現する非常に貴重なツールである。 |
| 2    | データとプロセスのモデリングツール | データモデリング・ツールを利用して、ターゲットだけでなく、データ統合ソリューションに必要な中間のデータ構造を設計する必要がある。 |
| 3    | データプロファイリング・ツール     | データプロファイリングには、データの書式、完全性、一貫性、有効性やデータ構造を把握するために、データセットの内容に関する統計的分析が含まれる。 |
| 4    | メタデータリポジトリ               | メタデータリポジトリにはデータ構造、コンテンツ、データ管理のための業務ルールなど、組織内のデータに関する情報が含まれている。      データ統合プロジェクトの遂行中に、ソース、変換、ターゲットとなるデータの技術的構造と業務上の意味をドキュメント化するには、いくつかのメタデータリポジトリが利用できる。 |

引用元：DMBOK 2nd 8章 3 ツールの内容を整理

Lookerが提供しているGUIで作成したビジュアルのSQLコード（データマッピング管理ツールのテクニカルメタデータ）を表示する機能もデータカタログの機能の１つですが、一般的なデータカタログツールには本機能を確認できませんでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e3fce16d-faaa-1738-b36d-5d3244a4de6f.png)

## データカタログに関するユーザー
メタデータの収集や維持のためには、下記の役割をもつメンバーによる社内の協力体制構築が必要となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/a8d9f0d2-e45f-cb7c-7b2e-698415a95d27.png)

| 役割                               | タスク                                                       |
| ---------------------------------- | ------------------------------------------------------------ |
| 業務オーナー                       | ・メタデータの登録 <br/>・メタデータの収集<br/>・メタデータの反映  <br/>・データの管理 |
| データスチュワード                 | ・データ資産環境の整備 <br/>・データの最適化/標準化推進 <br/>・データの問合せ や要望への対応 |
| メタデータ（データカタログ）利用者 | ・ビジネスの意思決定 <br/>・分析レポートのデータの把握<br/>・開発の意思決定<br/>・影響分析<br/>・設計 <br/>・開発 |


## メタデータの詳細
### メタデータの種類
DMBOK 2ndにて、DMBOKにて、下記のように記載されています。

| #    | メタデータの種類           | 説明                                                         |
| ---- | -------------------------- | ------------------------------------------------------------ |
| 1    | ビジネスメタデータ         | ビジネスメタデータは、主にデータの内容と状態に重点を置いており、データガバナンスに必要な詳細を含む。<br/>ビジネスメタデータには概念、対象領域、エンティティ、属性に関する名称と定義が含まれる。<br/>     ビジネスメタデータには次のようなものがある。<br/>・データセット、テーブルおよびカラムの定義と説明 <br/>・業務ルール、変換ルール、計算方法、および導出方法 <br/>・データモデル<br/>・データ品質の規則と測定結果 <br/>・データが更新されるスケジュール <br/>・データの出所とデータリネージ <br/>・データ標準 |
| 2    | テクニカルメタデータ       | テクニカルメタデータはデータの技術的詳細、データを格納するシステム、およびシステム内やシステム間でテクニカルメタデータを移動するプロセスに関する情報を提供する。<br/>テクニカルメタデータには次のようなものがある。<br/>・物理データベーステーブルとカラムの名称 <br/>・カラムのプロパティ <br/>・データベースオブジェクトのプロパティ<br/>・アクセス権<br/>・データCRUDルール <br/>・データテーブル名キー、インデックスなどを含む物理データモデル <br/>・データモデルと物理的資産の関係を示すドキュメント<br/>・ETLジョブの詳細<br/>・ファイルフォーマットのスキーマ定義 |
| 3    | オペレーショナルメタデータ | オペレーショナルメタデータはデータの処理とアクセスの詳細を表す。<br/>次のようなものがある。<br/>・バッチプログラムのジョブ実行ログ  <br/>・データの抽出とその結果などの履歴 <br/>・運用スケジュールの異常<br/>・オーディット、バランス、コントロールなどの結果 <br/>・エラーログ <br/>・レポートとクエリのアクセスパターン、頻度、および実行時間 <br/>・パッチとバージョン管理の計画と実行、現在のパッチ適用レベル <br/>・バックアップ、保存、実行日付、災害復旧などの規定 <br/>・SLAの要件と規定  <br/>・容量の増減と利用パターン<br/>・データのアーカイブと保持ルール、関連するアーカイブ<br/>・廃棄基準 |

引用元：DMBOK 2nd 12-1.イントロダクション 2.メタデータの種類の内容をもとに整理

### メタデータのソース
| #    | メタデータの種類           | メタデータのソース                     | 説明                                                         | 具体例                                                       |
| ---- | -------------------------- | -------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 1    | ビジネスメタデータ         | 業務（ビジネス）用語集                 | 業務用語集の目的は組織にある業務の概念、専門用語、定義、またそれらの用語間の関係を記録して保存することである。 | 組織内で使用される専門用語の定義、用語間の関連などを保持     KPI Lake、エンタープライズ・アーキテクチャにおけるビジネス・アーキテクチャ |
| 2    | ビジネスメタデータ         | ビジネスインテリジェンス（BI）ツール   | BIツールはBIの設計に関連する様々な種類のメタデータを生成する。      例えば全体概要、クラス、オブジェクト、導出や計算された項目、フィルター、レポート、レポート項目、レポートレイアウト、レポートユーザー、レポートの配布頻度、レポート配布チャネルなど。 | PowerBI、tableau     ※アプリ発行でデータセットの共有         |
| 3    | ビジネスメタデータ         | データ品質ツール                       | データ品質ツールは検証ルールによってデータの品質を評価する。     これらのツールのほとんどは品質スコアとプロファイルパターンを他のメタデータリポジトリと交換する機能を提供する。 | Talend Data  Quality Platform、Informatica Data Quality      |
| 4    | ビジネスメタデータ         | 参照データリポジトリ                   | 参照データはシステム内の様々なタイプの列挙式データ（値ドメイン）について、業務上の値、説明、文脈上の使い方、を記録する。参照データ管理に利用されるツールは同じ値ドメイン内や複数の値素メイン内で様々に定義された値同士の関係も管理する。 | データの意味、説明、関連性                                   |
| 5    | ビジネスメタデータ         | 非構造化データ                         | カタログ情報やシソーラスのキーワードなど記述メタデータが含まれる。      タグ、フィールド構造、フォーマットなどの構造化またデータ、発生元、更新スケジュール、アクセス権、ナビゲーション情報などの管理用メタデータ、図書目録登録情報などの書誌メタデータ、保持ポリシーなどの記録管理メタデータ、保管、アーカイブ条件、保尊ルールなどの保全用メタデータなども含まれる。 | Officeドキュメント、PDF、音声・動画、センサーログ、メールなど |
| 6    | テクニカルメタデータ       | アプリケーション・メタデータリポジトリ | メタデータリポジトリはメタデータが格納されている物理テーブルを指す。     多くの場合これらはモデリングツール、BIツールなどのアプリケーションに組み込まれている。 | SQLServerのシステムデータベース     エンタープライズ・アーキテクチャにおけるアプリケーション・アーキテクチャ |
| 7    | テクニカルメタデータ       | 構成管理ツール                         | 構成管理ツールは構成管理データベース（CMDB）は特にIT資産、IT資産間の関係、資産の契約情報に関連するメタデータを管理し、維持する。 | Ansible、Terraform                                           |
| 8    | テクニカルメタデータ       | データディクショナリ                   | データディクショナリはデータセットの構造と内容を定義する。     多くの場合、単一のデータベース、アプリケーション、データウェアハウスに関するものである。 | SQLServerのシステムデータベース（テーブル、カラムに関する情報） |
| 9    | テクニカルメタデータ       | データ統合ツール                       | これらのツールの多くはデータのコピーや派生コピーを含む一時ファイルを生成する。また様々なソースからデータを読み込んで、グループ化、修復、再フォーマット、結合、フィルター処理などを行い、取り込まれたデータを操作し、ターゲットに配信する出力データを作成する。 | SQL Server  Integration Services、Azure Data Factory         |
| 10   | テクニカルメタデータ       | データベース管理とシステムカタログ     | データベースカタログはメタデータの重要なソースとなる。そこにはデータベースの内容が記述され、合わせてサイズ情報、ソフトウェアバージョン、配備ステータス、ネットワーク稼働時間、インフラ稼働時間、可用性など多くのオペレーショナルメタデータ属性も含まれる。 | SQLServerのデータベース（テーブル）                          |
| 11   | テクニカルメタデータ       | データマッピング管理ツール             | マッピング管理ツールはプロジェクトの分析や設計の段階で利用され、要件をマッピング仕様に置き換える。     作成されたマッピング仕様はデータ統合ツールによって直接利用されるか、開発者がデータ統合コードを生成するために利用される。 | マッピング仕様書、マッピング設計書、標準データ抽出SQLコード
| 12   | テクニカルメタデータ       | ディレクトリとカタログ                 | データディクショナリや用語集には専門用語、テーブル、フィールドに関する詳細情報が含まれている。一方で、ディレクトリやカタログには組織内のシステム、ソースやデータの格納場所に関する情報が含まれている。 | 組織内のシステム、ソース、データの格納場所に関する情報     システム管理台帳、システム構成図、エンタープライズ・アーキテクチャにおけるテクノロジー・アーキテクチャ（一部） |
| 13   | テクニカルメタデータ       | モデリングツールとリポジトリ           | データモデリングツールには様々なタイプのデータモデル（概念、論理、物理）を構築するために利用される。これらのツールはそのモデルからアプリケーションやシステムモデルの設計に関連するメタデータを生成する。 | ER図、ディメンションマップ、データフロー図、エンタープライズ・アーキテクチャにおけるデータ・アーキテクチャ |
| 14   | テクニカルメタデータ       | サービスレジストリ                     | サービスレジストリはサービス指向アーキテクチャ（SOA）SOAの観点から、サービスやサービスエンドポイントに関する技術情報を管理し、保管する。     例えば、定義、インターフェース、操作、入出力、パラメータ、ポリシー、バージョン、サンプル利用のシナリオなどが含まれる。 | サービスやサービスエンドポイントに関する定義、インターフェース、操作、入出力、パラメータ、ポリシー、バージョン、サンプル利用のシナリオなど |
| 15   | オペレーショナルメタデータ | イベントメッセージング・ツール         | イベントメッセージング・ツールは様々なシステムの間でデータを移動させる。     そのために多くのメタデータが必要となる。この移動を記述するメタデータもこのツールが生成する。 | Event Grid、Event  Huds                                      |
| 16   | -                          | その他のメタデータストア               | 他のメタデータストアには、イベントレジストリ、ソースリストまたはインターフェース、コードセット、語彙目録、時空間スキーマ、空間参照、デジタル地理データセット、リポジトリのリポジトリおよび業務ルールなどがある。 | イベントレジストリ、ソースリストまたはインターフェース、コードセット、語彙目録、時空間スキーマ、空間参照、デジタル地理データセット、リポジトリのリポジトリおよび業務ルールなど |

引用元：DMBOK 2nd 12章 5.メタデータのソース

## データカタログ機能の詳細化とその運用
必要となるデータカタログの機能の一覧化を行い、どのサービスで運用するのかを整理することをおすすめします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/441cdb14-5e57-8c50-a35c-cb383957dfe1.png)

## その他論点
### BI（Business Intelligence）側でデータモデルの統合管理が可能であるか
データモデルをBI側で統合管理する機能が注目されることがありますが、私はBIの機能だけではデータ活用の推進が難しいと考えています。データ活用を促進するための施策としてセルフサービスBIの利用という選択もありますが、データモデルの管理のみを論点とします。

データモデルをBI側で統合管理する機能とは、下記図のように、一元管理したデータモデルに対してデータ活用を実施することです。MicroStrategyやLookerにて同様のことが実施でき、複数のレポートにてロジックの再利用が可能となります。

![image.png](https://cdn.it-trend.jp/product_page_info_merits/5505/current/main?1599805073)
引用元：[独自の機能で組織のレベルを高めるBIプラットフォーム MicroStrategy 2020](https://it-trend.jp/bi/7470)

ロジック共通化を行うBI開発者の作業時間によりスピード感が悪くなり、データ分析者想定のスピード感と一致しなくなることで、BIツールが利用されなくなります。そういったミスマッチの解消を行うためには、データ分析者に対してなるべく委任できるようなデータ分析環境の提供を検討すべきと考えております。

データ分析方法の多様化や分析対象のビックデータ化により、BI（Business Intelligence）側でデータモデルを統合管理は難しいと判断する組織もあるようです。MicroStrategyを長年利用しているebay社は、2016年に、BI側で統合管理を実施できていない旨の報告をしてます。
[![thumbnail](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/3364b6ff-f510-5542-bdc7-5a20657e7b64.png)](https://www.slideshare.net/HadoopSummit/extreme-analytics-ebay/19)

[![thumbnail](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/dc4f6e0b-5017-631b-c030-6802e9fd4fa0.png)](https://www.slideshare.net/HadoopSummit/extreme-analytics-ebay/45)

引用元：[Extreme Analytics @ eBay](https://www.slideshare.net/HadoopSummit/extreme-analytics-ebay)

同じ報告資料にて、BI側で統合管理するのではなく、データカタログ（Alation）を含めたデータストア側でデータモデル管理をすることを選択したようです。ebay社の求人にもMicroStrategyのスキルを求めていることから、現在でもMicroStrageyを利用しているようですが、ブログにてデータカタログの重要性を提唱しております。
[![thumbnail](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/45795211-c8fd-7d01-94ec-48bef3270808.png)](https://www.slideshare.net/HadoopSummit/extreme-analytics-ebay/51)
引用元：[Extreme Analytics @ eBay](https://www.slideshare.net/HadoopSummit/extreme-analytics-ebay)

英語の資料を読むのが難しい方は、
Yahoo!デベロッパーネットワーク様がサマリーを共有しておりますので、下記リンクより参照してください。
[![thumbnail](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/ca995405-d265-b1e0-78fc-508bb5ac5635.png)](https://www.slideshare.net/techblogyahoo/apache-atlas-hadoopreading/20)
引用元：[Apache Atlasの現状とデータガバナンス事例 #hadoopreading](https://www.slideshare.net/techblogyahoo/apache-atlas-hadoopreading/20)

BI側でのデータモデル統合管理がデータマネジメントに対して救世主となるような記載をみることがありますが、現実的にはツールの導入だけでは難しく、組織に応じたデータ分析文化を検討する必要があるようです。


## 参考文献
- DMBOK 2nd: データマネジメント知識体系ガイド 第二版（ISBN-13:978-1634622349）