お問い合わせ

技術・ツール紹介

セマンティックレイヤーとは?指標の定義をそろえ、AIのデータ分析の精度を上げる仕組み

佐藤 恒株式会社INVOX 代表取締役 CEO

セマンティックレイヤーは、売上・MRR・解約率などの指標の定義を1か所にまとめ、ダッシュボードやAIが同じ定義で答えるようにする仕組みです。データウェアハウス(DWH)のテーブルと、データを使う人やツールの間に置きます。

dbt Labsは、セマンティックレイヤーを使うと、既存のモデルの上に指標を定義でき、結合も自動で処理されるため、同じ処理を何度も書かずに済む、と説明しています(dbt Semantic Layer(別タブで開く))。

生成AIにデータを分析させる場面が増え、セマンティックレイヤーへの関心が高まっています。AIがSQLを書くときに、指標の定義を推測させずに済むためです。

本記事では、セマンティックレイヤーが必要になる理由、主な製品、AIの正答率への効果、小さく始める方法を解説します。記載の仕様は2026年10月時点の公式情報に基づきます。

セマンティックレイヤーとは

セマンティックレイヤーの位置づけ。BigQueryやSnowflakeのテーブルの上に、売上(税抜・返金後)・MRR・解約率(解約 ÷ 月初の有料会員)などの指標の定義を置き、BIのダッシュボード・スプレッドシート・AIエージェントが同じ定義で答える

「セマンティック(semantic)」は「意味の」という意味です。DWHのテーブルは、列の名前と値しか持っていません。amount という列が税込か税抜か、返金を引いた後か、テーブルを見ただけでは分かりません。

セマンティックレイヤーには、次のような「意味」を書きます。

書くもの 例
指標の計算式 売上 = 請求額(税抜)の合計 − 返金
対象と除外 社内のテスト用のアカウントは除く。トライアル中の会員は有料会員に含めない
集計の単位 MRRは月末の時点。解約率は月初の有料会員を分母にする
テーブルのつなぎ方 請求のテーブルと顧客のテーブルは customer_id でつなぐ
切り口(ディメンション) プラン、獲得チャネル、登録月で分けられる

ダッシュボードやAIは、テーブルを直接読む代わりに、このレイヤーに「プラン別の4月のMRR」のように問い合わせます。計算はレイヤーが定義どおりに行います。

なぜ必要になるのか

部署によって数字が違う

同じ「売上」でも、経理は税抜・返金後、営業は契約の金額、マーケティングは決済の画面の金額、というように、定義が部署で違うことがあります。会議で数字が合わず、どれが正しいかを確かめるのに時間がかかります。

ダッシュボードごとにSQLを書くと、同じ指標の計算が何か所にも散らばります。定義を変えたときに、一部だけ直し忘れることも起きます。

AIが定義を推測してしまう

生成AIに「先月の解約率は?」と尋ねると、AIはテーブルの列の名前から、計算の方法を推測してSQLを書きます。分母を月初の会員にするか月末にするか、休止を解約に含めるかは、テーブルを見ても分かりません。

AIの答えは、もっともらしい形で返ってくるため、定義の違いに気づきにくいのが問題です。セマンティックレイヤーで定義を決めておけば、定義した指標については、AIは計算の方法を推測せず、決められた定義で答えます。

AIの正答率への効果

dbt Labsのベンチマーク(2026年4月)

dbt Labsは、下のdata.worldの研究と同じ保険のデータ(15テーブル)を使い、11の質問を、それぞれ20回ずつ、生成AIに答えさせて正答率を比べました(Semantic Layer vs. Text-to-SQL: 2026 Benchmark Update(別タブで開く))。

方法 2023年(GPT-4) 2026年(Claude Sonnet 4.6・GPT-5.3 Codex)
AIがテーブルから直接SQLを書く(text-to-SQL) 32.7% 64.5%
セマンティックレイヤーを通す 60.5% 72.7%

セマンティックレイヤーで定義されている範囲の質問に限ると、2026年は、セマンティックレイヤーを通した場合の正答率が100%でした。直接SQLを書いた場合は51.2〜62.5%です。

