メタデータ管理 (Metadata Management)
DAMA-DMBOK 2nd Edition — Chapter 13: Metadata Management
出題割合: 11%(約11問)— 最重要トピック
1. メタデータとは
定義: データに関するデータ(Data about Data)。データの意味・構造・取得方法・品質を記述する情報。
"Metadata includes information about technical and business processes, data rules and constraints, and logical and physical data structures."
2. メタデータの種類(3分類)
ビジネスメタデータ(Business Metadata)
ビジネス上の意味・コンテキストを記述
- ビジネス定義(Business Definitions)
- ビジネスルール
- データスチュワード・オーナー情報
- データ品質要件
- データの利用方針
- 例: 「顧客」の定義、データの機密分類
技術メタデータ(Technical Metadata)
データの技術的構造・実装を記述
- テーブル/カラム名・データ型
- プライマリキー・外部キー
- インデックス定義
- ストアドプロシージャ
- ETLジョブ仕様
- 例: テーブル定義、DDL
運用メタデータ(Operational Metadata)
データ処理の実行状況を記述
- ジョブ実行履歴
- バッチ処理ログ
- データ更新日時・頻度
- データ品質スコアの推移
- アクセスログ・利用統計
- 例: ETLジョブの最終実行日、データフレッシュネス
3. データカタログとメタデータリポジトリ
メタデータリポジトリ(Metadata Repository)
メタデータを集中管理するデータストア。
| コンポーネント | 内容 |
|---|---|
| メタデータモデル | メタデータ自体の構造定義 |
| メタデータストア | 収集・格納されたメタデータ |
| メタデータサービス | 検索・参照インターフェース |
データカタログ(Data Catalog)
- 現代的なメタデータ管理ツール
- ビジネスユーザーでも利用可能なUI
- データ検索・発見(Data Discovery)の中心
- AI/ML による自動タグ付け機能
- 代表製品: Alation, Collibra, Microsoft Purview, Apache Atlas
4. データリネージ(Data Lineage)
定義: データがどこから来て、どこに行くかを示す系譜。
ソースシステム → ETL処理 → ステージング → DW → レポート
(起源) (変換) (中間) (格納) (利用)
リネージの重要性
- データ品質問題の原因特定
- 規制対応(GDPR Article 30等)
- インパクト分析(変更時の影響調査)
- データ監査のサポート
リネージの粒度
| 粒度 | 例 |
|---|---|
| システムレベル | A → B → C |
| テーブルレベル | table_X → table_Y |
| カラムレベル | col_A の計算式を追跡 |
5. メタデータ管理の活動
5.1 メタデータ戦略の定義
- ビジネス・技術・運用メタデータの収集範囲
- メタデータ標準の制定
- ガバナンス方針との整合
5.2 メタデータの収集と統合
- 自動収集: DBスキャン・ETLツールの自動キャプチャ
- 手動入力: ビジネス定義・スチュワード情報
- 異種ソースからのメタデータ統合・調和
5.3 メタデータの保守
- 定義の最新化・変更管理
- メタデータ品質の測定
- 不要メタデータの廃棄
5.4 メタデータの提供(Delivery)
- 検索・参照インターフェースの提供
- レポート・ダッシュボードへの統合
- API経由のメタデータアクセス
6. メタデータの品質
メタデータ自体も品質管理の対象:
| 品質次元 | 内容 |
|---|---|
| 完全性 | 必要なメタデータが全て存在するか |
| 正確性 | メタデータが実態を正しく反映しているか |
| 鮮度 | メタデータが最新の状態か |
| 一貫性 | 複数ソース間でメタデータが整合しているか |
7. メタデータとデータガバナンスの関係
- ガバナンスポリシー → メタデータとして管理
- データスチュワードの割り当て → メタデータに記録
- データ品質ルール → メタデータとして定義
- メタデータはガバナンス活動の「記録」
8. 重要な用語
| 用語 | 説明 |
|---|---|
| Data Lineage | データの起源から利用までの流れ |
| Data Provenance | データの由来・起源に関する情報 |
| Data Dictionary | データ要素の定義・属性を記述した文書 |
| Business Glossary | ビジネス用語の統一定義集 |
| Data Catalog | データ資産の発見・理解を支援するツール |
| Impact Analysis | 変更時にどのシステム・データが影響を受けるか |
| Metamodel | メタデータの構造を定義するモデル |
試験ポイント
- 3種類のメタデータ(Business / Technical / Operational)の区別
- Data Lineage = データの流れの追跡
- Data Dictionary vs Business Glossary の違い
- データカタログの役割(Data Discovery の中心)
- 運用メタデータの例(実行ログ、更新日時等)
- メタデータ自体の品質管理が重要
Specialist試験 深掘り
メタデータ管理の活動(DMBOK詳細)
Specialist試験ではActivitiesの詳細が問われる。
Activity 1: メタデータ戦略の策定
- ビジネスドライバーの特定(規制対応、データ発見、品質管理)
- 収集スコープの決定(全データ vs 優先ドメイン)
- アーキテクチャ設計(Centralized / Federated / Hybrid)
- ツール選定基準の定義
Activity 2: メタデータアーキテクチャの設計
- Passive vs Active metadata の選択
- Metamodel(メタデータのデータモデル)の設計
- 既存システムとの統合ポイント特定
Activity 3: メタデータの収集と統合
- 自動収集(DB Scanning、ETLツール統合)と手動入力のバランス
- 異種ソースからのメタデータのMapping/Harmonization
- スキーマ変更の検知と自動更新
Activity 4: メタデータの品質管理
- メタデータKPI(カバレッジ・鮮度・正確性)
- 陳腐化したメタデータの検出・更新ルール
- Stewardによるメタデータレビュープロセス
Activity 5: メタデータの活用支援
- データカタログのユーザートレーニング
- API経由のメタデータアクセス提供
- BI/レポートツールとのメタデータ統合
Business Glossary vs Data Dictionary(詳細比較)
| 観点 | Business Glossary | Data Dictionary |
|---|---|---|
| 対象者 | ビジネスユーザー(非技術者) | 開発者・DBA・データアーキテクト |
| 内容 | ビジネス概念の定義・文脈・使用例 | データ要素の技術仕様(型・長さ・制約) |
| 例 | 「顧客」=「過去12ヶ月以内に購入した法人・個人」 | customer_id: BIGINT NOT NULL, PK |
| 管理者 | Business Data Steward | Technical Data Steward / DBA |
| ツール | データカタログのGlossary機能 | データカタログのSchema機能・DB管理ツール |
| 更新頻度 | ビジネス定義の変更時 | DB変更時 |
試験で問われるパターン: 「ビジネス用語を統一したい」→ Business Glossary / 「テーブル定義を文書化したい」→ Data Dictionary
Metamodel(メタモデル)の理解
メタデータを管理するためのデータモデル自体をMetamodelと呼ぶ。
Metamodel(メタデータの構造)
Entity: 「テーブル」
属性: table_name, schema_name, row_count
関係: owned_by → 「データベース」
has_column → 「カラム」
Entity: 「カラム」
属性: column_name, data_type, nullable
関係: belongs_to → 「テーブル」
defined_by → 「Business Term」(Business Glossaryとリンク)
OpenLineage / ODCS(Open Data Contract Standard)
業界標準として注目されているメタデータ関連の標準:
OpenLineage: データリネージのオープン標準
- Airflow、Spark、dbt などが対応
- リネージ情報をJSON形式で記録・交換
Data Contract(データコントラクト): 新しい概念
# データコントラクトの例
apiVersion: v1
kind: DataContract
name: customer-master-contract
provider: data-engineering-team
consumer: analytics-team
spec:
dataset: dim_customer
quality:
completeness: 99.5%
freshness: "updated within 1 hour"
schema:
- name: customer_id
type: bigint
nullable: false
sla:
availability: 99.9%
Data Contractは「データプロバイダーとコンシューマーの間の合意」を明示化する手法。Data Meshの文脈で注目度が高い。