定義量值群組中的維度資料粒度 :
使用者可能需要針對不同目的來定義不同粒度或專一性的事實資料表維度。例如,分銷商或 Internet 銷售的銷售額資料可以每天記錄一次,而銷售配額資訊則可能按月或按季度層級來記錄。在這些情況下,使用者可能需要時間維度針對這些不同的事實資料表具有不同的粒度或詳細程度。儘管可以將新的資料庫維度定義為具有這種不同粒度的時間維度,但 Microsoft SQL Server 2005 Analysis Services (SSAS) 提供了更簡單的方法。
預設情況下,在 SQL Server 2005 Analysis Services 中,當在量值群組中使用維度時,該維度內的資料粒度將基於該維度鍵屬性。例如,當量值群組中包括時間維度並且時間維度的預設粒度為每天,則量值群組中該維度預設粒度也為每天。多數情況下這樣是合適的,例如本教程中的“Internet 銷售”和“分銷商銷售”量值群組便是恰當的樣本。但是,當其他類型的量值群組(例如“銷售配額”或“預算”量值群組)中包括此類維度時,則使用每月粒度或每季度粒度更為合適。
若要為Cube維度指定預設粒度以外的粒度,則需要在Cube設計器的“維度用法”選項卡上修改特定量值群組中使用的Cube維度資料粒度屬性。當您將特定量值群組中某一維度粒度更改為該維度鍵屬性之外的屬性時,必須保證該量值群組中的所有其他屬性與這一新資料粒度屬性直接或間接相關。方法是在所有其他屬性與被指定為量值群組中資料粒度屬性的屬性之間指定屬性關聯性。在這種情況下,可以定義其他屬性關聯性,而不是移動屬性關聯性。對於維度中的其餘屬性而言,有效指定為資料粒度屬性的屬性將成為量值群組中的鍵屬性。如果未恰當指定屬性關聯性,則 Analysis Services 將無法正確地彙總值,您在本主題的各任務中會看到這種情況。
有關詳細資料,請參閱和。
在本主題的各任務中,您將添加“銷售配額”量值群組並將該量值群組中的“時間”維度粒度定義為每月。然後定義月屬性和其他維度屬性之間的屬性關聯性,以確保 Analysis Services 能夠正確地彙總值。
添加表並定義“銷售配額”量值群組
添加表並定義“銷售配額”量值群組
切換到 Adventure Works DW 資料來源檢視的資料來源檢視設計器。
按右鍵“關係圖組織程式”窗格中的任意位置,單擊“建立關係圖”,然後將“銷售配額”指定為該新關係圖的名稱。有關詳細資料,請參閱。
將 Employee、Sales Territory 以及 Time 表從“表”窗格拖到“關係圖”窗格。
按右鍵“關係圖”窗格中的任意位置並選擇“添加/刪除表”,以將 FactSalesQuota 表添加到“關係圖”窗格中。
注意,SalesTerritory 表通過 Employee 錶鏈接到 FactSalesQuota 表。
檢查 FactSalesQuota 表中的列,然後瀏覽此表中的資料。
注意,此表內資料的粒度為日曆季度,該粒度的詳細程度處於 FactSalesQuota 表中的最低層級。
在資料來源檢視設計器中,將 FactSalesQuota 表的 FriendlyName 屬性更改為 SalesQuotas。
切換到 Analysis Services Tutorial Cube的Cube設計器,再單擊“Cube結構”選項卡。
按右鍵“度量值”窗格中的任意位置,單擊“建立量值群組”,再單擊“建立量值群組”對話方塊中的 SalesQuotas,然後單擊“確定”。
“銷售配額”量值群組將出現在“度量值”窗格中。注意,在“維度”窗格中,還基於“時間”資料庫維度定義了新的“時間”Cube維度。因為 Analysis Services 不瞭解哪個與時間相關的現有Cube維度與“銷售配額”量值群組下面的 FactSalesQuota 事實資料表中的 TimeKey 列相關,所以定義了新的與時間相關的Cube維度。以後在本主題的其他任務中,您可以對此變更。
展開“銷售配額”量值群組。
注意,定義了三個新的度量值。
在“度量值”窗格中,選擇“銷售額配額”,然後在“屬性”視窗中將 FormatString 屬性的值設定為 Currency。
選擇“銷售配額記數”度量值,然後在“屬性”視窗中將 FormatString 屬性的值設定為 #,#。
從“銷售配額”量值群組中刪除“日曆季度”量值群組。
Analysis Services 檢測出,“日曆季度”度量值下的列是包含度量值的列。但是,該列和 CalendarYear 列包含在本主題後面部分中將用於連結“銷售配額”量值群組和“時間”維度值。
在“度量值”窗格中,按右鍵“銷售配額”量值群組,然後單擊“建立度量值”。有關詳細資料,請參閱。
將開啟“建立度量值”對話方塊,其中包含使用類型為 Sum 的度量值的可用源列。
在“建立度量值”對話方塊中,選擇“用法”列表中的“非重複計數”,確保在“源表”列表中選中 SalesQuotas,在“源列”列表中選中 EmployeeKey,然後單擊“確定”。
注意,將在名為“銷售配額 1”的新量值群組中建立該度量值。Microsoft SQL Server 2005 中的相異計數量值在它們自己的量值群組中建立,以最大程度地提高處理效能。
將 Employee Key Distinct Count 度量值的 Name 屬性值更改為“銷售人員記數”,然後將FormatString 屬性的值設定為 #,#。
按時間瀏覽“銷售配額”量值群組中的度量值
按時間瀏覽“銷售配額”量值群組中的度量值
在“產生”菜單上,單擊“部署 Analysis Services 教程”。
部署成功完成後,在 Analysis Services Tutorial Cube的Cube設計器中單擊“瀏覽器”選項卡,再單擊“重新串連”。
清除“資料”窗格中的所有階層和度量值,然後清除“篩選器”窗格中的維度成員。
在“中繼資料”窗格中展開“銷售配額”量值群組,然後將“銷售額配額”度量值添加到資料區域。
將“銷售領域”維度中的“銷售領域”使用者定義階層添加到欄區域。
注意,“銷售領域”Cube維度沒有與 Fact Sales Quota 表直接或間接相關,如所示。
在本主題的下一個任務中,您將在該維度和該事實資料表之間定義參考維度關係。
在“資料”窗格中,單擊“銷售領域組”旁邊的向下鍵,然後清除 North America 以外的所有複選框,將“銷售領域組”中顯示的維度成員更改為 North America。
在“中繼資料”窗格中,展開“時間”,然後展開“會計”。
將 Time.Fiscal Time 使用者階層添加到列區域,然後在“資料”窗格中單擊“會計年度”旁邊的向下鍵,並清除 FY 2004 以外的所有複選框,以便只顯示 2004 會計年度。
在“資料”窗格中,依次展開 FY 2004、H1 FY 2004、Q1 FY 2004 以及 July 2003。
注意,此時將只顯示“月份”層級的 July 2003 成員,而不顯示“月份”層級的 July, 2003、August, 2003 和 September, 2003 成員,並且只顯示“日期”層級的 July 1, 2003 成員,而不顯示所有的 31 天。出現此行為是因為事實資料表中資料的粒度屬於季度層級,“時間”維度粒度屬於每日層級。在本主題的下一個任務中,您可以對此行為變更。
另注意,月份層級和日層級以及季度層級的“銷售額配額”值相同,都為 $13,733,000.00。這是因為“銷售配額”量值群組中最低的資料層級為季度層級。您可以在第 6 課中更改此行為。
顯示了“銷售額配額”的值。
定義“銷售配額”量值群組的維度用法屬性
定義“銷售配額”量值群組的維度用法屬性
開啟“僱員”維度維度設計器,然後根據 Employee 表中的 SalesTerritoryKey 列將 SalesTerritoryKey 屬性添加為隱藏且未最佳化的無序屬性。
需要使用該屬性將“銷售領域”維度作為參考維度連結到“銷售配額”和“銷售配額 1”量值群組。
在 Analysis Services Tutorial Cube的Cube設計器中,單擊“維度用法”選項卡,然後查看“銷售配額”和“銷售配額 1”量值群組中的維度用法。
注意,“僱員”和“時間”Cube維度通過常規關係連結到“銷售配額”和“銷售配額 1”量值群組。另注意,“銷售領域”Cube維度未連結到這些量值群組中的任何一組。
定義“銷售領域”維度和“銷售配額”量值群組之間的具體化參考關聯性,將“僱員”指定為中間維度,將“銷售領域所屬地區”指定為參考維度屬性,將 SalesTerritoryKey 指定為中間維度屬性。(“銷售領域所屬地區”屬性的鍵列為 SalesTerritoryKey 列。)
對“銷售配額 1”量值群組重複前面的步驟。
刪除“時間”Cube維度。
不使用四個與時間相關的Cube維度,您將使用“銷售配額”量值群組中的“訂購日期”Cube維度作為定義“銷售配額”維度所依據的日期。還會將此Cube維度用作Cube中的主日期維度。
在“維度”列表中,將 Time (Order Date) Cube維度重新命名為 Time (Date)。
將 Order Date Cube維度重新命名為 Date,使得使用者能夠更加輕鬆地理解該日期在此Cube中作為主日期的作用。
單擊“銷售配額”量值群組和 Time (Date) 維度相交處的單元中的省略符號按鈕 (…)。
在“定義關係”對話方塊中,選擇“選擇關聯類型”列表中的“常規”。
在“資料粒度屬性”列表中,選擇“日曆季度”。
注意此時會出現一個警告,它指出由於已選擇非鍵屬性作為資料粒度屬性,所以必須通過將所有其他屬性指定為成員屬性來確保它們與資料粒度屬性直接或間接相關。
顯示了“定義關係”對話方塊。
在“定義關係”對話方塊的“關係”地區中,將 Time (Date) Cube維度下面表中的 CalendarYear 和 CalendarQuarter 維度列連結到 Sales Quota 量值群組下面表中的 CalendarYear 和 CalendarQuarter 列,然後單擊“確定”。
|
| “日曆季度”定義為“銷售配額”量值群組中 Time (Date) Cube維度資料粒度屬性,但“日期”屬性繼續作為“Internet 銷售”和“分銷商”量值群組的資料粒度屬性。 |
對 Sales Quotas 1 量值群組重複前面的四個步驟。
顯示了“日曆季度”被定義為“銷售配額”和“銷售配額 1”量值群組中 Time (Date) Cube維度資料粒度屬性。
定義“日曆季度”屬性和“時間”維度中其他維度屬性之間的屬性關聯性
定義“日曆季度”屬性和“時間”維度中其他維度屬性之間的屬性關聯性
切換到“時間”維度維度設計器,然後單擊“維度結構”。
在“屬性”窗格中,展開下列屬性:
注意,儘管“日曆年度”通過“日曆半期”屬性連結到“日曆季度”,但是會計日曆屬性只相互進行連結;它們並未連結到“日曆季度”屬性,因此不會在“銷售配額”量值群組中正確地彙總。
將“會計季度”屬性拖到“日曆季度”屬性的“<建立屬性關聯性>”標記。
注意此時會出現一條警告訊息,指出“時間”維度包含一個或多個冗餘屬性關聯性,在將非鍵屬性用作資料粒度屬性時這些冗餘屬性關聯性可能會禁止資料彙總。該警告會繼續建議,不需要“月份名稱”屬性的“會計季度”屬性關聯性。
請刪除“月份名稱”屬性的“會計季度”屬性關聯性。
以前的警告將會消失。
按時間瀏覽“銷售配額”量值群組中的度量值
按時間瀏覽“銷售配額”量值群組中的度量值
在“產生”菜單上,單擊“部署 Analysis Services 教程”。
部署成功完成後,在 Analysis Services Tutorial Cube的Cube設計器中單擊“瀏覽器”選項卡,再單擊“重新串連”。
注意,由於現已將“銷售領域”維度定義為參考維度,因此“銷售額配額”度量值已按照“銷售領域”正確確定了維度。
將 Date.FiscalTime 使用者階層添加到“日期”Cube維度列區域,然後單擊“會計年度”旁邊的向下鍵,並清除 FY 2004 以外的所有複選框,從而只顯示 2004 會計年度。
單擊“確定”。
依次展開 FY 2004、H1 FY 2004 以及 Q1 FY 2004。
注意,“銷售配額”量值群組中的度量值正確地定義了維度。另注意,將顯示會計季度層級的每個成員,其中每個成員的值為季度層級的值。出現此行為是因為事實資料表中資料的粒度屬於季度層級,“時間”維度粒度也屬於季度層級。在第 6 課中,您將瞭解如何按比例將季度量分配到每個月。
顯示了 Analysis Services Tutorial Cube的Cube設計器,其中正確定義了“銷售配額”量值群組維度。
|
| 通過下載並安裝已更新的樣本,可以獲得第 5 課中使用的完整項目。有關詳細資料,請參閱中的“擷取已更新的樣本”。 |