アジャイルデータモデリング

前提
ディメンショナルモデリングの本を読んでいる上での感想や気付き、メモを書く。

第 1 章「データウェアハウスのモデリング方法」
1.1 OLTP vs DW/BI(OLAP)
以下の表は、本書の 3 ページに紹介してある表の一部抜粋と自分なりの解釈を加えたもの。
基準 | OLTP(業務システム) | DW/BI(分析システム) |
---|---|---|
目的 | ビジネスプロセスの「実行」を支援 | ビジネスプロセスの「評価」を支援 |
最適化の重点 | 更新の効率と書き込みの一貫性 | クエリパフォーマンスと利便性 |
データ操作の種類 |
INSERT , SELECT , UPDATE , DELETE
|
SELECT |
データ操作の形式 | 事前に定義済み | アドホック |
更新頻度 | リアルタイム(ビジネスイベントの発生時) | 定期的(日次、月次など) |
設計手法 | ER モデリング(正規化) | ディメンショナルモデリング |
データモデル図 | ER 図 | スタースキーマ |
データウェアハウスにおける ER モデリングの欠点
第 3 正規形はデータの取り込みを容易にする一方で、BI やデータウェアハウスにとっては大きなデメリットがあります。正規化によってテーブルや結合パスが増え、クエリ(SQL における SELECT)効率が悪くなり、正しいコードを書くのが難しくなります。(p.6)
第 3 正規形モデルは、ビジネス・ステークホルダーがレビューや品質保証(QA)を行うには複雑すぎるままなのです。(p.6)
これは痛いほどよく分かる 😇
思い返すと、業務システムと分析システムのデータ要件の違いを十分理解していなかった時期に手掛けたデータ分析基盤は、「とにかく業務データを入れて使ってもらうことが大事!」という考えが先行して、業務システムやレポートをそのままのデータ構造(第 3 正規形や JSON など)で BigQuery に流し込んでいただけだった。
この経験から学んだ最大の気づきは、「誰でも簡単に使える」 という視点の重要性だ。SQL や ER 図を理解できるユーザーは意外と少なく(私の経験では 10-20% 程度)、残りの 8 割以上のビジネスユーザーにとって使いやすい形にデータを整備することが、データ活用を推進するために最も重要である。
ER モデリングのクエリサンプル
-- 大カテゴリ名ごとに注文明細の合計を算出
select
large_category.large_category_name,
sum(order_item.item_price)
from order_item
left join product
on order_item.product_id = product.product_id
left join small_category
on product.small_category_cd = small_category.small_category_cd
left join large_category
on small_category.large_category_cd = large_category.large_category_cd
left join product
on order_item.product_id = product.product_id
group by 1
ディメンショナルモデリングのクエリサンプル
-- 大カテゴリ名ごとに注文明細の合計を算出
select
dim_product.large_category_name,
sum(fct_order.item_price)
from fct_order
left join dim_product using (product_key)
group by 1
スマートな BI ソフトウェアは、データベーススキーマの複雑さをセマンティックレイヤーで隠すことができますが、それは単に第 3 正規形を理解する負担を、クエリ時の BI ユーザーから設定時の BI 開発者に移しているだけです。(p.6)
自社のデータ分析基盤の変遷を振り返ると、まさにこの指摘が的確だと感じる。
当初、業務データをそのまま分析基盤に複製していた状態から脱却しようと、Looker のセマンティックレイヤーを導入してみた。確かにビジネスユーザーの負担は軽減されたものの、結果として開発者側で複雑な LookML の管理が必要になり、むしろ課題が深刻化していった。特に、データモデルの理解が特定の開発者に依存する形となり、新たな技術的負債を生んでしまった。
この経験から、データ分析基盤の真の価値は、ビジネスユーザーと開発者の双方にとってシンプルで理解しやすい設計にあること を学んだ。セマンティックレイヤーで複雑さを隠蔽するのではなく、本質的にシンプルなデータモデルを目指すことが、持続可能なデータ分析基盤の構築には不可欠だと実感している。
データウェアハウスにおけるディメンショナルモデリングの優位性
ディメンショナルモデルにおける利点の本質は「プロセス指向」であることです。(p.11)
最適なディメンショナルモデルは、どのビジネスプロセスを測定すべきか、という問いに対する回答にもなります。ディメンションとファクトに分かれたテーブルは、単なる非正規化データの集まりではなく、測定すべきビジネスイベントの詳細を記述する「7 W」となります。(p.11)
7W | 説明 | 分類 |
---|---|---|
Who | 誰が(Who) 関与しているのか。 | ディメンション |
What | 彼/彼女らは 何を(What) したのか。 何に(What) 対して行われたのか。 |
ディメンション |
When | それは いつ(When) 起こったのか。 | ディメンション |
Where | どこで(Where) 行われたのか。 | ディメンション |
Why | なぜ(Why) それが起こったのか。 | ディメンション |
HoW | それは どのように(HoW) 起こったのか。 | ディメンション |
HoW many | どれくらい(HoW many) 記録されたのか。 | ファクト |