📝

DWHにおけるデータモデル関連資料 のメモ

2024/01/21に公開

有用な資料はたくさんあるので, 資料を読みつつキーワードについて補完しておく.

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があるものと考えればわかりやすいでしょう。

https://www.cloud-for-all.com/azure/blog/enterprise-data-warehouse#toc-0

データ分析を支える技術: データモデリング再入門

https://dev.classmethod.jp/articles/devio2022-primer-of-data-modeling/

  • 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をご紹介

https://zenn.dev/dataheroes/articles/135fe6736d9ddf

  • データの追加・削除等の柔軟性が高く, 履歴データを含むすべての生データを管理する. ただし直接ユーザーが利用するのは面倒なので, 大福帳モデルとかを検討するのが良い.

dbtvaultはここまでできる

  • Raw Vaultがステージングから直接構築される上流に近いモデル群なのに対して, Business Vaultはビジネス要件を反映したモデルでいわゆるデータマート層のこと.
    https://zenn.dev/dataheroes/articles/6417f80a07e30d

Discussion