Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20250704_教育事業におけるアジャイルなデータ基盤構築
Search
Uchide Hiroki(ucchi-)
July 04, 2025
Programming
2
150
20250704_教育事業におけるアジャイルなデータ基盤構築
Data Modeling Night -「今」だからできる理論の実践事例 - の発表資料です。
https://pixiv.connpass.com/event/358285/
Uchide Hiroki(ucchi-)
July 04, 2025
Tweet
Share
More Decks by Uchide Hiroki(ucchi-)
See All by Uchide Hiroki(ucchi-)
プロダクト横断分析に役立つ、事前集計しないサマリーテーブル設計
hanon52_
3
680
30分でわかる『アジャイルデータモデリング』
hanon52_
15
7k
ダッシュボードが“使われる”ようにするための Tips を時間の限り紹介!
hanon52_
2
1.8k
BQ+dbt+Lookerを用いた、月間800億件以上の広告リクエストに対するデータモデリング
hanon52_
6
2.4k
Other Decks in Programming
See All in Programming
設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち
panda_program
6
1.8k
Goで作る、開発・CI環境
sin392
0
180
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
1
590
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
120
Cursor AI Agentと伴走する アプリケーションの高速リプレイス
daisuketakeda
1
130
エラーって何種類あるの?
kajitack
5
330
Create a website using Spatial Web
akkeylab
0
310
RailsGirls IZUMO スポンサーLT
16bitidol
0
110
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
1.1k
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
270
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
0
150
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
20
3.8k
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Code Reviewing Like a Champion
maltzj
524
40k
Into the Great Unknown - MozCon
thekraken
39
1.9k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Unsuck your backbone
ammeep
671
58k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Testing 201, or: Great Expectations
jmmastey
42
7.6k
Agile that works and the tools we love
rasmusluckow
329
21k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Transcript
1 教育事業における アジャイルなデータ基盤開発 ucchi- 2025-07-04 Data Modeling Night imaima
2 自己紹介 • アナリティクスエンジニア • X: @hanon52_ • 2021年 ピクシブ株式会社に新卒入社
◦ 広告のデータ基盤設計、Looker や Salesforce の整備 ◦ 社内の様々なプロダクトのデータ基盤構築、利活用推進 ◦ データの入口から出口まで何でもやります • 美味しいご飯を食べたり作ったりするのが好き ucchi- 2
3 事業:京都芸術大学 通信教育部 イラストレーションコース • オンラインで学士号が取れる • 2021年開校 • 延べ
7,300 名以上が入学 概要
4 イラストレーションコース独自の分析データ基盤を構築した話 発表の概要 4 概要
5 分析データ基盤ができる前の、エンジニアがいない中での運用。チーム規模の小さいうちは機能する。 しかし、チームが拡大するにつれて、手動での運用が難しくなってきた。 2024年まで:手動でのデータ活用 概要 > 前後比較
6 ビジネス職1人の体制から、エンジニアが2人増え、相談役で ucchi- が合流した。 リソースが増えたことで、2024年の夏頃からデータ基盤の構築に着手。 体制の拡充 概要 概要 > 前後比較
2024年夏まで 2024年夏から
7 2025年から:データ基盤を用いたデータの活用 概要 概要 > 前後比較
8 手動での運用を減らすことで、チームの拡大に対応できるようになった 概要 概要 > 前後比較
9 BigQuery + dbt + Looker Studio は よくあるツールの組み合わせ これについて解説しても面白くない
10 データ基盤構築プロジェクトの過程について話す
11 • 設計 ◦ ヒアリング ◦ プロジェクトのゴール設定 ◦ ダッシュボードのデザイン作成 •
開発 ◦ スキーマ駆動開発 ◦ 曳光弾開発 行ったこと
12 設計
13 データ基盤の目的や用途を定めるため、ステークホルダーにヒアリング。 → 見たいデータや関心ごとが、人によって異なることが判明。 ステークホルダーにヒアリング 在籍している学生の 学習体験を向上したい 学生ごとに、 学習情報をまとめて 見られるようにしたい
プロモーション経由 で獲得した学生が、 学習を継続している か知りたい 見込み学生を増やす プロモーションの精 度を上げたい プロモーション チーム 教務チーム マネージャー 設計 > ヒアリング
14 ヒアリング結果をまとめ、ディメンショナルマトリックスを作成 ステーク ホルダー ビジネス プロセス マネ目線 重要度 ディメンション 見込み
学生 プロモ 学生 科目 教員 … プロモチーム 入学説明会 低 ✔ ✔ ✔ … プロモチーム 外部広告 低 ✔ ✔ … プロモチーム 効果計測 低 ✔ ✔ ✔ … 教務チーム 履修 低 ✔ ✔ … 教務チーム 採点 低 ✔ ✔ ✔ … 教務チーム 個別面談 高 ✔ ✔ … … … … … … … … … … ディメンショナルマトリックスを用いて、 ヒアリング結果を集約した。 見えること • マネージャー目線で 「個別面談」のデータ活用が重要 • 実装の過程で「学生」ディメンション が整備される • 「学生」は使い回しが効く ◦ 教務:「履修」「採点」 ◦ プロモ:「効果計測」 ディメンショナルマトリックスの作成イメージ。一部アレンジ 参考)『アジャイルデータモデリング』図 4-5「ディメンショナルマトリックス」 設計 > ヒアリング
15 ディメンショナルマトリックスは、全体方針を一目で表せる ディメンショナルマトリックスを使えば • データ基盤を俯瞰する • 優先順位をつける ことができる。これによって、 ステークホルダーへの説明が容易になる。 ディメンショナルマトリックスの作成イメージ。一部アレンジ
参考)『アジャイルデータモデリング』図 4-5「ディメンショナルマトリックス」 設計 > ヒアリング ステーク ホルダー ビジネス プロセス マネ目線 重要度 ディメンション 見込み 学生 プロモ 学生 科目 教員 … プロモチーム 入学説明会 低 ✔ ✔ ✔ … プロモチーム 外部広告 低 ✔ ✔ … プロモチーム 効果計測 低 ✔ ✔ ✔ … 教務チーム 履修 低 ✔ ✔ … 教務チーム 採点 低 ✔ ✔ ✔ … 教務チーム 個別面談 高 ✔ ✔ … … … … … … … … … …
16 プロジェクトのゴールを設定 ディメンショナルマトリックスに基づき、 「教員が、個別面談時に、その学生の情報をまとめて見ることができるダッシュボードの構築」 をゴールにした。 設計 > ゴール設定 実際に作ったダッシュボード ※個人情報保護のためにモザイクをかけています
17 プロジェクトを始めるにあたり、今あるデータソースからデータ基盤を構築すると、 途中で利用者の意見を全くとりいれないため、 利用者にダッシュボードを納品する段階で手戻りが発生するリスクがある。 • 「ダッシュボードが使いづらい」とフィードバックされ、大きな追加改修が必要になる • 不要なグラフに使う、不要なデータパイプラインを開発してしまう • 必要なグラフに使うデータソースが足りないことが、ダッシュボードを作ってから明らかになる
課題:データ基盤から開発すると、手戻りが発生する 設計 > ダッシュボードのデザイン作成 参考)『アジャイルデータモデリング』1.2.1 「データ駆動型分析」
18 データソースからではなく、ダッシュボードのデザインから逆算して必要なデータを定義する。 参考)『アジャイルデータモデリング』1.2.2 「レポート駆動型分析」 参考)デジタル庁『ダッシュボードデザインの実践ガイドブック』https://www.digital.go.jp/resources/dashboard-guidebook 解決策:ダッシュボードから逆算する 設計 > ダッシュボードのデザイン作成
19 データ基盤の開発を始める前に、ダッシュボードのデザインを作ることで、 将来ハマるであろう落とし穴を早期に発見し、回避することができる。 ダッシュボードのデザイン作成は、将来の手戻りを事前に防ぐ 設計 > ダッシュボードのデザイン作成 データ基盤から開発する 先にダッシュボードのデザインを作る ダッシュボード納品後の大規模な追加改修
事前にスコープの絞り込みができる 不要なデータパイプラインの開発 可視化に必要なものしか作らない データソースの不足に後から気付く デザイン作成の段階で、早期に発見できる
20 ダッシュボードのデザイン作成手順 1. 下書きの作成 2. 認識のすり合わせ 3. スコープの絞り込み 設計 >
ダッシュボードのデザイン作成
21 まず、ステークホルダーに「理想のダッシュボード」を作成してもらう。 ① 下書きの作成 設計 > ダッシュボードのデザイン作成 > 作成手順 理想のダッシュボード
22 次に、「理想のダッシュボード」に対して質問を行い、指標の定義や可視化手法の確認を行う。 ② 認識のすり合わせ なぜ 円グラフ? この数値が高けれ ば、どのような行 動をとる? この指標は
何を表す? レポートのフィル ターで昨年度を指定 すると、この可視化 はどうなる? 設計 > ダッシュボードのデザイン作成 > 作成手順 理想のダッシュボード
23 初期リリースで絶対に必要なグラフのみに、スコープを絞り込む。 → 初期リリース時点ではダッシュボード全体の1/4を実装し、残りは運用開始後に追加を検討。 ③ スコープの絞り込み 設計 > ダッシュボードのデザイン作成 >
作成手順 スコープの 絞り込み 理想のダッシュボード 初期リリースのスコープ
24 デザインを元に、Looker Studio でレポートを作る方法もある。データソースは Google Sheet で代用。 「BI ツールによる制約」を明らかにすることができる。 (参考)
④ 先に Looker Studio まで作ってしまうのも手 当初のデザイン Looker Studio グラフ 設計 > ダッシュボードのデザイン作成 > 作成手順
25 • イラストレーションコースの分析データ基盤をアジャイルに開発した • 「ディメンショナルマトリックス」を描くことで、データ基盤の開発方針を説明しやすくする • ダッシュボードのデザインを事前に作成することで、将来の手戻りを防ぐ 設計パートのまとめ 設計 >
まとめ
26 開発
27 自己紹介 • エンジニア • GitHub : https://github.com/miolab • 2020年
ピクシブ株式会社に入社 ◦ pixiv等の各サービスの開発支援 ◦ カスタマーオペレーション関連システムの基盤構築・機能 開発・分析基盤のデータパイプライン実装 • 2024年よりCulture & Education Division 教育開発チームを兼務 • 好きな技術スタックはElixir imaima 27
28 『アジャイルデータモデリング』の考え方を、現場でのデータ基盤構築にどう「実践」し、 「具現化」していったか。 キーワード • スキーマ駆動開発 • 曳光弾(えいこうだん)開発 「アジャイル ×
データモデリング」の実践 開発 > 背景
29 • ダッシュボードのモックアップ・イメージはできている、必要そうな生データも手元にある • …でも、いざ作り始めようとすると、 どこから手を付ければ、使えるダッシュボードを最短距離で作れるのか? 背景・課題 開発 > 背景
30 スキーマ駆動開発
31 • データモデリングにおけるスキーマ駆動 (Schema-Driven) ◦ クエリやロジックを実装する前に、テーブル定義、カラム、データ型、リレーションシップといっ たデータの構造 (スキーマ) を先行して定義・設計するアプローチ ◦
開発の安定性と効率性を高めることが目的 データモデリングにおけるスキーマ駆動 開発 > スキーマ駆動開発
32 スキーマ駆動 : アジャイル開発とは相反しない 開発 > スキーマ駆動開発 • … アジャイル開発の「変化への迅速な対応」を重視するスタンスと相反するのでは?
◦ 大事なのは、「かろうじて役に立つ程度のシンプルな初期モデル」構築までに留めておくこと (いきなり完璧なモデルを作り込むことはしない) ◦ 必要最低限の分析や指標に絞ったアウトプットをスキーマ定義するアプローチ、つまり 「ある程度見越して先に考えておく」ことはアジャイルなデータモデリング開発とマッチする
33 アジャイルデータモデリングにおけるスキーマ駆動とは 完璧なスキーマを最初に作り込むのではなく、 将来の拡張性も見据えた『必要最小限のスキーマ』をまず最初に決めておき、 その後の開発や改善はそのスキーマを基準に柔軟に進めていくアプローチ。 開発 > スキーマ駆動開発 将来の拡張性も見据えた、というのは、 変更や追加がしやすいように余白を持たせておく、
という意味です。
34 ステークホルダーの現在の理解を反映し、かつチームが開発を始めるのに必要十分な程度のそこそこ良いモデル を準備することがカギ。 • ダッシュボードのタイルイメージからビジネス要件を整理 • そこから逆算して、各テーブルやカラムの名前、粒度を ざっくり洗い出して『スキーマの仮決め』をする スキーマ駆動開発の準備 開発
> スキーマ駆動開発 > 開発手順
35 スキーマ駆動開発の開発手順 1. アウトプットテーブルの設計 2. インプットのデータソース洗い出し 3. プロセス設計 (概念→論理→物理) 開発
> スキーマ駆動開発 > 開発手順
36 スキーマ駆動開発 : 概念設計イメージ 参考)風音屋TechBlog『データ分析で用いるSQLクエリの設計方法』 https://techblog.kazaneya.com/20241208-design-of-analytical-sql-queries/ ※ 設計ブロックは 一部省略 開発
> スキーマ駆動開発 > 開発手順 1 3 2
37 スキーマ駆動開発 : 論理設計・物理設計イメージ 参考)風音屋TechBlog『データ分析で用いるSQLクエリの設計方法』 https://techblog.kazaneya.com/20241208-design-of-analytical-sql-queries/ 開発 > スキーマ駆動開発 >
開発手順
38 スキーマ駆動開発 : 物理設計からCTE(共通テーブル式)を実装する 開発 > スキーマ駆動開発 > 開発手順
39 曳光弾開発
40 曳光弾開発 • ソフトウェア開発の名著『達人プログラマー』で紹介された手法 • まずシステムの端から端まで一本通してしまう開発アプローチ • 最小限度のものではあるが、最終的な本番システムの骨格を形成するもの として作る (プロトタイピングとの違いは、「捨てる」のではなく「残す」)
曳光弾開発 : すばやく「線を通す」ワンパス実装 開発 > 曳光弾開発 曳光弾は(略)すぐに目標を捉えることができるため、 射撃手は即座にフィードバックが得られるわけです。 (『達人プログラマー(第2版)』 12 曳光弾 )
41 • 最初から完璧なものを作ろうとせずに、ごく小さなデータやアーキテクチャだけでシステム全体が動くこ とを最速で確認する ◦ 『必要なものを、必要な時に、必要なだけ行う (JIT : Just-In–Time)』(※) アジャイルなデータモデリングにおける曳光弾開発
開発 > 曳光弾開発 ※参考)『アジャイルデータモデリング』1.2.4 「データ駆動型分析」
42 • 最初は「とにかく学籍番号が出るところまで」という目標設定で小さく仕上げ、骨格をつくる • これをベースにして徐々に肉付けしていくイメージ 曳光弾開発 : まずは小さく作って動かしていく 開発 >
曳光弾開発
43 曳光弾開発 : 徐々にアーキテクチャを本番仕様へ仕上げていく 開発 > 曳光弾開発
44 まとめ
45 開発パートのまとめ • スキーマ駆動開発で、必要十分な程度のスタートラインを整える • 曳光弾開発によって、まずは最小ワンパスで全部をすばやく通す → 不確実性をクリアにしながら、「現場で動く・育つ」データ基盤を 最速で仕立てる 開発
> まとめ
46 (ローレンス・コル、他)『アジャイルデータウェアハウス』 (デジタル庁)『ダッシュボードデザインの実践ガイドブック』 (アンドリュー・ハント、デヴィッド・トーマス、他)『達人プログラマー(第2版)』 参考文献