Obiee-dimensional-modeling
OBIEE –次元モデリング
次元モデリングは、DW設計で使用される一連の方法と概念を提供します。 DWコンサルタントのRalph Kimballによると、ディメンションモデリングは、データウェアハウスでのエンドユーザークエリのサポートを目的としたデータベースの設計手法です。 理解性とパフォーマンスを重視しています。 彼によると、トランザクション指向のERはトランザクションのキャプチャには非常に役立ちますが、エンドユーザーへの配信では避ける必要があります。
ディメンションモデリングでは、常にファクトとディメンションテーブルが使用されます。 ファクトは数値であり、集計してファクト値で分析できます。 ディメンションは、ファクト値の階層と説明を定義します。
寸法表
ディメンションテーブルには、ファクトテーブルのオブジェクトを説明する属性が格納されます。 ディメンションテーブルには、各ディメンション行を一意に識別するプライマリキーがあります。 このキーは、ディメンションテーブルをファクトテーブルに関連付けるために使用されます。
ディメンションテーブルは、トランザクションを実行するために作成されず、データを詳細に分析するためにのみ使用されるため、通常は非正規化されます。
例
次のディメンションテーブルでは、顧客ディメンションには通常、顧客の名前、住所、顧客ID、性別、収入グループ、教育レベルなどが含まれます。
Customer ID | Name | Gender | Income | Education | Religion |
---|---|---|---|---|---|
1 | Brian Edge | M | 2 | 3 | 4 |
2 | Fred Smith | M | 3 | 5 | 1 |
3 | Sally Jones | F | 1 | 7 | 3 |
ファクト表
ファクトテーブルには、測定値と呼ばれる数値が含まれています。 ファクトテーブルには、ファクトとディメンションテーブルへの外部キーという2種類の列があります。
ファクトテーブルのメジャーには3つのタイプがあります-
- Additive -任意のディメンションに追加できるメジャー。
- Non-Additive -どのディメンションにも追加できないメジャー。
- Semi-Additive -いくつかのディメンションにわたって追加できるメジャー。
例
Time ID | Product ID | Customer ID | Unit Sold |
---|---|---|---|
4 | 17 | 2 | 1 |
8 | 21 | 3 | 2 |
8 | 4 | 1 | 1 |
このファクトテーブルには、時間ディメンション、製品ディメンション、顧客ディメンション、および販売された測定値単位の外部キーが含まれています。
会社が顧客に製品を販売するとします。 すべての販売は社内で発生する事実であり、ファクトテーブルはこれらの事実を記録するために使用されます。
一般的な事実は次のとおりです-販売されたユニット数、マージン、販売収益など ディメンションテーブルには、顧客、時間、製品などの要素がリストされます。 データの分析に使用します。
ここで、上記のファクトテーブルと顧客ディメンションを考慮すると、製品および時間ディメンションも存在します。 このファクトテーブルとこれらの3つのディメンションテーブルを考えると、次のような質問をすることができます。2010年に男性の顧客に販売された時計はいくつですか。
ディメンションとファクトテーブルの違い
ディメンションテーブルとファクトテーブルの機能上の違いは、ファクトテーブルには分析するデータが保持され、ディメンションテーブルにはクエリを実行するために必要な情報が保持されることです。
集計表
集計テーブルには、さまざまな集計関数を使用して計算できる集計データが含まれています。
- 集計関数*は、複数の行の値が特定の基準の入力としてグループ化され、より重要な意味または測定値の単一の値を形成する関数です。
一般的な集約関数は次のとおりです-
- 平均()
- カウント()
- 最大()
- 中央値()
- 最小()
- モード()
- 和()
これらの集計テーブルは、データウェアハウスで複雑なクエリを実行するためのパフォーマンス最適化に使用されます。
例
年(1行)、四半期(4行)、月(12行)などの集計データを含むテーブルを保存し、年ごとに1行だけが処理されるように、データの比較を行う必要があります。 ただし、非集計テーブルでは、すべての行が処理されます。
MIN | Returns the smallest value in a given column |
MAX | Returns the largest value in a given column |
SUM | Returns the sum of the numeric values in a given column |
AVG | Returns the average value of a given column |
COUNT | Returns the total number of values in a given column |
COUNT (*) | Returns the number of rows in a table |
役職=「開発者」の従業員から平均(給与)を選択します。 このステートメントは、肩書きが「開発者」に等しいすべての従業員の平均給与を返します。
集計はデータベースレベルで適用できます。 集計を作成してデータベースの集計テーブルに保存するか、集計をレポートレベルでオンザフライで適用できます。
注-データベースレベルで集計を保存すると、時間を節約し、パフォーマンスを最適化できます。