一點被忽視的模型使用方法
現在每個公司,每個技術人員再談到BI/DW的時候都談到模型,不管是關係模型還是多維模型,甚至是二者的混合模型,我們很多人都在考慮表(table)的設計,資料的儲存等等問題,這些的確使我們需要考慮的,但是我們卻忽視了一點,我們前臺展現的只是需要的瀏覽資料,而不是你有沒有資料儲存在database中。當然我這樣說,大家都要問了,不儲存資料怎麼展現資料了?是的,我們需要儲存,但是不是任何展現的資料都需要在資料庫中記錄,有的是我們使用case語句轉化過來的,這些轉化後的資料儲存在資料庫中最好。
言歸正傳,我接觸到的很多的資料模型,大多都是直接用表去展現,而較少的使用檢視(view)
變化維也好,正常的維度也好,我們都可以使用檢視,只要檢視的條件不要太多,索引效率較高,我們其實可以選擇檢視的方式,比如我們常用的person,time,product等等,都存在變化維的問題,而且對於同一張表,比如time,在不同的展現或者分析技術上,使用的方式是不一樣的,通常的報表,只需要展現正常的資料,就可以使用簡單的select from的方式,如果我們需要在維度上過濾一些東西,或者按照某種狀態,型別去過濾資料的時候,或者進行一下計算,比如我們常常提到的holiday的問題,我們就需要增加一下表之間的關聯,使用union或者inner link等方式
這樣既不會改變現有的結構,也方便前臺的展現和以後的一些必要的變動和維護,特別是table結構發生變化,我們就有可能需要去做很多的更改,特別是ETL和前臺的應用。
這裡有幾點使我們需要注意的
1:建模的時候,最好有2-3個status和flag的欄位,比如是否有效,是否過期,是否有特別的用法。這樣方便查詢和使用,同時也為將來企業的業務變化,或者存在併購,收購需要整合系統時預留了擴充套件的空間,特別是很多公司,有很多分公司,而很多系統是一個個的上線,比如中國,日本,韓國,新加坡,有可能這幾個國家的原系統都不一樣,而我們實施時,考慮的只是1-2個系統,當要增加新的系統,我們就變得很為難,一旦我們有足夠的status或者flag的欄位,我們就方便透過view去展現我們需要的資料了
2:考慮多種業務的需要,比如sales和HR,logistic等,需要查詢的時間都可能不一樣,有的需要特別標示週末,有的需要按照周統計,有的需要按照特殊的時間,比如月底等等,這些應用有足夠的瞭解,我們的應用就比較得心應手
3:效能的考慮,使用檢視,如果query不是很複雜的話,效能就和table差不多,如果特別複雜的時候,我建議還是有一張臨時表或者專為view服務的表,加一些相應的ETL去處理資料,這個有點像datamart,主要看實際情況,你願意為應用主題建立datamart還是使用view
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7600305/viewspace-1004894/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 建立 UIWindow 被忽視的一個坑UI
- Android效能優化之被忽視的優化點Android優化
- 被忽視的開發安全問題
- 遊戲市場一塊被忽視的拼圖——俄語區遊戲
- 那些容易被忽視的 JavaScript 細節總結JavaScript
- 專案開發中容易被忽視的部分
- 軟體架構一致性 —— 被忽視的研發成本架構
- 安卓效能優化之被忽視的記憶體洩露安卓優化記憶體洩露
- Android 效能優化之被忽視的記憶體洩漏Android優化記憶體
- 廣告OCPC資料還能告訴我們哪些被忽視的真相
- spring rest 容易被忽視的後端服務 chunked 效能問題SpringREST後端
- Web開發和設計上容易被忽視的8個錯誤Web
- 短視訊系統開發過程中經常被忽視的幾點
- 全球50家知名企業原始碼批次外洩,只因一個問題被忽視?原始碼
- 遊戲出海想賺得盆滿缽滿又所求無門?這些容易被忽視的坑點要避免遊戲
- 工業服務被忽視的銷售力量:他們的技術人員
- 搭建線上教育系統時,不可忽視的幾點問題
- 使用者容易忽視的網路安全錯誤操作盤點
- 不可忽視工作中的“小事”
- 近20年3867篇AI論文大調研:有缺陷的指標被濫用,好的指標被忽視AI指標
- 遊戲陪玩原始碼前端開發,不容忽視的五個要點遊戲原始碼前端
- 虛擬機器中的活動目錄:可能被忽視很久的問題和答案(1)虛擬機
- 爆款頻出!是時候瞭解一下這個被忽視的4億玩家遊戲市場遊戲
- 解碼Redis最易被忽視的CPU和記憶體佔用高問題Redis記憶體
- 不要忽視BI的應用環境
- 對於一款軟體而言,完備的功能固然重要,但互動體驗也不該被忽視
- 線下火爆線上空白,“聯機型密室逃脫”遊戲會是一片被忽視的藍海嗎?遊戲
- Parallel.For 你可能忽視的一個非常實用的過載方法Parallel
- 機器學習專案中不可忽視的一個密辛 - 大數定理機器學習
- 前端程式設計師經常忽視的一個JavaScript面試題前端程式設計師JavaScript面試題
- 淺談SEO技巧之一:SEO容易忽視的5種連結
- 阿里巴巴java開發手冊容易忽視的幾個知識點阿里Java
- 不要忽視資料視覺化的實用價值視覺化
- MySQL 你可能忽視的選擇問題MySql
- java陷阱之不可忽視的預設配置Java
- 模型的一個點顯示在原點模型
- 朝鮮黑客實力不容忽視黑客
- 請不要忽視專案文件管理?