一方で、定義されていない範囲の質問(多くのテーブルをたどる必要があるもの)には、セマンティックレイヤーでは答えられませんでした。ただし、そのときは誤った数字を返さず、答えられないことを返します。AIが直接書くSQLは、間違えるときも、もっともらしい数字を返します。

dbt Labsが勧める進め方は、次の順です。

  1. まずセマンティックレイヤーで答えられるかを確かめる
  2. 答えられなければ、小さなモデル(テーブル)を足して埋められるかを確かめる
  3. それでも埋められない探索的な質問は、AIが直接書くSQLで答える

ベンチマークでも、最小限のモデルを3つ足すと、セマンティックレイヤーで答えられる範囲が広がりました。

そのほかの調査

  • data.worldの研究(2023年):GPT-4に保険のデータの43問を答えさせ、SQLを直接書かせた場合の正答率は16.7%、データの意味をナレッジグラフで与えた場合は54.2%でした(arXiv 2311.07509(別タブで開く))。セマンティックレイヤーそのものではなく、データの意味を与える方法の研究です
  • Google Cloudは、社内のテストで、Lookerのセマンティックレイヤーを使うと、生成AIへの自然言語の質問で、データの誤りが最大で3分の2減った、としています(Google Cloud Blog(別タブで開く))。テストの条件は公開されていません

AIのモデルが良くなり、直接SQLを書かせた場合の正答率も上がっています。それでも、毎月の報告に使う指標のように、間違いが許されない数字では、定義を決めておく価値は変わりません。

主な製品(2026年10月時点)

製品 概要 提供状況
dbt Semantic Layer(MetricFlow) dbtのモデルの上に指標を定義する。MetricFlowは2025年10月にApache 2.0でオープンソース化 dbt platformのStarter以上のプランで利用。Snowflake・BigQuery・Databricks・Redshift・Postgres・Trinoに対応
Looker(LookML) LookerのモデリングのレイヤーのLookMLで、指標と結合を定義する Lookerの会話型分析(2025年11月に一般提供)は、LookMLの定義をもとに答える
Snowflake セマンティックビュー データベースのオブジェクトとして、指標と結合を保存する 2025年6月に一般提供。Cortex Analyst(自然言語でのデータの問い合わせ)が、この定義を読んでSQLを作る
Databricks Unity Catalog Business Semantics 指標の定義(Metric Views)をUnity Catalogで管理する 2026年4月に一般提供。Genieスペースから使える
Cube BI・アプリ・AIエージェントが共通で使うセマンティックレイヤー オープンソース版(Cube Core)と商用版がある
Power BI セマンティックモデル Power BIの中で、指標と関係を定義する 2023年11月に「データセット」から名称を変更

出典:MetricFlowのオープンソース化(別タブで開く)、dbt Semantic Layerの設定(別タブで開く)、Looker 会話型分析(別タブで開く)、Snowflake セマンティックビュー(別タブで開く)、Snowflake リリースノート(別タブで開く)、Databricks(別タブで開く)、Cube(別タブで開く)、Power BI(別タブで開く)

なお、dbt Labsは2026年6月にFivetranとの合併を完了しています(dbt Labs(別タブで開く))。dbtそのものについては「dbtとは(別タブで開く)」で解説しています。

BigQueryで使えるものには、Looker、dbt Semantic Layer、Cubeなどがあります。BigQueryの会話型分析は、Lookerと組み合わせると、LookMLの指標の定義をもとに答えます(Google Cloud Blog(別タブで開く))。

定義の書き方を共通にする動き:Apache Ossie

製品ごとに定義の書き方が違うと、ツールを変えるたびに定義を書き直すことになります。そこで、2025年9月に、Snowflake・Salesforce・dbt Labsなど17社が、定義の書き方を共通にする「Open Semantic Interchange(OSI)」を発表しました(Snowflake(別タブで開く))。

2026年1月に最初の仕様が公開され、Databricksなども加わりました(Snowflake(別タブで開く))。その後、2026年7月にApacheソフトウェア財団のインキュベーターに入り、名前は「Apache Ossie」になりました(Apache Ossie(別タブで開く))。

