4-1. Semantic Layerとは
Semantic Layerは、データベースの物理構造と、利用者が使う業務用語の間をつなぐ層です。Snowflakeでは新規実装ではSemantic Viewが推奨されています。
flowchart LR
U[利用者
売上・粗利・顧客] --> S[Semantic View] S --> P[物理データ
SALES_AMT / COST_AMT / CUST_ID]
売上・粗利・顧客] --> S[Semantic View] S --> P[物理データ
SALES_AMT / COST_AMT / CUST_ID]
4-2. 旧Semantic ModelとSemantic View
| 項目 | 旧 Semantic Model YAML | Semantic View |
|---|---|---|
| 保存 | Stage上のYAML | SchemaレベルのSnowflakeオブジェクト |
| 新規実装 | 後方互換として利用可能 | 推奨 |
| 権限・メタデータ | ファイル管理中心 | Snowflakeオブジェクトとして統合 |
| 用途 | Cortex Analyst | Cortex Analyst / Cortex Agent |
教材では旧資料を読むために「Semantic Model」という名称も扱いますが、新規設計はSemantic Viewを基本とします。
4-3. Semantic Viewで定義するもの
Logical Table
分析対象となる業務上のテーブル。
Dimension
商品、顧客、地域、日付など、分析軸。
Fact
売上金額、数量、原価などの数値。
Metric
売上、粗利率、顧客単価などの計算済み指標。
Relationship
売上と商品、売上と顧客などの関係。
Filter
有効顧客、対象期間など再利用する条件。
4-4. 良い定義と悪い定義
| 対象 | 悪い例 | 良い例 |
|---|---|---|
| 売上金額 | 「売上」 | 「税抜販売金額の合計。返品伝票は除外。会計年月ベースで集計する」 |
| 顧客 | 「顧客コード」 | 「請求先単位の顧客。社内取引先は除外」 |
| 粗利率 | 「利益率」 | 「(売上金額-売上原価) ÷ 売上金額。売上0の場合はNULL」 |
AI精度を上げるためには「人が読んでも迷わない説明」を付けるのが基本です。
4-5. 指標をSemantic Viewへ寄せる
同じ「売上」でも部門ごとに定義が違うと、AI回答が不安定になります。重要KPIはSemantic ViewのMetricとして明確化します。
売上金額 = 税抜販売金額の合計 粗利 = 売上金額 - 売上原価 粗利率 = 粗利 / 売上金額 購入顧客数 = DISTINCT 顧客ID 顧客単価 = 売上金額 / 購入顧客数
4-6. Verified Query Repository(VQR)
Verified Query Repositoryは、正しいことを人が確認した「質問とSQL」の組み合わせを登録し、類似質問のSQL生成精度を高める仕組みです。
flowchart LR
Q[利用者の質問] --> A[Cortex Analyst]
V[Verified Query
質問+正解SQL] --> A A --> SQL[より信頼性の高いSQL]
質問+正解SQL] --> A A --> SQL[より信頼性の高いSQL]
テクニック:「売上TOP10」「前年同月比」「粗利率」「既存顧客売上」など、頻出かつ重要な質問からVerified Queryを登録します。
4-7. Sample ValuesとLiteral検索
商品名や地域名など、利用者が入力する値とDB上の値が微妙に違う場合があります。低カーディナリティのDimensionにはSample Valuesを持たせる、値種類が多い場合はCortex Searchを使ったLiteral検索を検討します。
利用者:「東京エリア」 → 実データ:「東京都」
この差を吸収できると、WHERE条件の誤りを減らせます。
4-8. Semantic Viewの分割方針
巨大な全社モデルを1つだけ作るより、質問のまとまりごとに分割する設計が実務では管理しやすくなります。
| Semantic View例 | 主な質問 |
|---|---|
| SALES_ANALYTICS | 売上、粗利、商品、顧客、地域 |
| INVENTORY_ANALYTICS | 在庫数量、在庫金額、欠品 |
| AR_ANALYTICS | 売掛金、入金、与信 |
この章で理解したこと
- 新規実装ではSemantic Viewが推奨
- 業務用語・関係・Metricを明文化する
- Verified Queryは精度向上の重要テクニック
- Sample ValuesやLiteral検索も有効
- Semantic Viewは業務領域ごとに適切に分割する