Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Databricksメトリクスビューはじめてのもくもく会

Avatar for Takaaki Yayoi Takaaki Yayoi
September 28, 2026

 Databricksメトリクスビューはじめてのもくもく会

こちらのもくもく会の座学資料です。

Databricksメトリクスビューはじめてのもくもく会 - connpass https://jedai.connpass.com/event/407004/

Avatar for Takaaki Yayoi

Takaaki Yayoi

September 28, 2026

More Decks by Takaaki Yayoi

Other Decks in Technology

Transcript

  1. 自己紹介 弥生 隆明 (やよい たかあき) Databricks シニア スペシャリスト ソリューションアーキテクト ▪

    2020年からデータブリックス ジャパンにおいて、 プレセールス、POCに従事 ▪ 専門領域は生成AI、データエンジニアリング、 Webアプリケーション ▪ 青山学院大学 特別研究員 ▪ MLflowで実践するLLMOps / Apache Spark徹底入門 著者 ▪ Qiitaで執筆中 3
  2. メトリクスビューを一言で言うと 集計した表ではなく、 指標の計算方法を登録しておくビューです 数字は持ちません 単位は聞く⼈が決めます 置き場所は1か所 売上合計や購⼊顧客数の「求め⽅」だけ ⽉ごとか、カテゴリごとか、県ごとか。 Unity Catalogに登録するので、SQLから

    を置いておきます 聞かれてから元データで計算します もダッシュボードからもGenieからも同 じものを⾒ます いまはピンと来なくて構いません。この1⾏が腹落ちした状態で、もくもくタイムに⼊ってもらうのが今⽇のゴールです
  3. 軸を1つ増やすたびに、ビューが1本増える 1本⽬「⽉ごとに⾒たい」 2本⽬「カテゴリ別も」 3本⽬「都道府県別も」 SUM(amount) / COUNT(*) SUM(amount) / COUNT(*)

    SUM(amount) / COUNT(*) AS avg_order_value AS avg_order_value AS avg_order_value ... ... ... GROUP BY 月 GROUP BY 月, カテゴリ GROUP BY 月, 都道府県 客単価の計算式が、3か所に書かれています 返品を差し引く形に変えたくなったら、3本とも直します。使う⼈が3⼈いれば、3⼈がそれぞれSQLを書くので、計算式はさらに分 かれます そして、どのビューも使うにはSQLが要ります
  4. 毎晩の⽇次サマリから「3⽉に1回でも買った⼈は何⼈か」を出すと 同じ人が、買った日数だけ数えられる ⽇次サマリの「その⽇に買った⼈の数」を31⽇ぶん⾜すと 注⽂データから「3⽉に1回でも買った⼈の数」を数えると 335人 246人 そのまま⾜せる 計算はできるが、式を間違えやすい そもそも計算できない 売上合計

    客単価 購⼊顧客数 注⽂数 ⾜すだけで⽉の値になります キャンセル率 売上合計 ÷ 注⽂数 なら正しく出ます ⽇ごとの⼈数だけでは、誰と誰が同じ⼈か分 かりません ダッシュボードの合計⾏、フィルタを外したとき、Excelに落として⾜したときも同じです もくもく商店の2026年3⽉。完了した注⽂だけを数えています 中央値
  5. 客単価の列だけでは、2日分の客単価が決まらない 配られた列 もし注⽂数が 3⽉1⽇の客単価 2,206 円 3⽉2⽇の客単価 10,886 円 注⽂数は残っていません

    7件 と 10件 なら 124,300円 ÷ 17件 7,312円 231,486円 ÷ 101件 2,292円 ? もし注⽂数が 100件 と 1件 なら 同じ2,206円と10,886円から、7,312円にも2,292円にもなります。どちらなのかは、注⽂数がないと決められません 集計した表に残すのは、割り算の結果ではなく、分⼦の売上合計と分⺟の注⽂数 2,206円と10,886円は、もくもく商店の3⽉1⽇と3⽉2⽇の実際の値です
  6. 共有しているものが違う これまで: 集計した表を共有する 注⽂データ ⽇ごとに集計 6,000⾏ ⽇次サマリ 31⾏を⾜す 3⽉は31⾏ 3⽉の購⼊顧客数

    335⼈ (誤り) 注⽂データは残っているが、配られた⼈の⼿元にあるのは31⾏だけ これから: 計算⽅法を共有する 注⽂データ 6,000⾏ 定義を登録 ⽇ごとの購⼊顧客数 購⼊顧客数 = 顧客IDを重複なく 聞かれた単位で集 数える 計 完了した注⽂だけ カテゴリごとの購⼊顧客数 3⽉の購⼊顧客数 246⼈ 聞かれるたびに、注⽂データ6,000⾏から数え直す 集計した表を共有すると、その単位から動かせません。計算⽅法を共有すれば、単位は聞く⼈が決められます JEDAI もくもく会
  7. 登録するものは2種類だけ フィールド メジャー YAMLでは fields に書く YAMLでは measures に書く 集計する単位に使える列

    集計のしかたを書いたもの 注⽂⽇ 都道府県 商品カテゴリ 会員ランク もとのテーブルの1⾏1⾏に値として⼊っているので、集計しなくても取り出 せます 売上合計 SUM(amount) 注文数 COUNT(*) 購入顧客数 COUNT(DISTINCT customer_id) 式だけを登録します。値は計算しません 違いは、値がいつ決まるか フィールドは、⾏を⾒た時点で決まっている メジャーは、集計する単位が決まってはじめて決まる 3⽉の購⼊顧客数が246⼈なのか335⼈なのかは、3⽉全体で数えるのか、⽇ごとに数えてから⾜すのかが決まらないと決まりませんでした。メジャーが単 位なしで値を持てないのは、これと同じことです 他のBIツールで「ディメンション」と呼ばれてきたものと同じです。Databricksは画⾯もドキュメントも「フィールド」で通します
  8. 定義はYAMLで書く CREATE OR REPLACE VIEW sales_metrics WITH METRICS LANGUAGE YAML

    AS $$ version: 1.1 source: orders filter: status = '完了' fields: - name: order_month expr: DATE_TRUNC('MONTH', order_date) measures: - name: total_sales expr: SUM(amount) - name: order_count expr: COUNT(*) - name: avg_order_value expr: MEASURE(total_sales) / MEASURE(order_count) $$; JEDAI もくもく会 読みどころ • さっきの2種類が、そのまま fields と measures になっている • filter は誰がクエリしても必ずかかる • 客単価は「売上合計 ÷ 注⽂数」として定 義する • 定義済みのメジャーは MEASURE() で参照 できる • 集計の単位はどこにも書いていない
  9. クエリするときは MEASURE() で囲む ⽉ごとに⾒る カテゴリごとに⾒る SELECT order_month, SELECT category, MEASURE(avg_order_value)

    MEASURE(avg_order_value) FROM sales_metrics FROM sales_metrics GROUP BY order_month; GROUP BY category; 定義は1つ、切り⼝は⾃由 • GROUP BY に書くのがフィールド。ここで集計の単位が決まる • 単位が決まったので、MEASURE() で囲んだメジャーの値が計算できる • どの単位で聞かれても元データから集計し直すので、値が合う • SELECT * は使えない。列を書き、メジャーは MEASURE() で囲む • ダッシュボードやGenieからは MEASURE() が⾃動で付く JEDAI もくもく会
  10. ここからもくもくタイム Part 内容 今⽇の扱い Part 2 集計した表の落とし⽳を確かめる 必須 Part 3

    メトリクスビューを作る 必須 Part 4 軸を変えて聞く (課題3つ) 必須 Part 5‧おまけ ダッシュボード‧Genie、メジャーを⾜す 余裕があれば ほとんどのセルは完成しています。⾃分で書くのは Part 4 の課題3つだけです。解答は各課題のすぐ下に折りたたんであるの で、詰まったら開いてください 困ったらチャットへ。1時間15分から答え合わせをします
  11. GitHubからのノートブックの取り込み • ワークスペースでGitフォルダーを作成します。サイドバーで 「ワークスペース」 を選択 し、Git リポジトリのクローンを作成するフォルダーを参照します。 • 作成 >

    Git フォルダー をクリックします。 • 「Git フォルダーの作成 」ダイアログで、以下の情報を入力して、Gitフォルダを作成をク リックします。 ◦ GitリポジトリのURL: https://github.com/taka-yayoi/metric_view_mokumoku
  12. Free Editionで気をつけること • 計算資源はサーバーレスのみ。R / Scalaは使えません • 1日あたりのクォータ制限あり。超えるとその日のコンピュートは停止しますが、デー タは消えず翌日リセットされます •

    Lakebaseは公式の制限ページでは対象外と記載ですが、実機のFree Editionでは 作成できます。不安定な場合は運営のデモで雰囲気をつかんでください • Genie CodeのAgentモードでは確認メッセージが表示されます。当日は安全な samplesデータのみを扱うので問題ありません
  13. 今日作ったものは何の土台か Databricksは、会社の⾔葉と数字の地図をGenieオントロジーとして整理しています (プレビュー) ⼈が定義する メトリクスビュー (指標) ドメイン (データのまとまり) ページ (業務の⾔葉の説明)

    Databricksが集める 既存のノートブックやクエリから拾った定義、よく使われている情報 メトリクスビューは、この地図の「⼈が定義する」側の中⼼にあります JEDAI もくもく会