この記事について
- 以下の書籍の読書メモです
アジャイルデータモデリング-組織にデータ分析を広めるためのテーブル設計ガイド
BEAM✲とは
- ディメンショナルモデリングを実現するためのアジャイルなモデリング手法
- ステークホルダーに「データストーリー」をヒアリングすることで、実際に人や組織が行う行動である「ビジネスイベント」を把握し、モデリング化する
データストーリー
種類
- 離散型
- 特定の時点または短い期間のストーリー
- 商品の購入、Webページの閲覧など
- 発展型
- 数日、数週間、数ヶ月かけて進行するストーリー
- 注文〜配達、保険金請求〜入金など
- 反復型
- 毎日、毎週、毎月などの予測可能な間隔で発生し、定期的に計測されるストーリー
- 毎月の棚卸し、毎月の利息と元金の請求など
実装方法
| BEAM✲ストーリータイプ | スタースキーマの種類/物理ディメンショナルモデル |
|---|---|
| 離散型 | トランザクション・ファクトテーブル |
| 反復型 | 定期スナップショット |
| 発展型 | 累積スナップショット |
BEAM✲
7Wフレームワーク
- 7W(誰が、何を、どこで、いつ、どれくらい、なぜ、どのように)を使ってビジネスイベントをモデル化する
BEAM✲シーケンス(7Wフローチャート)
- この順番でステークホルダーにヒアリングすることで、ビジネスイベントの詳細の把握ができる
BEAM✲の実践手順
| 手順 | BEAM✳︎手法 |
|---|---|
| 1. イベントの発見(Discover) | 「誰が何をしますか?」という質問 |
| 2. イベントの記録(Document)) | BEAM✳︎テーブル |
| 3. イベントの説明(Describe) | 7Wとイベントストーリー |
BEAM✲テーブル
- 最小限のイベントストーリーを用いて、網羅的にビジネスイベントを把握するためのフレームワーク
- 5つの種類のイベントストーリーについてサンプルデータを収集し、テンプレートにまとめる
モデリングに使うイベントストーリーの種類とわかること
| 種類 | わかること |
|---|---|
| 典型的なストーリー | データの範囲と例外、イベントの最小粒度 |
| 極端なストーリー | データの範囲と例外 |
| 反復ストーリー | イベントの最小粒度 |
| 欠損ストーリー | 欠損値の対応方法 |
| グループストーリー | ビジネスモデルの混在や多値の関係 |
BEAM✲テーブルのテンプレート
| 主語 | 目的語 動詞 |
日付/時刻に | 場所で/から/まで | 数量 | 理由 から |
方法 で/用いて |
|---|---|---|---|---|---|---|
| [誰が] | [何を] | [いつ] | [どこで] | [どれくらい] | [なぜ] | [どのように] |
| 典型的 | 典型的/主要 | 典型的 | 典型的 | 典型的/平均 | 典型的/通常 | 典型的/通常 |
| 極端な | 極端な | 極端な | 極端な | 極端な | 極端な | 例外 |
| 反復 | 反復 | 反復 | 反復 | 反復 | 反復 | 反復 |
| 欠損 | 欠損 | 欠損 | 欠損 | 欠損 | 欠損 | 欠損 |
| グループ | 複数/バンドル | マルチレベル | 多値 | 多値 | ||
| 割合 | ||||||
| 古い、低い値 | 古い、低い値 | 必要かつ最古の | 近い | 最小、負 0 |
通常 | 通常 |
| 新しい、高い値 | 新しい、高い値 | 最も新しい 未来の |
遠い | 最大、正確 | 例外 | 例外 |