Degenerate Dimensions – 退化ディメンションとは

スポンサーリンク
データエンジニアリング
スポンサーリンク

ファクトテーブルにある、ディメンショナルテーブルを持っていないカラムのことです。

通常、ファクトテーブルは、主に数値で表される測定値であるファクトと、ファクトの記述的なコンテキストを提供するディメンションテーブルを持つディメンションキーで構成されていますが、Degenerate Dimensionsはディメンションテーブルを持たないディメンションになります。

スポンサーリンク

Degenerate Dimensionsの例

Degenerate Dimensionsになりえるのは、トランザクション番号である請求書番号などになります。ER図を利用して説明します。

  • fact_salesにある、sales_idは主キー、total_amountはファクト
  • fact_salesにある、sales_date、customer_id、product_idはディメンションテーブルを持つディメンションキー
  • fact_salesにある、invoice_numberはディメンションテーブルを持たないDegenerate Dimensions

Degenerate Dimensionsのメリット

  • fact tableが簡素化される:sales_idをディメンションキーとして、invoice_numberを持つディメンションテーブルを作成すると、無駄な結合が発生する
  • 容量が節約される:invoice_numberを持つディメンションテーブルを作成しないので、容量が節約される
  • クエリのパフォーマンスが上がる:無駄な結合が発生しないので、クエリのパフォーマンスが上がる

Degenerate Dimensionsのデメリット

  • Degenerate Dimensions単体では、分析、集計の際に意味を持たない
  • 他のディメンションキーと混同しないように注意が必要

メタデータにDegenerate Dimensionsである旨を記載しておけば、大きな混乱もなく利用できるでしょう。

参考資料

コメント

タイトルとURLをコピーしました