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
5
1.4k
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
740
30分でわかる『アジャイルデータモデリング』
hanon52_
15
8k
ダッシュボードが“使われる”ようにするための Tips を時間の限り紹介!
hanon52_
2
1.9k
BQ+dbt+Lookerを用いた、月間800億件以上の広告リクエストに対するデータモデリング
hanon52_
6
2.5k
Other Decks in Programming
See All in Programming
バイブコーディングの正体——AIエージェントはソフトウェア開発を変えるか?
stakaya
5
850
ライブ配信サービスの インフラのジレンマ -マルチクラウドに至ったワケ-
mirrativ
1
130
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
460
202507_ADKで始めるエージェント開発の基本 〜デモを通じて紹介〜(奥田りさ)The Basics of Agent Development with ADK — A Demo-Focused Introduction
risatube
PRO
6
1.4k
ワープロって実は計算機で
pepepper
2
1.2k
バイブコーディング超えてバイブデプロイ〜CloudflareMCPで実現する、未来のアプリケーションデリバリー〜
azukiazusa1
3
800
Jakarta EE Meets AI
ivargrimstad
0
650
変化を楽しむエンジニアリング ~ いままでとこれから ~
murajun1978
0
710
新しいモバイルアプリ勉強会(仮)について
uetyo
1
250
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
3
2k
一人でAIプロダクトを作るための工夫 〜技術選定・開発プロセス編〜 / I want AI to work harder
rkaga
10
2.3k
バイブコーディング × 設計思考
nogu66
0
100
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
8
550
Documentation Writing (for coders)
carmenintech
73
5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Unsuck your backbone
ammeep
671
58k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Scaling GitHub
holman
461
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
BBQ
matthewcrist
89
9.8k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Balancing Empowerment & Direction
lara
1
540
Practical Orchestrator
shlominoach
190
11k
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版)』 参考文献