セマンティックレイヤー:指標の正本を一箇所に
Stage 2 — 第5章 | データマネジメント入門 推定学習時間:35〜45分 | 難易度:★★★☆☆
この章で学ぶこと
SSOT、オントロジー、メタデータ、リネージ——Stage 2 では 意味と来歴 を整える土台を見てきました。 最後のピースは、指標(メトリクス)をどこで公式化するか です。
Looker の計算フィールド、Excel の数式、個人 SQL——指標が散らばると、Stage 1 の「売上 3 通り」が 再発 します。 セマンティックレイヤー(Semantic Layer) は、BI や AI から見える 指標の正本レイヤ として機能します。
この章を終えると、こんなことができるようになります:
- セマンティックレイヤーが解決する問題を説明できる
- 生 SQL 直結・ビュー・セマンティックレイヤーの 判断軸 を持てる
- さくら商事で「公式売上」を 1 箇所に置く設計を説明できる
- データアナリティクス入門 の SQL 指標定義と 役割分担 を説明できる
1. 指標が 7 箇所に散らばった日
さくら商事の「公式売上」合意後も、次のような 別バージョン が残っていました。
| 場所 | 名前 | 問題 |
|---|---|---|
Looker revenue 計算フィールド |
返品前 | 2023 年版のまま |
| Looker Studio | 売上合計 | Sheets 連携 |
| 田中さんのノート SQL | sales_v2 |
個人 Git なし |
mart_finance.monthly_revenue |
公式 | ここだけ正 |
| 経理 Excel | 売上 | ERP 直 export |
| 取締役資料 | 売上 | コピペ元不明 |
| ChatGPT 社内 Bot | 「今月売上は?」 | 学習元不明 |
経営・木村
「公式は
mart_financeで決まったよね? なんで Looker がまだ古い?」マーケ・田中
「計算フィールド、直すの怖くて… ダッシュボード壊れるかもで。」
正本テーブルはあるのに、指標インターフェースが正本ではない —— これがセマンティックレイヤー議論の出発点です。
2. 指標の正本:3 層モデル
さくら商事で目指す 指標の 3 層 です。
| 層 | 内容 | 例 |
|---|---|---|
| L1 業務定義 | 用語集・オントロジー | 「公式売上」のビジネスルール |
| L2 データ正本 | SSOT マート | mart_finance.monthly_revenue |
| L3 指標インターフェース | セマンティックレイヤー | Looker の 公式売上 メトリクス |
[L1 用語集] → [L2 mart_finance] → [L3 Semantic Layer] → BI / API / Agent
L2 だけ決めても、L3 が乱れると 利用者は古い定義に触れ続けます。
公式売上の定義"] L2["L2 SSOT マート
mart_finance"] L3["L3 セマンティック
レイヤー
LookML metric"] USE["BI / API / Agent
会議・公式数字"] L1 --> L2 --> L3 --> USE BAD1["生 SQL 直結"] BAD2["計算フィールド乱立"] BAD1 -.->|"×"| USE BAD2 -.->|"×"| USE classDef layer fill:#eff6ff,stroke:#2563eb,color:#1f2937 classDef ssot fill:#f0fdf4,stroke:#16a34a,color:#1f2937 classDef consumer fill:#fff7ed,stroke:#f97316,color:#1f2937 classDef blocked fill:#fef2f2,stroke:#dc2626,color:#64748b class L1,L3 layer class L2 ssot class USE consumer class BAD1,BAD2 blocked
3. セマンティックレイヤーとは
セマンティックレイヤー(Semantic Layer) は、物理テーブルと利用者の間に置く 意味付きの指標・次元の層 です。
| 要素 | 説明 | さくら商事の例 |
|---|---|---|
| エンティティ / テーブル | 論理モデル | Order, Campaign |
| ディメンション(Dimension) | 切り口 | 月、キャンペーン、商品カテゴリ |
| メトリクス(Metric) | 集計定義 | 公式売上, 注文数, CVR |
| フィルタ | 共通除外 | テスト注文除外 |
| 権限 | 列・行 | CS は自部門のみ(Stage 5) |
利用者は 生 SQL を書かず、承認済みメトリクスを選びます。 定義変更はセマンティックレイヤー側で 1 回、リネージで L2 へ追跡します。
3.1 製品・実装の例(概念のみ)
| 方式 | 例 | 備考 |
|---|---|---|
| BI 内蔵 | Looker LookML, Tableau Metrics, Power BI Semantic Model | L3 が BI に寄る |
| 変換レイヤ | dbt Semantic Layer, MetricFlow | L2 マートと一体(書き方は別トラック) |
| スタンドアロン | Cube, Malloy | API 経由で複数 BI へ |
本トラックでは dbt の実装は扱いません。 「マート SQL と指標定義が分離し、後からセマンティックレイヤーで束ねられる」程度の理解で十分です。
4. 生 SQL・ビュー・セマンティックレイヤー
| 方式 | メリット | デメリット | 向く場面 |
|---|---|---|---|
| 生 SQL 直結 | 柔軟、即席 | 定義が散らばる | 探索的分析(個人) |
| ビュー / マート | 再利用 | BI 側で再計算される | 中規模、単一 BI |
| セマンティックレイヤー | 指標の正本化 | 初期設計コスト | 会議数字、複数 BI、Agent |
4.1 判断フロー(簡略)
会議・公式数字に使う?
├─ Yes → セマンティックレイヤー or 公式マート + 固定 BI モデル
└─ No → 探索用 SQL(ただし SSOT マートから取得)
現場メモ
「全部セマンティックレイヤー」も非現実的です。 公式指標 10 個 だけ L3 に載せ、探索は L2 マート直 SQL —— この折衷が多いです。
5. さくら商事の Before / After
Before
- Looker 各ダッシュボードが 独自計算フィールド
- 定義変更が 10 画面 を手修正
- 経理数字との差は「マーケ定義だから」で終わる
After(目標)
| メトリクス | 定義ソース | 参照 |
|---|---|---|
| 公式売上 | 用語集 v1.2 + mart_finance |
LookML metric: official_revenue |
| アトリビューション売上 | 用語集 + mart_marketing |
別メトリクス(経理と不一致を注記) |
| 注文数 | 共通 | テスト注文除外フィルタ付き |
Looker ダッシュボードは 計算フィールド禁止(公式系のみ)。
探索分析は BigQuery で mart_* を直接触るが、会議資料は必ず L3 経由。
6. analytics トラックとの役割分担
指標定義: 売上、CVR、継続率をそろえる では、SQL で分母・分子を書き、コメントに定義を残します。
| レイヤ | analytics 入門 | データマネジメント入門 |
|---|---|---|
| 個人の SQL | ◎ 書く | 探索は可、公式は L3 |
| 定義の置き場 | SQL コメント | 用語集 + SSOT + L3 |
| 組織の合意 | 触れない | オーナー、変更管理 |
| 品質 | SQL チェック | 公式指標の変更プロセス |
理想形: analytics で SQL スキルを身につけ → 公式指標は DM プロセスで L3 に昇格。
7. Stage 2 の振り返り
| 章 | 問い | キーワード |
|---|---|---|
| s2-p1 | 用語はどの箱か | DAMA 地図 |
| s2-p2 | 正本はどこか | ER, マスタ, SSOT |
| s2-p3 | 言葉の意味は | オントロジー |
| s2-p4 | 列は何で、どう来たか | メタデータ, リネージ |
| s2-p5 | 指標はどこで触るか | セマンティックレイヤー |
Stage 3 からは データの置き場所(レイク、DWH、メダリオン)に入ります。 「意味」が整ったあとで、「物理構造」を学ぶ順番です。
体系コラム:カリキュラム上の位置づけ
| 項目 | 内容 |
|---|---|
| Stage / 章 | Stage 2 — 第5章「セマンティックレイヤー」(Stage 2 完結章) |
| 今回の論点 | SSOT マートがあっても、指標の 窓口 が散らばれば会議は元に戻る |
| DAMA 領域 | DW & BI、メタデータ管理 |
| ライフサイクル | 活用段階で BI・Excel・個人 SQL が乱立する問題を束ねる |
| 前章との接続 | メタデータとリネージ で整えた定義を、利用者の入口 に集約 |
| 次章への伏線 | OLTP と OLAP — 意味が整ったあと、物理の置き場所 へ |
📚 途中チェックポイント
Stage 2 を終えた時点で、次の 3 点を確認してください。
- 困りごとを DAMA の どの箱 に入れるか、2 例以上挙げられるか
- ER・マスタ・SSOT・オントロジーの 4 概念 を、さくら商事の例で区別できるか
- 「公式売上」の定義が、カタログ(または 1 枚シート)と SSOT マートで 一貫 しているか説明できるか
まとめ
| ポイント | 内容 |
|---|---|
| 問題 | 指標が BI・Excel・個人 SQL に散らばる |
| 解決 | L1 定義 → L2 SSOT マート → L3 セマンティックレイヤー |
| 現実解 | 公式指標だけ L3、探索は L2 直 |
| 連携 | analytics は SQL 定義、DM は組織の正本化 |
この章のキーメッセージ:
SSOT マートがあっても、指標の窓口 が乱れていれば会議は元に戻ります。 セマンティックレイヤーは高級ツールの話ではなく、公式数字を 1 箇所から配る設計 です。
次に読む
- 前章: メタデータとリネージ
- Stage 3 第1章: OLTP と OLAP
- 関連: 指標定義(analytics)
- 関連: BI ダッシュボード(analytics)
確認問題
問題 1
mart_finance.monthly_revenue が SSOT なのに、Looker の計算フィールドが古い定義のまま使われている。
最も本質的なギャップ はどれですか。
A. L2 データ正本と L3 指標インターフェースが連動していない
B. BigQuery の課金が高い
C. ER 図が A4 1 枚足りない
D. 統計検定 2 級に合格していない
正解: A
解説: テーブル正本と 利用者が触る指標定義 が切れている状態です。B/C/D は無関係です。
問題 2
探索的分析用の ad hoc SQL と、経営会議用の公式売上。 設計として最も適切 なのはどれですか。
A. 両方とも個人 SQL のみ。会議も毎回手集計
B. 公式売上はセマンティックレイヤー(または固定 BI モデル)経由、探索は SSOT マート直 SQL
C. 公式売上も探索も Excel のみ
D. 会議数字は口頭で伝え、記録しない
正解: B
解説: 公式と探索を 分離 しつつ、探索も L2 SSOT から取るのが現実解です。A/C/D は Stage 1 の症状を再生します。
問題 3
「dbt Semantic Layer を入れれば SSOT は自動的に完成する」という発言について。
A. 正しい。ツールが全部解決する
B. 不十分。L1 業務定義・オーナー・変更管理なしでは L3 だけでは正本にならない
C. 誤り。dbt は SSOT に使えない
D. 関係ない。セマンティックレイヤーは BI だけの話
正解: B
解説: ツールは 配線 です。用語合意(L1)とマート正本(L2)がなければ、セマンティックレイヤーは空の壳です。C は極端、D は API 等も含む L3 を狭めすぎです。
用語メモ(この章)
| 用語 | 意味(この章での使い方) |
|---|---|
| セマンティックレイヤー(Semantic Layer) | メトリクス・次元を論理モデルとして提供する指標の窓口 |
| メトリクス(Metric) | 集計定義付きの指標(売上、CVR 等) |
| ディメンション(Dimension) | 集計の切り口(時間、地域、キャンペーン等) |
| L1 / L2 / L3 | 業務定義 / データ正本 / 指標インターフェースの 3 層 |
| ad hoc 分析 | 公式化前の探索的な分析 |