Traffine I/O

日本語

2022-12-30

代表的なデータモデリング手法

代表的なデータモデリング手法

データウェアハウス(DWH)の文脈において、データモデリングには次の3種類のアーキテクチャが有名です。

  • EDW(Enterprize Data Warehouse)
  • ディメンショナルモデリング
  • Data Vault

EDW

EDWは、DWHの父とも呼ばれるBill Inmonが提唱したもので、データは一時的な Landing Area にロードされ、その後、一連のETLプロセスによって第3正規形(3NF)のDWHにデータがロードされます。データはその後、分析とレポーティングをするためのデータマートに抽出されます。

Inmon model

When should I use Data Vault?

メリット

データを3 NFまで正規化して冗⻑性を可能な限り回避することで、ビジネス要件を明確化し、データ更新の不正を防⽌することができます。また、DWHはデータマートの信頼できる唯⼀の情報源(SSOT: Single Source Of Truth)であり、企業全体の整合性と⼀貫性を確保します。

デメリット

EDWの重要な欠点は次のとおりです。

  • 市場投入までの時間
    EDWは、レポート作成に利用できるようになる前に、まず各ソースシステムから中央データレポジトリにデータを統合する必要があります。そのためプロジェクトに時間と労力がかかります。

  • 複雑さとスキル
    DWHは100ものソースからデータを統合する必要がある場合があります。複雑なビジネス環境をサポートするために企業全体のデータモデルを設計することは、高度なスキルを持つデータモデリングの専門家を必要とします。

ユースケース

EDWは設計にかかる時間と関連するコストに余裕がある安定した状況に適しています。全てのデータが相互に関連しており、全体像を把握することが重要な保険業や、関連する予算に関係なく、複数の機能が関係する製造業に向いています。

ディメンショナルモデリング

ディメンショナルモデリングは、ビジネスインテリジェンスの父とも呼ばれるRalph Kimballが導入したもので、企業全体ではなく個々のビジネス分野とプロセスに焦点を当てています。Landing Area にロードされたデータは一連のETLプロセスによってディメンショナルなデータマートに抽出されます。

Kimball model

When should I use Data Vault?

ディメンショナルモデリングでは、データはスタースキーマと呼ばれる形に正規化されます。スタースキーマは、下図のように分析したい値を持つファクトテーブルと、分析の軸(次元)となる値を持つディメンションテーブルから星形のように構成されます。

Star schema

Star schema

メリット

ディメンショナルモデリングの優れている点としては以下が挙げられます。

  • 構造がシンプルで理解しやすい
    構造としてファクトが何によって影響するのか分かり易いです。また、データ分析者はシンプルなクエリのみを用いて対象のテーブルを作成することができます。

  • データ分析がしやすい
    ディメンションテーブルが3NFまで正規化されないため、結合回数が減り、クエリ効率が上がります。

  • システム管理の簡素化
    企業全体ではなく個々のビジネス分野とプロセスに焦点を当てているため、DB内のリソースが少なくて済みます。

デメリット

ディメンショナルモデリングのデメリットは次のとおりです。

  • SSOT が失われている
    企業全体の整合性と⼀貫性を確保することができません。

  • データの仕様変更に弱い
    ⾮正規化⼿法では、ビジネスニーズの変化に応じたデータの変更が困難です。また、ファクトに列を追加すると、ディメンションが拡張され、パフォーマンスに悪影響を与える可能性があります。

ユースケース

ディメンショナルモデリングはDWHを迅速に構築することが求められ、データを素早く、アナリストがより簡単に扱えることが優先される状況に適しています。顧客ごとに販売したサービスを部⾨間でリンクする必要がなく、範囲が限られるCRMや、主にデータマートのみを必要とするマーケティングに向いています。

Data Vault

Data Vaultはデータの数や仕様に変動があっても変更履歴を柔軟に保持し、特定日時のデータをいつでも検索できるモデリング手法です。元データソースの情報を維持しつつ、いかに柔軟に統合し、データマートを作りやすくするかということを主眼としています。Data Vaultは3NFとスタースキーマの両方を取り⼊れたハイブリッドなアプローチと言えます。

Data vault

When should I use Data Vault?

Data Vaultのアーキテクチャには、Raw Vault 層と Business Vault 層が存在します。

  • Raw Vault
    データの履歴付きコピーを保持します。ソースに依存しないデータを格納することを除いて、フィルターやビジネス変換は⾏いません。
  • Business Vault
    PIT(Point in Time)TableやBridge Tableを作り、SQLの結合処理の複雑化を回避します。

メリット

Data Vaultは、3NFのEDWとディメンショナルモデリングの両方に内在する問題に対処し、両者の最良の側面を単一のハイブリッドアプローチに統合しています。その利点は次のとおりです。

  • 柔軟性
    柔軟性に欠けるEDWとは異なり、Data Vaultではソースを追加する際に手直しをする必要はありません。Data Vaultは生データとビジネス派生データを別々に保存するため、ビジネスルールの変更にも容易に対応することができます。

  • 時間の経過に伴う変化サポート
    Data Vaultでは、生データとビジネス派生データを分離し、ソースシステムとビジネスルールの両方から生じる変化をサポートします。

  • リネージと監査
    Data Vaultはソースシステムを特定するメタデータを含んでいるため、データのリネージを容易にサポートすることができます。

デメリット

Data Vaultは、全てのデータウェアハウスに対応できる完璧なソリューションではなく、考慮しなければならないいくつかの欠点があります。以下がその例です。

  • 学習コスト
    Data Vaultを正しく実装するには相応の知識が必要になります。

  • 大量のJOIN
    ソーステーブルの数は2倍から3倍になります。テーブルの数、つまり結合の数は、扱いにくく、複雑な結合条件につながる可能性があります。

  • 金銭的なコスト
    データの完全な履歴を維持するために⼤容量のストレージが必要になる場合があります。

ユースケース

Data Vaultの導入は30以上のソースシステムを持つ大規模なプロジェクトで、データ統合に大きな課題を抱えており、新しい手法のスキルと厳密さを取り入れる準備ができている場合に適しています。対して小規模のプロジェクトで小規模(10人以下)のチームの場合はData Vaultは適していない可能性があるため、まずはディメンショナルモデリングの導入が良さそうです。

参考

https://medium.com/@amritha_fernando/types-of-data-warehousing-architecture-9a656443b510
https://panoply.io/data-warehouse-guide/data-mart-vs-data-warehouse/
https://www.phdata.io/blog/building-modern-data-platform-with-data-vault/
https://medium.com/analytics-vidhya/theories-of-kimball-and-inmon-about-data-warehouse-design-c16260fab5e9
https://www.techtarget.com/searchdatamanagement/definition/star-schema
https://www.nttdata.com/jp/ja/data-insight/2022/0407/
https://speakerdeck.com/ishikawa_satoru/detafen-xi-wozhi-eruji-shu-detamoderinguzai-ru-men

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!