📝
DWHにおけるデータモデル関連資料 のメモ
有用な資料はたくさんあるので, 資料を読みつつキーワードについて補完しておく.
DWHにおけるデータモデル のトレンド
正規化モデル
- 正規化モデルはデータベース設計の一般的な方法であり, データの冗長性を排除しデータの生合成を保つことを目的とする.
- データは複数の関連するテーブルに分割されて, 重複を避けるために各テーブルは独自のデータを持つ.
スタースキーマ
- 1つのfact tableに対して複数の dimension tableと呼ばれる関連テーブルが配置される
- dimension tableを正規化したものをスノーフレイクスキーマと呼ぶ, スタースキーマでは第2正規形に留めておく. スノースキーマでは正規化によるメリットはあるが, 複雑なテーブル結合によるパフォーマンスの低下やテーブル間の関係把握の必要性などのデメリットがある.
confirmed dimension (適合ディメンション)
- 複数のビジネスプロスにまたがるディメンションのことで, スタースキーマにおいては複数の fact table に関連する dimension tableのこと.
EDW: Enterprise Data Warehouse
「エンタープライズデータウェアハウス(Enterprise Data Warehouse)」とは、企業内の情報を統合化・一元化し、全社で活用するためのデータ置き場のことで、省略して「EDW」と呼ばれることもあります。
「データウェアハウス(Data Ware House:DWH)」とは、統合的に整理された大量のデータ群、およびその管理システムを指す語で、その中でも企業(Enterprise)が用いるものをEDWと呼んでいます。つまり、広義でいえば両者に大きな違いはなく、DWHの一義としてEDWがあるものと考えればわかりやすいでしょう。
データ分析を支える技術: データモデリング再入門
- DWHの2人の貢献者である, インモンさんと キンボールさんのアプローチと Data Vault2.0というアプローチについて概観する.
コーポレートインフォメーションファクトリー
- インモンさんのアプローチ
ディメンショナルデータウェアハウス
- キンボールさんのアプローチ
PIT (Point in Time) Table
- データウェアハウス内での特定のデータの状態を, 特定の時間で捉えるためのテーブル
- クレジットカードの決済など利用->承認など時間軸で遷移するトランザクションを管理するためはHubの1つの取引に対して, Sateliteから複数の情報が紐づく. PIT Tableはどの時点のテーブルと紐づけるかを判断する.
※ 勉強しながら書いているので間違っているかも..
mermaid code
erDiagram
hub_history ||--|{ sat_status : ""
hub_history ||--|{ history_pit :""
history_pit || -- || sat_status : ""
hub_history {
hub_history_key bigint PK
order_id bigint
hub_load_dts timestamp
hub_rec_src string
}
sat_status {
sat_status_key bigint FK
hub_history_key bigint FK
sat_load_dts timestamp FK
}
history_pit {
hub_history_key bigint FK
pit_load_dts timestamp FK
history_load_dts timestamp
}
SCD: スローリーチェンジングディメンション
- Type2 SCD: 値が変化した時に新しいレコードを追加して, レコードに開始日と終了日を入れる.
※ 他はP28を参照
データ基盤の○層構造を独り歩きさせない データモデリング設計
- 企業の視点で データモデリング開発に従事するメンバーのスキルセットに応じてどのような開発をするべきか? 各層の責務が明確になるのか?などの運用をしていく観点で気をつけるべきこと.
DataVault2.0をご紹介
- データの追加・削除等の柔軟性が高く, 履歴データを含むすべての生データを管理する. ただし直接ユーザーが利用するのは面倒なので, 大福帳モデルとかを検討するのが良い.
dbtvaultはここまでできる
- Raw Vaultがステージングから直接構築される上流に近いモデル群なのに対して, Business Vaultはビジネス要件を反映したモデルでいわゆるデータマート層のこと.
https://zenn.dev/dataheroes/articles/6417f80a07e30d
Discussion