青の統計学-DS Playground-

メタデータとリネージ:「このカラム何?」を終わらせる

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 ──────────────┘
          

次の図は、さくら商事のマーケ売上が どの原材料から来ているか の簡略版です。

flowchart LR accTitle: Shopify取込からstaging、マート、Lookerまでのデータ来歴フロー。広告CSV分岐付き accDescr: リネージは「数字の原材料と加工手順」。定義変更は来歴上のどこかで必ず起きる。 SH["Shopify
注文"] 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 計算フィールド

鈴木さんは、次の 変更管理の最小ルール を導入しました。

  1. 公式マートの SQL 変更は Git PR 必須
  2. PR に 定義変更があるか チェックボックス
  3. 定義変更時はスチュワード承認 + カタログ更新

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 の前に 使っていいか・説明できるか が分かります。


次に読む


確認問題

問題 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 業務上の意味・オーナー