爲DW創建位置維度表;我很熟悉日期/時間,但是我使用這些列的位置是:大陸,國家,地區,城市,郵政。現在的問題是如果一個記錄沒有城市或郵政,只有一個地區才結束。在DW中,所有記錄都有一個城市,但在事實表中可能有數據,因爲這些數據在調查收集時不是必需的數據點,所以如何設計此表?我是否需要首先插入行僅爲數,只有國家,只有城市,只有郵政等,而其餘的空白,然後建立像大陸到國家等關係?位置維度表
位置維度表
回答
兩種基本的方式來解決這個問題。
使用未知缺失值。因此,每個城市有一個未知郵政編碼,每個地區都有一個未知城市。這樣一來,其與
region
結尾的位置,具有City='unknown' , Postal='unknown'
簡單地只使用中存在的所有記錄列 - 在這種情況下下降
city
和postal
列。
@ Darmir的解決方案是有趣的,它的大好處是,它使在一個表中的地理數據,不足之處是,你得到一個非常大的數量與「未知」記錄洲,國家,地區,城市,郵政組合 - 既可以在ETL中實時生成,也可以作爲一次性裝載(如果可以明確地完成)。
顯然這裏有一個自然的層次,所以我們想嘗試和利用它。
但或者,我想這可能是有趣,建設一批維表,而不是僅僅一個。在最糟糕的情況下,您可能會將事實表與替代鍵分別對應DimContinent,DimCountry,Dimregion,DimCity和DimPostCode。但是有些分析可能會將這些表分類在一起。考慮以下問題...
- 是否有任何字段(總是/通常)填寫?
- 是否有一組字段,如果有人填寫,那麼其他人也將是?
- 您能否獲得一些明確的參考數據來加強和填寫您的缺失數據?
以下(2)您可能會發現,如果國家/地區已填寫,那麼歐洲大陸已提交,否則都是未知。這自然會建議包含這兩個字段的DimCountry表。如果你可以找到一種方法來豐富你的數據(步驟3),那麼你可以生成一個DimCity表,它具有(洲/國家/地區/城市) )。
當你暴露在多維數據集,這些獨立的尺寸,你將能夠將其納入一個層次,然後可以使用您的層次結構容易出現。
我不是完全相信自己在這個解決方案中,但想到我會向前扔在情況下,它是幫助。
我已經在我的生活中做了一些位置維度,我現在正在管理一個具有較大位置維度的系統。我描述了我是如何在博客中製作的。 https://dimensionalmodelingblog.wordpress.com/creating-a-location-dimension-in-a-data-warehouse/
位置尺寸是棘手的,甚至拉爾夫·金博爾承認,這是一個挑戰(請參閱構建數據倉庫的第10章)。
在你的情況下,你的實際需要5個維度,每個級別及其以上級別(對於大陸一個維,國家,地區,城市,郵政,一個洲,國家,地區,城市,等等)。當你有沒有城市信息的數據,你使用區域尺寸等。
而不是做出5個單獨的表,我建議在一個表中創建所有內容並在該表上創建視圖,以便只維護一個位置維度。
你的表是這樣的 洲,國家,地區,城市,郵政,Level1Flag,Level2Flag,Level3Flag,Level4Flag,Level5Flag
你的進程標誌合適的水平,以它的價值的所有條目,而第一每個級別輸入到下一級別的值: 例如,您在美國科羅拉多州的15個城市中,每個城市均已升至級別4,並且第一個級別已升至級別3 然後,您的LocationCity視圖將顯示前4個列和過濾器在Level4Flag上,您的LocationRegion視圖顯示Level3Flag上的前3列和過濾器。
然後你有兩個最好的:一維表維護和5個角色視圖像小維度一樣操作。
- 1. 數據倉儲的地理/位置維度表
- 2. 在列表中維護滾動位置
- 3. Silverlight維護列表框滾動位置
- 4. 列表不維護滾動位置
- 5. 轉置列表子集的維度?
- 6. 創建三維位置
- 7. 維護JTextArea滾動位置
- 8. 分支和維護位置
- 9. SharePoint維護滾動位置
- 10. 幅度位置
- 11. 科爾多瓦地理位置手錶位置靈敏度
- 12. 可以將維度設置爲「0」,無單位?
- 13. Java JInternalFrame在維度和位置上保持固定
- 14. Matlab位置列表到速度矢量
- 15. 從維度表中設置事實表中的ID
- 16. 深度vs位置
- 17. Tensorflow - 數據的維度,佔位符
- 18. tensorflow單個維度的佔位符
- 19. 灰度位圖到二維數組
- 20. 數據庫 - 事實表和維度表
- 21. threejs:如何表示位置的度量單位?
- 22. 基於圖例高度的百度ECharts2動態圖表位置
- 23. 獲取實際圖表的位置,寬度和高度
- 24. 如何維護列表視圖行/項目的位置?
- 25. Excel: - 維護圖表和手繪線條的相對位置
- 26. SSRS動態設置表位置/位置
- 27. 維護Grails/GORM中列的位置
- 28. 一維索引的4D位置?
- 29. c# - 多維數組的位置
- 30. 獲取JLabels二維數組的位置
使用「未知」而不是空值確實爲需要編寫運行即席查詢和/或報告的分析師節省了時間。 – Olaf 2011-05-16 21:44:19
這可能是最好的選擇 – 2011-05-19 08:32:44