0

私はデータ ウェアハウス設計の初心者です。私はいくつかの理論を持っていますが、最近、OLAP キューブの設計に関する実際的な問題に遭遇しました。スタースキーマを使用しています。
2 つのディメンション テーブルと 1 つのファクト テーブルがあるとします。


Dimension Gazetteer:
dimension_id
country_name
Province_name
district_name


ディメンション デバイス:
dimension_id
device_category
device_subcategory


ファクト テーブル:
Gazetteer_id
device_dimension_id
ハザード ID (メジャー列)
area_m2 (メジャー列)


「ビジネス オブジェクト」(実際には地雷原) は、複数のデバイスを持つことができ、単一の場所 (Gazetteer) に配置され、X 平方メートルを占有します。
そこで、どのデバイス カテゴリがあるかを知るために、次のようにハザードのある各デバイスごとにファクトを作成しました。

+--------------+---------------------+-----------------------+-----------+
| gazetteer_id | device_dimension_id | hazard_id             | area_m2   |
+--------------+---------------------+-----------------------+-----------+
| 123          | 321                 | 0a0a-502c-11aa1331e98 | 6000      |
+--------------+---------------------+-----------------------+-----------+
| 123          | 654                 | 0a0a-502c-11aa1331e98 | 6000      |
+--------------+---------------------+-----------------------+-----------+
| 123          | 987                 | 0a0a-502c-11aa1331e98 | 6000      |
+--------------+---------------------+-----------------------+-----------+

私は「ハザードの数」という尺度をハザード ID の個別カウントとして定義しました。
また、area_m2 の合計として「総占有面積」メジャーを定義しました。
これで、ディメンション ガゼッターとデバイスを使用して、特定のディメンション メンバーにいくつの危険があるかを知ることができます。
しかし、問題は area_m2 です。これは合計として定義されるため、実際の面積の n 倍の値になります。ここで、n はハザード オブジェクトのデバイスの数です。たとえば、上記のデータでは 18000m2 になります。
この問題をどのように解決しますか?

Pentaho スタックを使用しています。

前もって感謝します

4

1 に答える 1

1

[コメントから移動]

ハザードIDが地雷原であり、地域ごとの地雷(地名集)と地名集ごとの地名集のサイズを調べている場合は、ハザードの領域を保持するハザードディメンションを作成できます。または、DeviceDimensionテーブルにNull-deviceエントリを作成し、Null-deviceエントリのみがarea_m2セットを取得し、実際のデバイスはarea_m2=0を取得します。

デバイス321を含む地雷原の総面積などの質問に答える必要がある場合、2番目のアプローチではこれらの質問に簡単に答えることはできません。これは、ハザードディメンションを作成する方が良いアプローチである可能性があることを示しています。

また、ハザードごとに各タイプのデバイス数が含まれる可能性があるデバイスカウントファクトを追加することも検討します。

于 2012-04-24T01:22:37.227 に答える