個人經驗總結:數據倉庫的數據存儲和實現
來源:程序員人生 發布時間:2014-03-13 12:12:09 閱讀次數:2667次
當面對大量的數據,而且是各種各樣類型的數據,還可能有的數據單元(粒度)很大,單純靠數據庫是不易解決,為了解決這些問題,提高系統后臺的效率,就需要引進數據倉庫。
有關數據倉庫的數據存儲的幾個基本問題:
1、數據存儲的方式?
數據倉庫的數據由兩種存儲方式:一種是存儲在關系數據庫中,另一種是按多維的方式存儲,也就是多維數組。
2、存儲何種數據?
數據倉庫中存在不同的綜合級別的數據。一般把數據分成四個級別,早期細節級數據,當前細節級數據,輕度綜合級,高度綜合級。不同的綜合級別一般稱為粒度。粒度越大,表示細節程度越低,綜合程度越高。級別的劃分是根據粒度進行的。
數據倉庫中還有一種是元數據,也就是關于數據的數據。傳統數據庫中的數據字典或者系統目錄都是元數據,在數據倉庫中 元數據表現為兩種形式:一種是為了從操作型環境向數據倉庫環境轉換而建立的元數據,它包含了數據源的各種屬性以及轉換時的各種屬性;另一種元數據是用來與多維模型和前端工具建立映射用的。
3、粒度與分割
粒度是對數據倉庫中的數據的綜合程度高低的一個衡量。粒度越小,細節程度越高,綜合程度越低,回答查詢的種類越多;反之粒度越大,細節程度越低,綜合程度越高,回答查詢的種類越少。
分割是將數據分散到各自的物理單元中去以便能分別獨立處理,以提高數據處理的效率。數據分割后的數據單元成為分片。數據分割的標準可以根據實際情況來確定,通??蛇x擇按日期、地域或者業務領域等進行分割,也可以按照多個標準組合分割。
4、追加時數據的組織方式
這里說一種比較簡單的情況,輪轉綜合文件。比如:數據存儲單位被分為日、周、季度、年等幾個級別。每天將數據記錄在日記錄集中;然后七天的數據被綜合存放在周記錄集中,每隔一季度周記錄集中的數據被存放到季度記錄集中,依此類推……這種方法把越早期的記錄存放的綜合程度越高,也就是粒度越大。
B<>數據倉庫的實現步驟:
一般地,設計和創建數據倉庫的步驟是:
1.確定用戶需求
確定終端用戶的需要,為數據倉庫中存儲的數據建立模型。通過數據模型,可以得到企業完整而清晰的描述信息。數據模型是面向主題建立的,同時又為多個面向應用的數據源的集成提供了統一的標準。數據倉庫的數據模型一般包括:企業的各個主題域、主題域之間的聯系、描述主題的碼和屬性組。
深入地分析企業的數據源,記錄數據源系統的功能與處理過程。一般地,設計數據倉庫最重要的一步便是要理解商業動作的規律,只有了解數據是如何被處理的,才能分解商業處理過程,從中獲取數據元素。
利用現有系統的信息,確定從源數據到數據倉庫的數據模型所必須的轉化/綜合邏輯。這涉及到應該合并轉化多少數據;是綜合所有的數據文件還是綜合發生變化的操作系統文件;轉化/綜合過程應該多長時間執行一次等問題。決定數據轉化與更新頻率是重要的商業事件。無論數據倉庫的更新是采用事件驅動還是時間驅動,都必須讓數據倉庫知道當某種事件發生時就需要更新數據。
在數據倉庫建立之前,應該寫一個詳細的方案和實現規劃。這種方案和實現規劃包括:建立商業案例、收集用戶需求、確定技術需求。建立商業案例包括由該方案解決的商業需求、方案的成本和投資的收益。收集用戶需求主要是調查用戶建立數據倉庫的意圖。用戶需求可以確定這些內容:數據需求(粒度級)、企業經營系統包含的數據、這些數據遵循的商業規則、需要提供給用戶的查詢、用戶需要的標準報告、將要使用的客戶應用程序工具。確定技術要求包括下列內容:硬件體系結構和框架(例如,鏈接到數據市場所在的地理位置)、備份和恢復機制、安全性限制、從經營系統到數據倉庫加載數據和轉換數據的方法。
2.設計和建立數據庫
設計和建立數據庫是成功地創建數據倉庫的一個關鍵步驟。這一步通常由有經驗的數據庫設計人員使用,因為這一步涉及的數據來自多種數據源并且要把它們合并成一個單獨的邏輯模型。不象OLTP系統那樣以高度的正規化形式存儲數據,數據倉庫中存儲的數據以一種非常非正規化的形式存儲數據以便提高查詢的性能。數據倉庫常常使用星型模式和雪花型模式來存儲數據,作為OLAP工具管理的合計基礎,以便盡可能快地響應復雜查詢。
星型模式是最流行的實現數據倉庫的設計結構。星型模式通過使用一個包含主題的事實表和多個包含事實的非正規化描述的維度表來執行典型的決策支持查詢。一旦創建了事實表,那么可以使用OLAP工具預先計算常用的訪問信息。星型模式是一種關系型數據庫結構,在該模式的中間是事實表,周圍是次要的表,數據在事實表中維護,維度數據在維度表中維護。每一個維度表通過一個關鍵字直接與事實表關聯。維度是組織數據倉庫數據的分類信息,例如時間、地理位置、組織等等。維度用于父層和子層這類分層結構。例如,地理位置維度可以包含國家、城市等數據。因此,在該維度表中,緯度由所有的國家、所有的城市組成。為了支持這種分層結構,在維度表中需要包括每一個成員與更高層次上緯度的關系。維度關鍵字是用于查詢中心事實表數據的唯一標識符。維度關鍵字就像主鍵一樣,把一個維度表與事實表中的一行鏈接起來。這種結構使得很容易構造復雜的查詢語句并且支持決策支持系統中向下挖掘式的分析。事實表包含了描述商業特定事件的數據。例如銀行業務或者產品銷售。事實表還包含了任何數據合計,例如每一個地區每月的銷售情況。一般地,事實表中的數據是不允許修改的,新數據只是簡單地增加進去。維度表包含了用于參考存儲在事實表中數據的數據,例如產品描述、客戶姓名和地址、供應商信息等。把特征信息和特定的事件分開,可以通過減少在事實表中掃描的數據量提高查詢性能。維度表不包含與事實表同樣多的數據,維度數據可以改變,例如客戶的地址或者電話號碼改變了。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