BI之SSAS完整實戰教程5 -- 詳解多維數據集結構

以前簡單介紹過多維數據集(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如何表示某個特定成員?

在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,轉載文章以後必須在文章頁面明顯位置給出做者和原文鏈接,不然保留追究法律責任的權利。
相關文章
相關標籤/搜索