小さく始める方法

セマンティックレイヤーの製品を入れる前に、できることがあります。

1. 重要な指標を5〜10個に絞り、定義を書く

まず、経営会議や毎月の報告で使う指標を5〜10個選びます。サブスクなら、MRR、有料会員数、解約率、有料転換率、LTVなどです。指標ごとに、上の表の「指標の計算式・対象と除外・集計の単位」を文章で書きます。

MRRの定義は「MRRとは(別タブで開く)」、解約率の分母の決め方は「チャーン分析のやり方(別タブで開く)」、指標の分解は「KPIツリーの作り方(別タブで開く)」で解説しています。

2. 定義をDWHのテーブルにする

定義した指標を、dbtなどでDWHのテーブル(たとえば月ごと・顧客ごとのMRRのテーブル)として作っておきます。ダッシュボードやAIは、元のテーブルではなく、このテーブルを読むようにします。これだけでも、計算が1か所にまとまります。

3. AIには定義を前提として渡す

Claudeなどで分析するときは、指標の定義を書いた文書と、使ってよいテーブルの一覧を、毎回の前提として渡します。Claudeのスキルやプロジェクトの指示に入れておけば、毎回書く必要はありません。

渡し方の例は、「カスタマーサクセスのKPIの決め方(別タブで開く)」の「定義を前提として渡す」の節で紹介しています。

4. 使う人とツールが増えたら、製品を検討する

ダッシュボードのツールが複数ある、AIで分析する人が増えた、指標の数が増えて文書では管理しきれない、といった段階になったら、セマンティックレイヤーの製品を検討します。今使っているDWHとBIのツールに合わせて選びます。

セマンティックレイヤーを入れるときの注意点

定義を決めるのは、ツールではなく人

どの製品を使っても、「解約率の分母は何か」を決めるのは事業の担当者です。定義が決まらないままツールを入れても、数字はそろいません。経理・営業・マーケティングで定義を話し合い、決めた理由も残します。

すべての質問には答えられない

dbt Labsのベンチマークのとおり、定義していない指標や切り口の質問には答えられません。探索的な分析は、AIに直接SQLを書かせるなど、別の方法と組み合わせます。

定義の変更を管理する

定義を変えると、過去の数字も変わります。いつ、誰が、なぜ変えたかを記録し、変更前の数字と比べられるようにしておきます。dbtのように、定義をコードとして管理できる製品なら、Gitで変更の履歴を残せます。

まとめ

  • セマンティックレイヤー:指標の定義を1か所にまとめ、BIやAIが同じ定義で答えるようにする仕組み
  • 必要になる理由:部署ごとに数字が違う問題と、AIが定義を推測してしまう問題を防ぐ
  • AIへの効果:dbt Labsの2026年のベンチマークでは、定義した範囲の質問の正答率が100%。定義していない質問には答えられないため、直接SQLを書かせる方法と使い分ける
  • 主な製品:dbt Semantic Layer、Looker(LookML)、Snowflake セマンティックビュー、Databricks、Cube、Power BI。書き方を共通にするApache Ossie(旧OSI)も進んでいる
  • 始め方:重要な指標を5〜10個に絞って定義を書き、DWHのテーブルにし、AIには定義を前提として渡す

株式会社INVOXは、データ基盤の構築、データ分析の支援、AIエージェントの開発を行っています。指標の定義を整理し、BigQueryとdbtで同じ定義の数字を出す仕組みを作り、AIで正しく分析できる状態を作る支援をしています。

「部署ごとに数字が合わない」「AIで分析させたいが、答えが正しいか不安」といった課題をお持ちでしたら、お問い合わせください。

CONTACT

「事業成長に繋がるデータ活用」ならINVOXへ

相談する

何から手を付ければいいか分からない段階でも構いません。現状を伺い、次にやるべきことをお伝えします。

お問い合わせ

資料ダウンロード

サービスごとに、提供内容・支援実績・進め方と費用の目安をまとめています。社内での検討や共有にお使いください。

資料ダウンロード