量值是數值數據值的匯總,例如 sum、count、minimum、maximum、average 或您建立的自定義 MDX 表達式。 量值群組是一或多個量值的容器。 所有量值都存在於量值群組中,即使只有一個量值也一樣。 Cube 必須至少有一個量值和量值群組。
本主題包含下列各節:
建立量值的方法
量值可以是 Cube 的靜態元素,在設計時建立,每當存取 Cube 時,將始終存在。 但是,您也可以使用 MDX 根據 Cube 中的其他量值計算值,以將量值定義為計算成員。 計算成員的範圍可以設定為會話或使用者。
若要建立量值或量值群組,請使用下列其中一種方法:
| Cube 巫師 | 在 SQL Server Data Tools (SSDT) 中啟動 Cube 精靈以建立立方體。 在 [方案總管] 中,以滑鼠右鍵點擊 [Cubes],然後選擇 [新增 Cube]。 如果您需要這些步驟的協助 ,請參閱多維度模型化(Adventure Works 教學課程 )。 當您根據現有數據倉儲的數據表建立 Cube 時,量值和量值群組的定義會具體化為 Cube 建立程式的一部分。 在精靈中,您將選擇要使用哪些事實和事實數據表作為 Cube 中量值和量值群組對象的基礎。 |
| 新增量值對話框 | 假設 Cube 已存在於 SQL Server Data Tools (SSDT),請在 [方案總管] 中按兩下 Cube 名稱,以在 Cube 設計師中開啟它。 在 [量值] 窗格中,以滑鼠右鍵按兩下頂端節點,以指定源數據表、數據行和匯總類型,以建立新的量值群組或新的量值。 使用此方法需要您從預先建置函式的固定清單中選擇匯總方法。 如需更常用聚合函數的討論,請參閱 使用聚合函數。 |
| 計算成員 | 計算成員可以將彈性和分析功能新增至 Analysis Services 的多維資料集中,因為您能夠控制其建立的時間與方式。 有時候您只需要暫時的量值、在用戶會話期間,或在Management Studio 中做為調查的一部分。 在 SQL Server Data Tools (SSDT)中,開啟 [計算] 索引標籤以建立新的計算成員。 在 MDX 運算式上建立量值時,請選擇此方法。 如需詳細資訊,請參閱這些主題:在 MDX 中建置量值、計算、多維度模型中的計算和 MDX 腳本基本概念(Analysis Services)。 |
| MDX 或 XMLA | 在 SQL Server Management Studio 中,您可以執行 MDX 或 XMLA 來改變資料庫以包含新的匯出量值。 在解決方案部署至伺服器之後,此方法適用於資料的特定測試。 請參閱撰寫和記錄 Analysis Services 資料庫。 |
量值的構成要素
量值是具有屬性的物件。 除了其名稱之外,量值還必須有匯總類型和源數據行或用來載入量值的表達式。 您可以藉由設定其屬性來修改量值定義。
| 源 | 大部分量值來自外部數據倉儲中事實數據表中的數值數據行,例如 AdventureWorks 數據倉儲中 Internet Sales 和 Reseller Sales 數據表中的 Sales Amount 數據行,但您也可以完全根據您所定義的計算來建立新的量值。 維度數據表中的屬性數據行可用來定義量值,但這類量值在匯總行為方面通常是半加總或非加總。 如需有關半加總行為的詳細資訊,請參閱 定義半加總行為。 |
| 匯總 | 根據預設,量值會沿著每個維度加總。 不過, AggregateFunction 屬性可讓您修改此行為。 如需清單,請參閱 使用聚合函數 。 |
| 性能 | 如需其他屬性描述,請參閱 設定量值屬性 。 |
將事實和事實數據表的量值和量值群組模型化
執行精靈之前,有助於瞭解量值定義背後的模型原則。
量值和量值群組是代表外部數據倉儲中事實和事實數據表的多維度物件。 在大部分情況下,量值和量值群組會以數據源檢視中的對象為基礎,而後者則會從基礎數據倉儲建立。
下圖代表 FactSalesQuota 事實數據表及其相關聯的兩個維度數據表 DimTime 和 DimEmployee。 在 Adventure Works 範例數據模型中,這些數據表作為銷售配額量值組的基礎,以及時間和員工維度。
事實數據表包含兩種基本類型的數據行:屬性數據行和量值數據行。
屬性數據行可用來建立維度數據表的外鍵關聯性,讓量值數據行中的可量化數據可由維度數據表中包含的數據組織。 屬性數據行也可用來定義事實數據表及其量值群組的數據粒度。
量值數據行會定義量值群組所包含的量值。
當您執行 Cube 精靈時,會篩選掉外鍵。在要選擇的其餘資料列清單中,您會看到量值數據行,加上未識別為外鍵的屬性數據行。 在 FactSalesQuote 範例中,精靈除了 SalesAmountQuota 之外,還會提供 CalendarYear 和 CalendarQuarter。 只有 SalesAmountQuota 量值數據行會產生多維度模型的可運作量值。 其他以日期為基礎的欄位是用來限定每個配額數量。 您應該從 Cube 精靈中的量值清單中排除其他資料行 CalendarYear 和 CalendarQuarter(或稍後在設計工具中從量值群組中移除它們)。
此討論的要點是,精靈提供的欄位並非都適合用作量度。 依賴您對數據的理解,以及在決定哪些欄位用作度量時的使用方式。 請記住,您可以在數據源檢視中的數據表上按下滑鼠右鍵來探索數據,以協助您識別要作為量值的數據行。 如需詳細資訊,請參閱在資料來源檢視中探索資料(分析服務)。
備註
並非所有量值都直接衍生自儲存在事實數據表數據行中的值。 例如,Adventure Works 範例 Cube 中的 Sales Quota 量值群組中定義的 Sales Person Count 量值,實際上是根據 FactSalesQuota 事實表的 EmployeeKey 欄中的唯一值計數或相異計數。
量值群組的粒度
量值群組具備特定的粒度,指的是事實表所支援的詳細層級。 粒度是透過與維度的外鍵關係來設定。
例如, FactSalesQuota 事實數據表與 DimEmployee 數據表有外鍵關聯性, FactSalesQuota 數據表中的每個記錄都與單一員工相關,因此從 Employee 維度檢視的量值群組數據粒度會位於個別員工層級。
量值群組的數據粒度永遠無法設定比檢視量值群組的最低層級更精細,但數據粒度可以使用其他屬性進行粗略設定。 例如, FactSalesQuota 事實數據表會使用三個數據行 TimeKey、 CalendarYear 和 CalendarQuarter 來建立與 DimTime 數據表的關聯性粒度。 因此,從 [時間] 維度檢視的量值群組數據粒度是以日曆季度表示,而不是以天表示,後者是時間維度的最低層級。
您可以使用 Cube 設計師的 [維度使用] 索引標籤,指定量值群組相對於特定維度的粒度。 如需維度關聯性的詳細資訊,請參閱 維度關聯性。