以前簡單介紹過多維數據集(Cube)的結構。 html
原來計劃將Cube結構這部份內容打散,在實驗中穿插講解, 考慮到結構之間不一樣的部分都有聯繫,若是打散了將反而很差理解,仍是直接一次性所有講完。 數據庫
本篇咱們將詳解Cube結構, 介紹Cube結構的每一個部分,讓你們對Cube結構能有整體的把握。 函數
因爲多維數據集的結構和MDX有很強的聯繫, 所以會有部份內容涉及到MDX,你們只要大概能看懂就好了,後續會有專門的MDX 專題。 工具
SQL Server Analysis Services中的多維數據庫包含一個或多個多維數據集。 學習
下面咱們對多維數據集 (Cube) 的結構進行詳解。 spa
前面文章講過: 3d
Cube組成 = 一個或多個度量值組 + 一個或多個維度 htm
咱們分別來說述這兩個部分。 對象
度量值主要指咱們須要分析的,能夠量化的數值類型的數據, 如銷售額, 費用等。 blog
度量值組是由相關度量值組成的集合,每一個度量值只能屬於一個度量值組。
度量值組主要用於導航目的,以提升可讀性或更易於在客戶端工具中使用。
咱們不會在MDX查詢中直接使用度量值組來查詢度量值,可是某些MDX函數中可使用度量值組。
維度就是咱們的觀察角度。
例如:
時間維度由年、季度、月、周和天構成
地區維度下有國家、大區、省、市構成
維度具備一個或多個層次結構,而且每一個層次結構包含一個或多個級別。
以下圖。
每一個層次結構都包含一個或多個項,這些項被稱爲成員,而每一個成員對應於基礎維度表中的一個或多個引用值實例。
以日期維度爲例,層次結構(例如 年-月)對應的成員
Year -- 例如 CY2005, CY 2006
Semester -- 例如 H1 CY 2005, H2 CY 2005
Quarter -- 例如 Q1 CY 2005, Q2 CY 2005
Month -- 例如 January 2005, February 2005
下圖是一個具體示例:
維度 -- 層次結構(包含多個級別的) -- 具體成員 示意圖
在MDX中,某一層次結構的每一個特定成員都經過惟一名稱進行標識。
能夠經過包含維度名稱、層次結構名稱以及級別名稱的名稱路徑(使用該成員的名稱)來訪問某一維度中的某個成員,也能夠經過鍵路徑(使用該成員的鍵)進行訪問。
例如,Calendar層次結構中的成員Q1 CY 2006能夠表示爲如下形式:
[Date].[Calendar].[Calendar Quarter].[Q1 CY 2006]
若是名稱中包含空格、數字或者屬於MDX的關鍵字,請使用方括號將該名稱括起來。
另一種鍵路徑的格式,路徑中成員的鍵表示爲&[成員名稱]
例如:
[Date].[Calendar].[Calendar Quarter].&[2006]&[1]
通常狀況下,咱們用第一種方式:
格式:[維度名稱].[層次結構名稱].[級別名稱].[成員名稱]
拿以前那個圖來講明。以下圖顯示了一個多維數據集的3個面。
其中,正面被劃分紅16個正方形,每一個正方形都帶有一個數字。
假定每一個正方形中的數字是度量值[Internet Sales Amount],若是查看該正方形所在的小立方體(也是個多維數據集)的其餘面,其餘面的值也是同樣。
這個較小的多維數據集被稱爲一個單元。
各個單元保存多維數據集中全部度量值對應的數據值。若是某個單元中未提供度量值的數據值,則表示對應的度量值爲空。
如要查詢圖中灰色背景的部分值,MDX查詢須要惟一標識包含這個值的單元。該MDX查詢以下:
SELECT Measures.[Internet Sales Amount] ON COLUMNS
FROM [Adventure Works]
WHERE ([Date].[Calendar].[Calendar Quarter].&[2011]&[2],
[Product].[Product Line].[Mountain],
[Customer].[Country].[Australia])
在該查詢中能夠看到, 是基於查詢的WHERE子句中的特定條件(該條件可惟一的標識相應的單元)從Adventure Works多維數據集中選擇Measures.[Internet Sales Amount]值。
惟一標識多維數據集的一個單元或一部分的MDX表達式稱爲元組。
元組經過每一個維度中的一個成員表示,使用逗號進行分隔,而且用括號括起來。
元組並沒必要須包含全部維度中的成員。下面是一些基於Adventure Works的元組示例。
([Customer].[Country].[Australia])
([Date].[Calendar].[2011].[H1 CY 2011].[Q1 CY 2011],
[Customer].[Country].[Australia])
([Date].[Calendar].[2011].[H1 CY 2011].[Q1 CY 2011],
[Product].[ProductLine].[Mountain], [Customer].[Country].[Australia])
經過一個元組表示的一個多維數據集部分稱爲一個切片。
經過一個成員表示的元組稱爲簡單元組,能夠不使用括號。
一組元組構成一種新的對象,稱爲集。
這組元組是使用類型和數量上均徹底相同的一組維度定義的。在MDX查詢和表達式中常常會用到集。
格式:
{(Customer.Country.Australia), (Customer.Country.Canada)}
集能夠爲空 {}
集能夠包含重複的元組
若是查詢中僅指定了一個元組,那麼能夠不用花括號,查詢時會隱式轉換成集。
通常狀況下,咱們建議在編寫MDX查詢時儘可能使用括號和花括號,由於這樣能夠確保MDX查詢中指定的元組和集正確無誤。
本篇須要理解掌握Cube的各個部分,與Cube結構相關的名詞主要有:
量值,量值組,維度,層次結構,層次結構級別,成員,單元,元組,集
相關的名詞我都用粗體標出,全部都必須掌握。
你們理解時能夠找出其中的聯繫,經過聯繫來幫助理解,總結以下:
Cube由量值組和維度組成。
量值組成量值組。
維度具備層次結構,層次結構包含一個或多個級別。
每一個層次結構包括一個或多個項(成員)。
標識Cube的一個單元或一部分的MDX表達式稱爲元組。
多個元組組成集。
這些概念都很重要,全是重點,每一個都要掌握。
歡迎你們多多評論與支持。
祝學習進步,謝謝:)
相關文章列表:
首發博客園 by MiroYuan,轉載文章以後必須在文章頁面明顯位置給出做者和原文鏈接,不然保留追究法律責任的權利。