使用者希望維度事實資料基於不同的用途有不同的資料粒度或具體性。 例如可能記錄每一天轉售商的銷售資料或網際網路銷售,但銷售配額資訊可能只有當月或當季才有。 在這些案例中,使用者希望時間維度對每一個不同的事實資料表有不同的資料粒度或詳細層級。 雖然您可以將新的資料庫維度定義為具有這個不同細微性的時間維度,但 Analysis Services 有更簡單的方式。
根據預設,在 Analysis Services 中,當維度用於量值群組內時,該維度內資料的細微性是以維度的索引鍵屬性為基礎。 例如,當 [時間] 維度是包括在量值群組內,且 [時間] 維度的預設資料粒度是每天,則量值群組內的該維度的預設資料粒度就是每天。 這適合許多情況,例如本教學課程中的 [網際網路銷售] 和 [轉售商銷售] 量值群組。 不過,當這種維度包含在其他類型的量值群組中,例如在銷售配額或預算量值群組中,則每月或每季資料粒度會更加適合。
若要對 Cube 維度指定預設資料粒度以外的資料粒度,您必須在 [Cube 設計師] 的 [維度使用方式] 索引標籤上,修改特定量值群組內使用的 Cube 維度的資料粒度屬性。 當您將特定量值群組內的維度資料粒度變更為該維度的索引鍵屬性以外的屬性時,必須保證該量值群組中的所有其他屬性均與新的資料粒度屬性直接或間接相關。 您可以在所有其他屬性與指定為量值群組中的資料粒度屬性的那個屬性之間指定屬性關聯性,來達到這個目的。 在本案例中,您會定義其他的屬性關聯性,而不是移動屬性關聯性。 實際上,對維度中的其餘屬性來說,指定為資料粒度屬性的屬性會成為量值群組內的索引鍵屬性。 如果您未適當指定屬性關聯性,Analysis Services 將無法正確匯總值,如本主題中的工作所示。
如需詳細資訊,請參閱 維度關聯性、 定義一般關聯性及一般關聯性屬性。
在這個主題的工作中,您會加入 [銷售配額] 量值群組,以及在這個量值群組中將 [日期] 維度的資料粒度定義為每月。 接著,您可以定義月份屬性與其他維度屬性之間的屬性關聯性,以確保 Analysis Services 正確匯總值。
加入資料表及定義 [銷售配額] 量值群組
請切換到 [Adventure Works DW 2012] 資料來源檢視。
以滑鼠右鍵按一下 [ 圖表召集人 ] 窗格中的任何位置,按一下 [ 新增圖表],然後將圖表
Sales Quotas命名為 。將 [員工]、[ 銷售領域] 和
Date資料表從 [ 資料表 ] 窗格拖曳至 [ 圖表 ] 窗格。以滑鼠右鍵按一下 [圖表] 窗格中的任何位置,並選取 [加入/移除資料表] 即可將 [FactSalesQuota] 資料表加入 [圖表] 窗格中。
請注意,[SalesTerritory] 資料表是透過 [員工] 資料表而連結到 [FactSalesQuota] 資料表。
檢閱 [FactSalesQuota] 資料表中的資料行,然後瀏覽這個資料表中的資料。
請注意,這個資料表內的資料粒度是日曆季,這是 [FactSalesQuota] 資料表的最低層級詳細資料。
在 [資料來源檢視] Designer中,將FactSalesQuota資料表的FriendlyName屬性變更為
SalesQuotas。切換至 Analysis Services 教學課程 Cube,然後按一下 [Cube 結構] 索引 標籤。
以滑鼠右鍵按一下 [量值 ] 窗格中的任何位置,按一下 [ 新增量值群組],按一下
SalesQuotas[ 新增量值群組 ] 對話方塊,然後按一下 [ 確定]。量
Sales Quotas值群組會出現在 [ 量值 ] 窗格中。 在 [維度]窗格中,請注意,也會根據Date資料庫維度定義新的DateCube 維度。 定義新的時間相關 Cube 維度,因為 Analysis Services 不知道哪些現有的時間相關 Cube 維度與FactSalesQuota事實資料表中的DateKey資料行有關,而該資料行低於 Sales Quotas 量值群組。 稍後您會在這個主題的另一項工作中加以變更。Sales Quotas展開量值群組。在 [量值] 窗格中,選取 [銷售量配額],然後在 [屬性] 視窗中將 [FormatString] 屬性的值設為 [貨幣]。
選取[銷售配額計數]量值,然後在屬性視窗中輸入
#,#FormatString屬性的值。從
Sales Quotas量值群組中刪除[行事曆季] 量值。Analysis Services 偵測到行事曆季量值作為包含量值的資料行。 不過,這個資料行和 CalendarYear 資料行都包含您稍後在這個主題中用於連結 [銷售配額] 量值群組與 [日期] 維度的值。
在 [ 量值 ] 窗格中,以滑鼠右鍵按一下
Sales Quotas量值群組,然後按一下 [ 新增量值]。此時會開啟 [新增量值] 對話方塊,它包含使用類型為 [總和] 的量值可用的來源資料行。
在 [新增量值] 對話方塊中,選取[使用量] 清單中的[相異計數],確認
SalesQuotas已選取 [來源資料表] 清單中的 [EmployeeKey],然後按一下 [確定]。請注意,量值是建立在一個叫作 [銷售配額 1] 的新量值群組中。 SQL Server中的相異計數量詞會在自己的量值群組中建立,以最大化處理效能。
將[員工索引鍵相異計數]量值
Sales Person Count的值變更為 ,然後輸入#,#為FormatString屬性的值。
按日期瀏覽銷售配額量值群組中的量值
在 [建立] 功能表上,按一下 [部署 Analysis Services 教學課程]。
部署成功完成時,請按一下 [Cube] 中的 [瀏覽器] 索引標籤,Designer Analysis Services 教學課程 Cube,然後按一下 [重新連線] 按鈕。
按一下 Excel 捷徑,然後按一下 [啟用]。
在 [樞紐分析表欄位清單] 中,展開
Sales Quotas量值群組,然後將 [銷售量配額 ] 量值拖曳至 [值] 區域。展開 [銷售領域] 維度,然後將 [銷售領域] 使用者定義階層拖曳至 [資料列標籤]。
請注意,[銷售領域] Cube 維度與 [事實銷售配額] 資料表並無直接或間接關係,如下圖所示。
在這個主題的下一系列的步驟中,您將會在這個維度與這個事實資料表之間定義參考維度關聯性。
將 [銷售領域] 使用者階層從 [資料列標籤] 區域移至 [資料行標籤] 區域。
在樞紐分析表欄位清單中,選取 [銷售領域] 使用者定義階層,然後按一下右側的向下箭號。
在篩選中,按一下 [全選] 核取方塊以清除所有選取項目,然後只選擇 [北美洲]。
在 [樞紐分析表欄位清單] 中,展開
Date。將 [Date.Fiscal Date] 使用者階層拖曳至 [資料列標籤]
在樞紐分析表上,按一下 [資料列標籤] 旁邊的向下鍵。 清除 [FY 2008] 之外的所有年份。
請注意,月層級只有2007 年 7 月成員出現,而不是2007 年 8 月、2007年8 月、2007 年 9 月、2007 年 9月成員,而且只有層級的 2007 年 7 月 1日成員
Date出現,而不是全部 31 天。 發生此行為的原因是事實資料表中的資料細微性是季層級,而維度的Date細微性是每日層級。 您會在這個主題的下一項工作中變更這種行為。同樣也請注意,月和日層級的 [銷售量配額] 值與季層級的值相同,都是 $13,733,000.00。 這是因為 [銷售配額] 量值群組中的資料最低層級是在季層級。 您會在第 6 課變更這種行為。
下圖顯示 [銷售量配額] 的值。
定義 [銷售配額] 量值群組的維度使用方式屬性
針對 [員工] 維度開啟 [維度設計師],以滑鼠右鍵按一下 [資料來源檢視] 窗格中的 [SalesTerritoryKey],然後按一下 [從資料行新增屬性]。
在 [屬性] (attribute) 窗格中,選取 [SalesTerritoryKey],然後在 [屬性] (property) 視窗中,將 [AttributeHierarchyVisible] 屬性 (property) 設定為 [False]、將 [AttributeHierarchyOptimizedState] 屬性 (property) 設定為 [NotOptimized],並且將 [AttributeHierarchyOrdered] 屬性 (property) 設定為 [False]。
必須有這個屬性,才能將 Sales Territory 維度連結至
Sales Quotas和 Sales Quotas 1 量值群組做為參考維度。在 Analysis Services 教學課程 Cube 的 Cube Designer中,按一下 [維度使用量] 索引標籤,然後檢閱 [銷售配額 1] 量值群組內的
Sales Quotas維度使用量。請注意, 員工 和
DateCube 維度會透過一般關聯性連結到 銷售配額和銷售配額 1 量值群組。 也請注意,[銷售領域] Cube 維度並未連結到其中任何量值群組。按一下 Sales Territory 維度與
Sales Quotas量值群組交集處的儲存格,然後按一下瀏覽按鈕 (...) 。[ 定義關聯性 ] 對話方塊隨即開啟。在 [選取關聯性類型] 清單中,選取 [參考的]。
在 [中繼維度] 清單中,選取 [員工]。
在 [參考維度屬性] 清單中,選取 [銷售領域地區]。
在 [中繼維度屬性] 清單中,選取 [銷售領域索引鍵]。 ([銷售領域地區] 屬性的索引鍵資料行是 SalesTerritoryKey 資料行)。
確認已選取 [具體化] 核取方塊。
按一下 [確定] 。
按一下 [銷售領域 ] 維度與 [銷售配額 1 ] 量值群組交集處的儲存格,然後按一下瀏覽按鈕 (...) 。[ 定義關聯性 ] 對話方塊隨即開啟。
在 [選取關聯性類型] 清單中,選取 [參考的]。
在 [中繼維度] 清單中,選取 [員工]。
在 [參考維度屬性] 清單中,選取 [銷售領域地區]。
在 [中繼維度屬性] 清單中,選取 [銷售領域索引鍵]。 ([銷售領域地區] 屬性的索引鍵資料行是 SalesTerritoryKey 資料行)。
確認已選取 [具體化] 核取方塊。
按一下 [確定] 。
Date刪除 Cube 維度。您不會有四個時間相關的 Cube 維度,而是使用量值群組中的
Sales Quotas[訂單日期] Cube 維度做為維度銷售配額的日期。 您也會使用這個 Cube 維度做為 Cube 中的主要日期維度。在 [維度] 清單中,將 Order Date Cube 維度重新命名為
Date。重新命名 Order Date Cube 維度
Date,讓使用者更容易瞭解其角色作為此 Cube 中的主要日期維度。按一下在量值群組和
Date維度交Sales Quotas集的儲存格中,按一下瀏覽按鈕 (...) 。在 [定義關聯性] 對話方塊中,選取 [選取關聯性類型] 清單中的 [一般]。
在 [資料粒度屬性] 清單中,選取 [日曆季]。
請注意,會出現警告通知您,因為您已選取非索引鍵屬性做為資料粒度屬性,所以必須以指定為成員屬性的方式,來確定所有其他屬性均與資料粒度屬性直接或間接有關。
在 [定義關聯性] 對話方塊的 [關聯性] 區域中,將 [日期] Cube 維度之基礎資料表中的 [CalendarYear] 及 [CalendarQuarter] 維度資料行,與 [銷售配額] 量值群組之基礎資料表中的 [CalendarYear] 及 [CalendarQuarter] 資料行相連結,然後按一下 [確定]。
注意
「日曆季」是定義為「銷售配額」量值群組中之日期 Cube 維度的資料粒度屬性,但 [日期] 屬性仍會是「網際網路銷售」及「轉售商銷售」量值群組的資料粒度屬性。
對 [銷售配額 1] 量值群組重複前面 4 個步驟。
在日曆季屬性和日期維度的其他維度屬性之間定義屬性關聯性
切換至維度的
Date[維度Designer],然後按一下 [屬性關聯性] 索引標籤。請注意,雖然[行事歷年度] 透過 [行事曆半年] 屬性連結到 [行事曆季],但會計行事曆屬性只會彼此連結;它們不會連結至Calendar Quarter屬性,因此不會在量值群組中
Sales Quotas正確匯總。在圖表中,以滑鼠右鍵按一下 [日曆季] 屬性,然後選取 [新增屬性關聯性]。
在 [建立屬性關聯性] 對話方塊中,[來源屬性] 是 [日曆季]。 將 [相關屬性] 設定為 [會計季度]。
按一下 [確定] 。
請注意,警告訊息隨即出現,指出
Date維度包含一或多個備援屬性關聯性,當非索引鍵屬性用來做為資料細微性屬性時,可能會造成資料無法匯總。刪除 [月份] 屬性與 [會計季度] 屬性之間的屬性關聯性。
在 [檔案] 功能表上,按一下 [全部儲存]。
按日期瀏覽銷售配額量值群組中的量值
在 [建立] 功能表上,按一下 [部署 Analysis Services 教學課程]。
部署成功完成時,請按一下 [Cube] 中的 [瀏覽器] 索引標籤,Designer Analysis Services 教學課程 Cube,然後按一下 [重新連線]。
按一下 Excel 捷徑,然後按一下 [啟用]。
將 [銷售量配額] 量值拖曳至 [值] 區域。
將 [銷售領域] 使用者階層拖曳至 [資料行標籤],然後針對 [北美洲] 篩選。
將 [Date.FiscalDate] 使用者階層拖曳至 [資料列標籤] 中,然後按一下樞紐分析表上 [資料列標籤] 旁邊的向下箭號,並清除 [FY 2008] 以外的所有核取方塊,只顯示 2008 會計年度。
按一下 [確定]。
依序展開 [FY 2008]、[H1 FY 2008] 和 [Q1 FY 2008]。
下圖顯示 Analysis Services 教學課程 Cube 的樞紐分析表,並正確設定銷售配額量值群組。
請注意,會計季度層級的每一個成員都有與季層級相同的值。 使用 [Q1 FY 2008] 當作範例,[Q1 FY 2008] 的配額 $9,180,000.00 也是其每個成員的值。 之所以會發生這種行為,是因為事實資料表中的資料粒度是在季層級,而 [日期] 維度的資料粒度也是在季層級。 在第 6 課,您將了解如何按比例配置每月的季量。