ファクトテーブルにある、ディメンショナルテーブルを持っていないカラムのことです。
通常、ファクトテーブルは、主に数値で表される測定値であるファクトと、ファクトの記述的なコンテキストを提供するディメンションテーブルを持つディメンションキーで構成されていますが、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である旨を記載しておけば、大きな混乱もなく利用できるでしょう。
コメント