#book #r2025
[](https://gyazo.com/4ef09e95c08a56210acf415d89fa735a)
## なぜこの本を読んだか
X で流れてきたのでなんとなく読みはじめた。
ちょうどデータエンジニアリングに知的好奇心という意味での興味があったのもある。
また [30分でわかる『アジャイルデータモデリング』](https://speakerdeck.com/hanon52_/30fen-dewakaru-aziyairudetamoderingu) も参照されたい
## 何が書かれている本か
データウェアハウス (つまり OLAP) としてデータベースを利用する際にどのようなスキーマ設計をしていくべきか、そもそもどのようなプロセスでスキーマを設計していくべきかなどについて書かれている。
データエンジニアリングについては齧った程度の知識の感想ではあるが、現代で話題になっているディメンショナルデータモデリングをはじめとしてセマンティックレイヤーなどについて網羅的に理解できる本でよかった。
## メモ
当たり前ではあるが、通常のアプリケーションデータベース (Online Transactional Processing) は Write がそれなりにある一方でデータウェアハウスのような分析が主のデータベースは Read がほとんどである。
ゆえにクエリパターンの考慮が必要でそのためにも Read に適したスキーマ設計である必要がある。
具体的な主張は本を読んでもらうとして、基本的には正規化をして join をするようなスキーマ設計にすると Read の際には毎回コストがかかってしまったり大量のデータを扱うのが難しくなってしまうためいわゆる列指向のスキーマ設計や物理データベースが必要になる。
> ストーリータイプ
[[Introducing Event Storming]] に出てくるドメインイベントのような考え方でイベント (事実) を整理する考え方
- 離散型 -> 単独のイベント
- e.g. 商品の購入など
- 発展型 -> 関連性のあるイベントがステータスと共に連続する
- e.g. 注文における「注文」「出荷」「配達」「支払い」など
- 反復型 -> 定期的に発生するイベント
- e.g. 銀行からの引き落としなど
これらをそれこそ Event Storming のようなワークショップ形式で収集していくことになる
OLAP の特徴としては、さらに変数となるような「ディメンション」も発見していくことになる点
## 感想
- メモにあるものはごく一部でディメンションの探索、設計の仕方などかなりの分量で説明していて非常に参考になる本だった
- [[Introducing Event Storming]] や 実例マッピングなどに近い考え方が多々ありソフトウェアエンジニアリングの知識が活きる場面も多々あるんだなあと改めて感じることができた