資料倉儲中維度變化和事實變化的處理方法
. 維度慢慢改變。
你的應用必須反映出移植到倉庫中的資料來源所發生的資料變化。維表中的資料特別容易變化。但你怎麼維護記錄的歷史變化呢?
第一個也是最簡單的方法是重寫現有的記錄而不跟蹤變動。幸運的是,這個方法被許多維度所接受。例如,如果一個部門名稱從“財務”變為“財務和會計”,你很可能並不需要記錄這種歷史變化。但是,從客戶和學生的角度看,常常有必要保持跟蹤姓名、婚姻狀態、教育程度和其它屬性的變化——你的應用必要能夠獲得當前的以及歷史的數值。
管理維度慢慢改變的第二個方法是數值發生變化時建立一個新的記錄,並將舊的記錄標記為舊記錄。
第三個也是最後的一個方法是維護在維表的同一行中不同列的變化域的歷史數值。
到此,我們已經介紹瞭如何處理資料倉儲維度中的值的變化。但是分析服務維度怎麼處理呢?要反映屬性值的變化你必須重新處理維度。但是如果你完全處理維度,你就不得不也重新處理多維資料集,如果你的多維資料集包含大量資料,那這就可能不太現實了。幸運的是你可以經常使用漸進式更新(過程更新)選項來避免重新處理多維資料集。
事實變化。
通常人們認為事實表中的記錄是靜態的——一旦這條記錄錄入到了倉庫中你的工作就結束了,是嗎?不幸的是這個回答是“它取決於。”在某些情況下像在一個資料倉儲跟蹤病人的住院情況,所有的記錄通常都是靜態的。如果你從1月1日到2月5日住院,那這條記錄不太可能改變。
但是考慮到零售行業,所有的銷售都不是最終的——我肯定你知道有些人經常將它們購買的貨物因為各種原因而退回商店。一些公司管理這種交易為一系列信用和負債來結算每筆交易。但在其它的情況下你必須更新或刪除事實表記錄,甚至在它們新增到了資料倉儲之後。例如,如果一個股票交易記錄不正確,用一個相反的交易來結算是不能接受的。還有另一個問題要考慮:你可能不希望你的客戶知道你的交易系統中存在的問題。甚至你希望他們只在資料被修正後才看到資料。
處理事實變化的一個方法是將資料放在暫存區域直到它經過了質量檢查,然後將其移植到倉庫中。然而有時甚至是最全面的測試也無法捕獲資料來源中的所有錯誤,你可能需要透過處理這些包含錯誤資料的部分來更新多維資料集。這就是為什麼有必要保持你的分析服務部分儘可能的小以便處理可以相對快一些。
另一個處理這個挑戰的方法是採用一個回寫分割槽。採用多維資料集回寫,你沒有真的改變關係資料倉儲中的資料;而是在一個單獨的分割槽中新增了一條記錄。當使用者查詢一個特殊的測量值組時,分析服務將只讀分割槽的資料和回寫分割槽的資料結合起來,然後顯示結果。當然,執行這樣的查詢計算會額外增加分析伺服器的執行時間,並會造成效能下降。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11423276/viewspace-979728/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料倉儲(8)數倉事實表和維度表技術
- 維度處理-資料倉儲-讀書筆記(四)筆記
- Android影像灰度化、線性灰度變化、二值化處理方法Android
- 【資料倉儲】|5 維度建模設計和實施過程
- 【資料倉儲】|4 維度建模之事實表設計
- 【資料倉儲】|3 維度建模之維度表設計
- 【資料倉儲】全量表、快照表、增量表、拉鍊表、維度表、實體表、事實表
- Windows批處理中的變數和值Windows變數
- 資料抽取中的CDC(變化資料捕獲)方式
- 于振:如何通過倉儲,對實體進行持久化處理?持久化
- vue中如何監聽vuex中的資料變化Vue
- 文書處理技術:WORD也在不斷變化中
- React和Vue中,是如何監聽變數變化的ReactVue變數
- 用Rust 實現的現代化實時開源資料倉儲Rust
- 資料預處理-資料整合與資料變換
- DBMS和資料倉儲趨勢:整合化裝置與非結構化資料CF
- 六西格瑪中統計變化的處理是什麼樣的?
- Python如何爬取實時變化的WebSocket資料PythonWeb
- 如何在元件中監聽Vuex的資料變化元件Vue
- 一個簡化、落地的實時資料倉儲解決方案
- 工業資料分析之數倉建模 | 正規化建模和維度建模,你pick誰?
- css實現高度height隨寬度width變化保持比例不變CSS
- 資料的規範化——Pandas處理
- python資料處理matplotlib入門(2)-利用隨機函式生成變化圖形Python隨機函式
- android音視訊指南-處理音訊輸出的變化Android音訊
- 資料倉儲建模方法論
- 資料變換-歸一化與標準化
- 資料倉儲上雲那些事兒
- Netflix如何使用bulldozer從資料倉儲批處理資料轉移到鍵值儲存?
- 改變出版行業數字化確保資料儲存安全行業
- Kafka-之資料日誌儲存(格式變化與壓縮)Kafka
- python資料處理-matplotlib入門(2)-利用隨機函式生成變化圖形2Python隨機函式
- 百億級資料處理優化優化
- 遊戲開發過程中需求變化那些事遊戲開發
- 如何從MySQL中將變化的事件資料釋出到Kafka?MySql事件Kafka
- Python資料預處理:徹底理解標準化和歸一化Python
- BI中事實表和維度表的定義(轉載)
- 資料倉儲之大規模並行處理架構原理NY並行架構
- 變異資訊那些事(中)