数据仓库中两种数据模型的分析比较
來源:http://articles.e-works.net.cn/bi/article73172.htm
?
發表時間:2009-11-7?何秉姣?來源:萬方數據
?
數據倉庫(DH)和聯機分析處理(OLAP)是商業數據處理領域中的2個重大的新技術。OLAP為用戶向數據倉庫中的數據提出復雜查詢、提供快速、穩定的響應。DH是支持決策的分析型的數據庫,它采集、組織和存儲來自地理分布、構造各異的信息源數據。數據模型是數據庫系統的核心和基礎。本文針對支持OLAP的數據倉庫的數據模型進行研究。
1 幾個重要的概念
??? 被數據倉庫組織的數據是非常復雜的,除少數通用的結構規整的基本數據外,大多數數據具有多維本質特性。例如,A銷售系統在B地區的C產品年總銷售量Q,就是一個基于時間、地點和產品等多個因素有關的數據,有的數據可能涉及更多的因素。這里的時間、地區和產品就是數據倉庫中的維,維是一個物理特性,是訪問和表達商務信息的一個基本途徑,維一般作為識別數據的索引。屬性是在一個維內為了提供詳細分類系統而定義的,是為了判別和區分特定數據而定義的,如在時間維內有年、月、日等屬性。度是在維空間衡量商務信息的一種方法,它一般包括:以一個標準為基準,通過比較所得到的數量、容量或資金,如銷售量Q,這些數據用于對商務行為進行定量衡量。
??? 1.1 維
??? (1)維的種類
??? 在數據倉庫中根據維在各層次的取值中是否包含空間對象,可以將維分為3種:①非空間維,只包含非空間數據的維,其泛化值也是非空間的。例如時間維,它在每個層次上(年、月、日等)的取值都只包含非空間的數據。②空間——非空間維。在原始概念層次上是空間數據,但其泛化值在較高的層次上就變成非空間的數據。例如,在某大型零售送奶公司中,各個客戶在地圖上的分布是用空間數據來表達的,而這些客戶數據可以被泛化為一些非空間的值,比如泛化為某個子送奶公司的客戶,其更高層次的泛化值則全部變為非空間的數據。這種類型的維與非空間維所起的作用類似。③空間——空間維。原始概念層次及其所有高層次的泛化數據都是空間數據。例如,各個客戶的詳細分布情況及其泛化數據,如各個客戶在小區的分布、在郵政編碼區域的分布,以及在各個行政區的分布等都是空間數據。
??? (2)生成維的方式
??? ①根據屬性間的關系或特定數據值之間的關系,由專家或用戶指定。②利用數據分析技術(諸如聚類、分類或統計分析等)自動生成。③將經過計算的度量作為數據倉庫中的一維使用,即將銷售奶量度轉化為銷售奶量維。
??? 1.2 度
??? 在數據倉庫中可建立兩種類型的度量:第一種是數值型度量,它僅包含數值型數據的度量。例如,在送奶數據倉庫中,某個城區的月收入就可作為一個度最。第二種是空間度量,它包含空間數據的度量,是指向空間對象的指針集合。例如在送奶數據倉庫中,月收入相同的城區可以作為一個度量。信息世界中的概念模型就是由維和度組成的,在數據世界中的數據模型的就是如何很好地描述概念模型中的維和度。
2 數據倉庫中的數據模型
??? 立方體數據模型(cube)和星型數據模型都能組織數據倉庫的維和度數據,為OLAP提供支持,但它們各有一定的局限性,在數據庫開發中應該有機結合兩種數據模型,合理使用。
??? 2.1 立方體數據模型和星型數據模型
????(1)立方體數據模型
??? 立方體模型是數據倉庫的基本結構。在該模型中,一部分是數字測量值(如銷售量、投資額、收入等),它們依賴于一組維,而所有維提供了全部測量值的上下文關系。例如銷售量Q與銷售地區、銷售產品和銷售時間等有關,這些相關的“維”惟一決定了銷售量Q這個測量值。因此,多數數據視圖就可以表示為在這些由不同層次的維構成的多維空間中存放數字測量值。如圖1中的小立方體格(即cube單元格)內存儲的數據,就是可口可樂等產品的銷售量Q數據。
圖1 一個銷售立方體數據模型
??? 圖1表示了一個銷售立方體模型,圖中陰影部分就是2001年廣州市銷售可口可樂的銷售量Q。
????(2)星型數據模型
??? 大多數數據倉庫都采用“星型架構”來表示多維概念模型。采用星型模型的數據庫中至少包括一張“事實表”。“事實表”中的每條記錄都包含有指向各個“維表”的外鍵和一些相應的測量數據,即數據值。對于每一維都有一張“維素”。“維表”中記錄的是有關這一維的屬性,如圖2所示。
圖2 銷售數據倉庫的星型數據模型
??? 圖2表示了銷售數據倉庫的星型數據模型,它包含4個維:地區維、時間維、產品維和部門維。它們各由相關的屬性組成,這些屬性有時也被認為是維的層次。如圖3表示了銷售數據倉庫各個維的概念層次結構。中間是事實表,它由各維度的主鍵和數據倉庫的度構成。度數據在事實表中維護,維度數據在維度表中維護。
圖3 銷售數據倉庫中各個維的概念層次結構
??? 在星型架構中,將單維的維表與另一個維表聯接,這樣就構成了關系數據庫中的多維分析空間。這些平面的表被疊加到一起,構成了一個多維空間。疊加的核心是事實表。維表關鍵字是事實表關鍵字的一個組成部分,數據倉庫中的關鍵字應使用系統生成的代理關鍵字,而不是直接使用操作型數據庫的關鍵字,這是由數據倉庫的穩定性所決定的。雖然看起來使用操作環境的關鍵字作為數據倉庫的關鍵字顯得簡單、易懂,但實際上它會使數據倉庫管理復雜化。首先,操作環境里的關鍵字的任何變化都會導致數據倉庫里相應的變化,這違反了數據倉庫穩定的特性。同時,數據倉庫的擴展,必須保證在不破壞關鍵字的前提下,來自其他系統的數據能夠順利合并到數據倉庫中去。
?
2.2 比較立方體數據模型和星型數據模型
?
??? (1)星型架構中有2個基本類型的表:維表和事實表。維表的主關鍵字是事實表中的外部關鍵字、每一個表都很好地包括了多維概念數據模型中的維、度及屬性。維表是立方體數據模型的維,事實表的數據值是立方體數據模型中的單元。
??? (2)對OLAP的支持能力,其對比解釋見表1。從表1可知,2種模型都能支持OLAP的一般操作。
表1 2種數據模型的比較
??? (3)對業務決策者來說,星型數據模型中令人感興趣的部分是事實表,這就是數據所處的區域。為了訪問事實表中的數據值,必須通過維,必須通過確定維才能實現。立方體數據模型和星型數據模型的維是進入點、當進行立方體數據模型的處理時,通過詳細說明維的數據(坐標)訪問單元。類似的,通過維#我們定義了事實表中令人感興趣的一些字段。事實表記錄業務的行為,而任何處理均從維開始。一個人可以將維表想象為大門,業務決策者由此進入一個包含了事實的房間,也就是事實表。
??? (4)從Cube的定義和圖1可知道Cube和Cube單元的結構很規整。它是在數據倉庫中概念化數據的一種公共模型,通常被作為主要的邏輯層結構用來描述多維數據庫,為決策者提供了一個理想的環境。也正是Cube的規整性,使Cube存在致命的缺陷,即在Cube中無論是否包含數據,都會形成單元,結果產生很多單元都是空單元,造成大量的空間浪費,如特定的月份,經銷商并沒有銷售其經營的商品,則就不會產生相應的記錄、對于稀疏的立方體數據模型,要求有一些數據結構方面的知識,來預測將在哪些單元內產生數據。星型架構則克服了立方體數據模型中存在的許多不足之處。在相同的維數下,星型架構占據的空間明顯少于立方體數據模型占據的空間,即星型數據模型只在需要記錄事實的時候才產生一個事實記錄。對稀疏的星型架構就沒有預測的要求。
??? 星型模型是擴展了的關系表格結構,該模型通過包含主題的事實表和多個包含事實的非正規化的維度表來執行典型的決策支持查詢。一旦創建了事實表,就可以使用OLAP工具預先分析常用的訪問信息。星型架構能很好地支持OLAP組織匯總數據的立方體,再現數據的多維特性,高效率地執行分析性查詢語句。從圖3可以看出,每張維度表是各不相同的,其好處是能量體裁衣地為不同的維分配空間,從而節省空間,但也同時大大增加了開發和維護數據倉庫的負擔,沒有充分考慮實體的規整性。
??? 另外,為了能夠使系統更好地工作,在采用星型數據模型時,應該考慮下列因素:盡可能地使用星型架構、為用戶設計維度表、維度表的設計一定要符合通常意義上的范式約束、同一種數據盡可能地使用一個事實表、對每一個關鍵字段創建一個索引,這樣可以提高查詢語句的性能,對每一個維度表,在其關鍵字列上創建一個索引、對于每一個事實表,在其包含維度表的外鍵列的組合列上創建一個索引,系統使用這些索引加載多維數據結構和匯總數據,可以顯著提高立方體查詢處理的性能,確保數據的參考完整性。
??? 通過分析可見,立方體數據模型運用表達結構有規整性的實體或維數較少的系統,構造數據倉庫的基本數據結構,這限制了Cube在許多應用環境中的推廣使用,否則就采用星型數據模型給予設計。
??? Cube模型和星型模型的優缺點正好互補。基于此,在實際開發數據倉庫時,應該成分發揮兩者的優勢,即用星型模型描述數據倉庫中的復雜多維數據,而Cube模型描述簡單通用規整的數據。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的数据仓库中两种数据模型的分析比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源ETL软件在智能化集成系统中的应用
- 下一篇: k8s pod 状态 Evicted[通