我是數據倉庫設計的初學者。我有一些理論,但最近遇到了一個OLAP多維數據集設計的實際問題。我使用星型模式。
可以說我有2個維表和1個事實表:sum and distinct-count measures(star schema design koan)
尺寸地名:
dimension_id
COUNTRY_NAME
province_name
district_name
尺寸裝置:
dimension_id
DEVICE_CATEGORY
device_subcategory
事實表:
gazetteer_id
device_dimension_id
hazard_id(測量柱)
area_m2(測量柱)
一個「商業對象」(實際上是一個礦場)可以有多個設備,位於一個地點(地名詞典)和o個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 |
+--------------+---------------------+-----------------------+-----------+
我所定義的措施「數危害」爲hazard_id的不同計數。
我還將area_m2的總和定義爲「佔用的總面積」度量。
現在我可以使用維度地名錄和設備,並知道給定維度成員有多少危險。
但問題是area_m2:因爲它被定義爲一個總和,它提供了比實際面積,其中n是危險對象的設備的數個高的值n倍。例如,上面的數據會給18000平方米。
你會如何解決這個問題?
我正在使用Pentaho堆棧。
在此先感謝
如果一個危險標識是一個雷區,並且你正在尋找每個地雷的地雷和大小的地雷,那麼也許你可以設置一個危險區域來保存危險區域;或者可能在DeviceDimension表中創建空設備條目,並且只有空設備條目獲取area_m2集合,則真實設備獲取area_m2 = 0。 – Jamie 2012-04-23 23:57:16