メタデータとリネージ:「このカラム何?」を終わらせる
Stage 2 — 第4章 | データマネジメント入門 推定学習時間:40〜50分 | 難易度:★★★☆☆
この章で学ぶこと
正本(SSOT)と意味(オントロジー)が決まっても、現場では毎日こう聞かれます。
「
attributed_revenueって何? 返品入ってる? 広告費引いてる?」
これは メタデータ(Metadata、データについてのデータ) と リネージ(Lineage、データの来歴・加工経路) の問題です。 DAMA 地図では メタデータ管理 の箱に入ります。
この章を終えると、こんなことができるようになります:
- 技術メタデータとビジネスメタデータの違いを説明できる
- リネージで 追跡できること・できないこと を説明できる
- 広告経由売上のような 多段加工 を来歴で説明できる
- データカタログ(Data Catalog)が現場で何を解決するか説明できる
1. 山田さんの定番質問
さくら商事の DWH に、マーケ向けマート mart_marketing_daily があります。
列は 30 以上。説明はほぼありません。
山田(新人):
@鈴木attributed_revenueって返品前ですか?
鈴木: うーん、田中さん作ったビュー経由で… 3 年前の SQL 見るね
田中: その列、私も使ってないかも。広告 CSV 足したやつ?
佐藤(経理): 経理の売上と一致しませんが。
3 日後、まだ答えが出ていません。 値は入っているのに、使えない —— メタデータ不在の典型です。
2. メタデータの 2 層
| 種類 | 内容 | 例 | 誰が欲しいか |
|---|---|---|---|
| 技術メタデータ | スキーマ、型、更新時刻、行数 | FLOAT64, last_modified |
DE, AE |
| ビジネスメタデータ | 定義、オーナー、利用目的、注意点 | 「広告タッチ後 7 日以内の売上」 | アナリスト, 経営 |
| 列名 | 技術メタだけ | + ビジネスメタ |
|---|---|---|
attributed_revenue |
型 FLOAT、NULL 可 | 定義、返品扱い、オーナー、禁止用途 |
2.1 最低限付けるべき 5 項目
さくら商事で「主要列」に求める最低ライン:
| 項目 | 例 |
|---|---|
| 定義 | 広告クリック後 7 日以内に発生した注文金額合計 |
| 粒度 | 日 × キャンペーン |
| 除外 | キャンセル、テスト注文 |
| オーナー | マーケ・田中 |
| 正本パス | mart_marketing_daily.attributed_revenue |
これが データディクショナリ の核です。 スプレッドシートでも、カタログツールでも構いません。
3. リネージで分かること
リネージ(Lineage) は、データが どこから来て、どんな変換を経て、どこへ流れたか の系譜です。
3.1 広告経由売上の来歴
さくら商事の attributed_revenue は、ざっくり次の経路です。
Google Ads CSV ──┐
├──> staging_ads ──> int_orders_ads_join ──> mart_marketing_daily
Shopify 注文 ────┘ │ │
│ └── 返品はここで除外(2024-03 変更)
Meta Ads API ──────────────┘
次の図は、さくら商事のマーケ売上が どの原材料から来ているか の簡略版です。
注文"] BR["bronze_orders"] SV["silver_orders"] ADS["Google Ads
CSV"] ST["staging_ads"] INT["int_orders
_ads_join"] MART["mart_
marketing"] BI["Looker"] SH --> BR --> SV --> INT --> MART --> BI ADS --> ST --> INT NOTE["2024-03
返品除外追加"] INT -.-> NOTE classDef src fill:#eff6ff,stroke:#2563eb,color:#1f2937 classDef ads fill:#fff7ed,stroke:#f97316,color:#1f2937 classDef mart fill:#f0fdf4,stroke:#16a34a,color:#1f2937 classDef note fill:#fef2f2,stroke:#dc2626,color:#1f2937 class SH,BR,SV src class ADS,ST ads class INT,MART,BI mart class NOTE note
2024 年 3 月に「返品除外」を int_orders_ads_join に追加した——この 1 行の変更 が、経理数字との差の説明になります。
3.2 リネージが答える問い
| 問い | リネージで分かるか |
|---|---|
| この列はどの上流テーブル由来か | ◎ |
| いつ・誰が変換 SQL を変えたか | △(Git 履歴とセット) |
| なぜそのビジネス定義なのか | ×(オントロジー/用語集) |
| 値が正しいか | ×(品質テスト) |
リネージは 説明責任の地図 であり、品質保証そのものではありません。
4. データカタログ:探す・理解する・信頼する
データカタログ(Data Catalog) は、メタデータとリネージを 検索可能 にしたハブです。 製品例: Alation, Atlan, DataHub, BigQuery Dataplex 等(本トラックでは製品比較しません)。
| 機能 | さくら商事での効果 |
|---|---|
| 検索 | 「売上」で公式マートを発見 |
| 定義表示 | attributed_revenue の 5 項目を表示 |
| リネージ可視化 | 広告 CSV 分岐が一目 |
| オーナー表示 | 質問先が Slack で迷子にならない |
| 利用申請 | 権限(Stage 5)と接続 |
現場メモ
カタログを入れても 中身が空 なら、高機能な電話帳です。 まず 公式売上・主要マート 10 列 からビジネスメタを埋めるのが現実的です。
5. 来歴がないと起きる事故
| 事故 | 原因 | さくら商事 |
|---|---|---|
| 同名列・別意味 | コピー SQL の横流し | revenue が 3 マートに |
| 変更の波及不明 | 上流変更の通知なし | 広告 CSV 列名変更で NULL |
| 説明不能な差分 | いつルールが変わったか不明 | 2024-03 返品除外 |
| 属人化 | 作者退職 | 田中さんの Looker 計算フィールド |
鈴木さんは、次の 変更管理の最小ルール を導入しました。
- 公式マートの SQL 変更は Git PR 必須
- PR に 定義変更があるか チェックボックス
- 定義変更時はスチュワード承認 + カタログ更新
6. メタデータ × リネージ × SSOT
3 つは別レイヤですが、現場ではセットで効きます。
SSOT(どこが公式か)
↓
メタデータ(その列は何か)
↓
リネージ(どう作られたか)
| 場面 | 必要なもの |
|---|---|
| 経営会議の数字 | SSOT + ビジネスメタ |
| 数字が変わった説明 | リネージ + 変更履歴 |
| 新規分析の開始 | カタログ検索 + オーナー確認 |
7. 手で始める:カタログ前の「1 枚シート」
ツール導入前でも、次の形式で 10 行 埋めるだけで Slack が静かになります。
| table.column | 定義 | 粒度 | オーナー | 上流 | 注意 |
|---|---|---|---|---|---|
| mart_finance.monthly_revenue | 出荷ベース公式売上 | 月 | 経理・佐藤 | fct_orders | 返品は refunds 調整 |
| mart_marketing.attributed_revenue | 広告 7 日アトリビューション | 日×CP | マーケ・田中 | int_orders_ads_join | 経理売上と不一致が正常 |
これを後からカタログに インポート すればよいのです。
体系コラム:カリキュラム上の位置づけ
| 項目 | 内容 |
|---|---|
| Stage / 章 | Stage 2 — 第4章「メタデータとリネージ」 |
| 今回の論点 | 「このカラム何?」を 設計の穴 として扱い、来歴で信頼を補う |
| DAMA 領域 | メタデータ管理、データ統合(リネージ) |
| ライフサイクル | 加工段階の変換経路と、活用段階の 説明責任 |
| 前章との接続 | オントロジーと意味 で決めた定義を、表・列に 紐づける |
| 次章への伏線 | セマンティックレイヤー — 指標の 窓口 を一本化する |
コラム:analytics との線引き
データアナリティクス入門 では、CTE や JOIN でマートを作り、SQL コメントに指標定義を書きます。本トラックのメタデータ・リネージは、その 組織版の裏付け です。
| 観点 | analytics トラック | 本トラック(DM) |
|---|---|---|
| 定義の置き場 | SQL ファイル、dbt YAML | データカタログ、オーナー承認済み定義 |
| 来歴 | ref() チェーン(dbt) |
リネージグラフ、1 枚シートでも可 |
| 読者 | 自分と同僚のエンジニア | 経営・経理・監査を含む全利用者 |
山田さんが書く ad hoc SQL にも、最低限 入力テーブル名と定義リンク を残す——これは analytics でも DM でも共通の習慣です。違いは、そのリンクが 誰の公式定義か を指しているかどうかです。
まとめ
| 概念 | 役割 |
|---|---|
| メタデータ | 列・表 について の情報(特にビジネス定義) |
| リネージ | どこから来てどう変換されたか の系譜 |
| データカタログ | 検索・共有・ガバナンスのハブ |
| SSOT | カタログが指す 公式の参照先 |
この章のキーメッセージ:
「このカラム何?」は、怠惰の問題ではなく 設計の穴 です。 ビジネスメタデータとリネージを揃えると、SQL の前に 使っていいか・説明できるか が分かります。
次に読む
- 前章: オントロジーと ER の違い
- 次章: 指標の正本を一箇所に
- 関連: データ品質チェック(analytics)
確認問題
問題 1
attributed_revenue の型と NULL 率は分かるが、返品が含まれるか分からない。
足りないメタデータ は主にどれですか。
A. 技術メタデータ
B. ビジネスメタデータ(定義・除外ルール)
C. ネットワークメタデータ
D. 物理ディスクの RAID 構成
正解: B
解説: 型・NULL 率は技術メタです。「返品を含むか」は 業務定義 です。C/D は論点外です。
問題 2
2024 年 3 月の SQL 変更でマーケ売上が経理とさらに離れた。 最初に確認すべき 情報源の組み合わせとして最も適切なのはどれですか。
A. リネージ + 変更履歴(Git) + 用語集の更新有無
B. 社内便の配送スケジュール
C. 競合他社の決算短信
D. 統計検定の公式問題集
正解: A
解説: 数字の変化説明には 来歴と変更記録 が必要です。定義変更が用語集に反映されたかもセットで見ます。
問題 3
データカタログを導入したが、定義欄がほぼ空で利用率が低い。 最も効果的な次の一手 はどれですか。
A. 全テーブル全列を一週間で埋める巨大プロジェクト
B. 公式売上など 会議で使う 10 列 からビジネスメタを埋め、オーナーを明示する
C. カタログを削除し、口頭のみに戻す
D. リネージ機能だけ OFF にする
正解: B
解説: カタログは 中身の密度 が命です。会議数字から始めると ROI が見え、横展開しやすいです。A は燃え尽き、C/D は後退です。
用語メモ(この章)
| 用語 | 意味(この章での使い方) |
|---|---|
| メタデータ(Metadata) | データの定義、構造、来歴など“についての情報” |
| リネージ(Lineage) | データのソースから出力までの加工経路 |
| データカタログ(Data Catalog) | メタデータとリネージを検索・共有するハブ |
| データディクショナリ | 列・指標の定義を一覧した文書(カタログの中身) |
| 技術 / ビジネスメタ | スキーマ情報 vs 業務上の意味・オーナー |