0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アジャイルデータモデリング 第5章 読書メモ

Last updated at Posted at 2025-08-13

この記事について

スタースキーマの設計プロセス

  1. データプロファイリング
    ソースシステムのデータでBEAM✲モデルを検証する
  2. 1.で修正されたBEAM✲モデルにサロゲートキーを追加する
  3. BEAM✲とER表記を組み合わせた「拡張スタースキーマ」を作成する
  4. 物理データウェアハウススキーマ、データウェアハウスマトリックスを作成する

アジャイルデータプロファイリング

アジャイルデータプロファイリングとは

  • 優先度の高いイベントとディメンション候補となるデータソースを特定し、データ構造、中身、品質を確認する
  • テスト駆動設計の一種

手順

  1. 候補となるデータソースを特定する
  2. 以下の項目をデータプロファイリングする(SQL or 専門ツール)
    • 欠損値の数
    • 一意な値と頻度
    • データの範囲と長さ
  3. データプロファイリングの結果を用いてBEAM✲モデルに注釈付与と修正を行う
  4. ディメンションとイベントの工数見積もり
    • プランニングポーカで異なる意見を多く取り入れるようにする
  5. 4の結果から、スタースキーマの工数見積もりを算出する
  6. モデルレビュー
  7. スプリントプランニング

スタースキーマの設計

  1. ディメンショナルテーブルの作成
  2. カレンダーディメンションテーブルの作成
  3. ファクトテーブルの作成

の手順で行う。詳細は以下。

1. ディメンショナルテーブルの作成

手順

  1. キーの種類の特定
    • キーの種類
      • ビジネスキー(BK):ソースシステムのテーブルで一意な「主キー」
      • サロゲートキー(SK):ディメンションテーブルの行に一意に割り当てられる整数の連番
  2. 履歴を必要とするか否かで、列に属性を追加する
    • 固定値(FV):修正のみ可能。誕生日など
    • 現在値(CV):履歴が不要。所属部門など
    • 履歴値(HV):履歴を保持。居住地など
  3. 有効開始日、有効終了日、現在の値かを列に追加
    • 現在の値の場合、有効終了日はNULLにするのではなく、 ETLプロセスでDBMSがサポートする最大の値にする

サロゲートキーのメリット

  • ビジネスキーの変化からデータウェアハウスを切り離せる
  • 欠損値に「0」のキーをつけることで、集計が簡単になる
  • ビジネスキーを匿名化でき、複合をしにくくする
  • ファクトテーブルのサイズが小さくなる(ディメンションサイズの増加は小さい)
  • 結合処理のパフォーマンス向上

ディメンションがどのように変化を扱うべきか

SCDタイプ1:履歴を書き換える

  • CVとFVのディメンショナル属性
  • 時点が変わると異なる答えが返ってくることに注意
  • FV
    • 履歴を書き換えるだけで実装できる
    • 更新処理はただの修正
  • CV
    • 変更履歴があったとしても、現在の値のみを利用する
    • ステークホルダーが現在の値のみと望んでいても、可能な限り履歴を保存する

SCDタイプ2:履歴を追跡する

  • HVのディメンショナル属性
  • 値が変更されると、新しい値を持った新しい行が挿入される
  • サロゲートキーを利用する

2. カレンダーディメンションテーブルの作成

  • 時間階層の適合ディメンション作成はDWHに不可欠
  • 以下のように、カレンダーディメンションと時計ディメンションに分けて実装する
日付キー
SK
日付
D

C
四半期
C

C
祝日フラグ
[はい/いいえ]
0 - ? ? ? -
20090101 2009年1月1日 1月 2009Q1 2009 はい
20090102 2009年1月2日 1月 2009Q1 2009 いいえ
20090201 2009年2月1日 2月 2009Q1 2009 いいえ
時刻キー
SK
時刻
C

N

N
AMPM
C
昼夜
C
ピークオフピーク
C
0 - - - - ? ?
1 00:00 0 0 AM オフピーク
2 00:01 0 1 AM オフピーク
1051 17:30 17 30 PM ピーク

3. ファクトテーブルの作成

  1. 「誰が、何を、いつ、どこで、なぜ」の詳細をディメンションの外部キーに置き換える
    数量(どれくらい)と退化ディメンション(DD)の詳細はそのままにする
  2. ファクトテーブル名を作成する
  3. ファクトテーブルタイプを記載する
    • 離散型イベント→トランザクション・ファクトテーブル→TF
    • 反復型イベント→定期スナップショット→PS
    • 発展型イベント→累積スナップショット→AS
  4. ファクト(数値)をどんなディメンションを利用しても合計できる(完全加算型:FA)ファクトにする
  5. 拡張スタースキーマ図を作成する

物理スキーマの作成

作成手順

  1. 命名規則の作成
  2. データ型の作成
  3. プロトタイピング
  4. データウェアハウスマトリックスの作成

テーブルの命名規則

  • ディメンション
    • 単数系の名詞
    • 例:CUSTOMER、PRODUCT
  • ファクト
    • 複数形の名詞+FACT
    • 例:SALES FACT、ORDERS FACT

データウェアハウスマトリックスとは

  • 物理ファクトテーブルと物理ディメンションテーブルの間の関係を文書化したもの
  • イベントマトリックスをコピーし、実際の物理テーブルで表現する
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?