數據立方體
數據立方體
數據立方體是一類多維矩陣,讓用戶從多個角度探索和分析數據集,通常是一次同時考慮三個因素(維度)。
當我們試圖從一堆數據中提取信息時,我們需要工具來幫助我們找到那些有關聯的和重要的信息,以及探討不同的情景。一份報告,不管是印在紙上的還是出現在屏幕上,都是數據的二維表示,是行和列構成的表格。在我們只有兩個因素要考慮時,這就足矣,但在真實世界中我們需要更強的工具。
數據立方體是二維表格的多維擴展,如同幾何學中立方體是正方形的三維擴展一樣。 “立方體”這個詞讓我們想起三維的物體,我們也可以把三維的數據立方體看作是一組類似的互相疊加起來的二維表格。
但是數據立方體不局限於三個維度。大多數在線分析處理( OLAP)系統能用很多個維度構建數據立方體,例如,微軟的SQL Server 2000 Analysis Services工具允許維度數高達64個(雖然在空間或幾何範疇想像更高維度的實體還是個問題)。
在實際中,我們常常用很多個維度來構建數據立方體,但我們傾向於一次只看三個維度。數據立方體之所以有價值,是因為我們能在一個或多個維度上給立方體做索引。
由於數據立方體是一個非常有用的解釋工具,所以大多數 OLAP產品都圍繞著按多維陣列建立立方模型這樣一個結構編製。這些多維的OLAP產品,即MOLAP產品,運行速度通常比其他方法更快,這是因為能直接把索引做進數據立方的結構,方便收集數據子集。
然而,對於非常大的多維數據集, MOLAP方案並不總是有效的。隨著維度數目的增加,立方體變得更稀疏,即表示某些屬性組合的多個單元是空的,沒有集合的數據。相對於其他類型的稀疏資料庫,數據立方體往往會增加存儲需求,有時會達到不能接受的程度。壓縮技術能有些幫助,但利用這些技術往往會破壞MOLAP的自然索引。
數據立方體還可以用其他的方法構建。關係 OLAP就利用了關係資料庫模型。ROLAP數據立方體是按關係表格的集合實現的(最多可達維度數目的兩倍),來代替多維陣列。其中的表格叫做立方單元,代表特定的視圖。
由於立方單元是一個常規的資料庫表格,所以我們能用傳統的 RDBMS技術(如索引和連接)來處理和查詢它們。這種形式對大量的數據集合可能是有效的,因為這些表格必須只能包含實際有數據的數據立方單元。
但是 ROLAP缺少了用MOLAP實現時所具有的內在索引功能。相反,給定表格中的每個記錄必須包括所有的屬性值而任何集合的或摘要的數據。這種額外的開銷可能會抵消掉一些節省出來的空間,而隱性索引的缺少意味著我們必須提供顯性的索引。
從結構角度看,數據立方體由兩個單元構成:維度和測度。維度已經解釋過了,測度就是實際的數據值。
記住這點是很重要的:數據立方體中的數據是已經過處理並聚合成立方形式。因此,通常不需要在數據立方體中進行計算。這也意味著我們看到數據立方體中的數據並不是實時的、動態的數據。
立方體中的數據已經過摘要,表示諸如計件銷售、店面銷售、區域銷售、銷售純利和完成訂單的平均時間等數據。有了這些數據,分析師能針對一個或全部產品、客戶、銷售代理等,就這些數字中的一個或全部進行分析。這樣,在預測趨勢和分析業績時,數據立方體就非常有用,而表格最適合報告標準化的運作情況。