定義命名集:
命名集是可返回一組維度成員的多維度運算式 (MDX)。可以定義命名集,並將它們另存新檔Cube 定義的一部分;還可以在用戶端應用程式中建立命名集。通過合并Cube資料、算術運算子、數字和函數,可以建立命名集。命名集可以由使用者在用戶端應用程式的 MDX 查詢中使用,還可以用來定義子Cube中的集合。子Cube是交叉聯結集的集合,它將Cube空間限制為隨後語句的定義的子空間。定義受限的Cube空間是 MDX 指令碼的一個基本概念。本課程的下一個主題將討論 MDX 指令碼。
命名集簡化了 MDX 查詢,並為複雜、常用的集運算式提供了有用的別名。例如,可以定義名為“大型分銷商”的命名集,用來包含有最多僱員的“分銷商”維度成員集合。然後,終端使用者可以在查詢中使用“大型分銷商”命名集,您也可以使用該命名集來定義子Cube中的集合。命名集定義儲存於Cube中,但它們的值只存在於記憶體中。若要建立命名集,請使用Cube設計器的“計算”選項卡上的“建立命名集”命令。有關詳細資料,請參閱、。
在此主題的任務中,將定義兩個命名集:“核心產品”命名集和“大型分銷商”命名集。
定義“核心產品”命名集
定義“核心產品”命名集
切換到 Analysis Services Tutorial Cube的Cube設計器的“計算”選項卡,再單擊工具列上的“表單檢視”。
單擊“指令碼組織程式”窗格中的“[所有產品的總銷售額比率]”,然後在“計算”選項卡的工具列上單擊“建立命名集”。
在“計算”選項卡上定義新計算時,請記住,計算的解析是按它們出現在“指令碼組織程式”窗格中的順序來進行的。在建立新計算時該窗格中的焦點確定了計算的執行順序;新的計算將定義於緊靠有焦點的計算之後。
在“名稱”框中,將新命名集的名稱更改為 [Core Products]。
在“指令碼組織程式”窗格中,注意用於將命名集與指令碼命令或導出成員區分開來的唯一表徵圖。
在“計算工具”窗格中的“中繼資料”選項卡上,依次展開“產品”、“類別”、“成員”和“所有產品”。
|
| 如果無法在“計算工具”窗格中查看任何中繼資料,請在工具列上單擊“重新串連”。如果該操作失敗,則可能必須處理Cube,或啟動 Analysis Services 執行個體。 |
- 將“單車”拖到“運算式”框中。
現在,您已經建立一組運算式,它將返回“產品”維度內的“單車”類別中的成員集合。
顯示在此過程中建立的命名集的“計算運算式”窗格。
定義“大型分銷商”命名集
定義“大型分銷商”命名集
在“指令碼組織程式”窗格中按右鍵[核心產品],再單擊“建立命名集”。
在“名稱”框中,將此命名集的名稱更改為 [大型分銷商]。
在“運算式”框中鍵入 Exists()。
您將使用 Exists 函數來從“大型分銷商”屬性階層返回成員集合,而“分銷商名稱”屬性階層將與有最大僱員數的“僱員數”屬性階層中的成員集合互動。
在“計算工具”窗格中的“中繼資料”選項卡上,展開“分銷商”維度,再展開“分銷商名稱”屬性階層。
將“分銷商名稱”層級拖到 Exists 集運算式的括弧中。
將使用 Members 函數來返回此集合的所有成員。相關主題:
在部分集運算式之後鍵入句號,再添加 Members 函數。運算式應該如下顯示:
|
複製代碼 |
Exists([Reseller].[Reseller Name].[Reseller Name].Members) |
既然已經為 Exists 集運算式定義了第一個集合,現在可以開始添加第二個集合,即包含最大僱員數的“分銷商”維度成員集合。
在“計算工具”窗格中的“中繼資料”選項卡上,依次展開“分銷商”維度中的“僱員數目”、“成員”和“所有分銷商”。
注意,此屬性階層的成員沒有分組。
開啟“分銷商”維度設計器,然後在“屬性”窗格中單擊“僱員數目”。
在“屬性”視窗中,將 DiscretizationMethod 屬性更改為“自動”,再將 DiscretizationBucketCount 屬性更改為 5。相關主題:
在 Business Intelligence Development Studio 的“產生”菜單上,單擊“部署 Analysis Services 教程”。
成功完成部署後,切換到 Analysis Services Tutorial Cube的Cube設計器,然後在“計算”選項卡的工具列上單擊“重新串連”。
在“計算工具”窗格中的“中繼資料”選項卡上,依次展開“分銷商”維度中的“僱員數目”、“成員”和“所有分銷商”。
注意,此屬性階層的成員現在包含於編號為 0 到 4 的五個組中。若要查看組的編號,請將指標暫停在組上,以查看 InfoTip。之所以對此屬性階層的成員進行分組,是因為 DiscretizationBucketCount 屬性設定為 5,並且 DiscretizationMethod 屬性設定為“自動”。
在“運算式”框中,在 Exists 集運算式中的 Members 函數之後和右括弧之前添加逗號,再將 83 - 100 從“中繼資料”窗格拖放到逗號之後。
現在,將“大型分銷商”命名集放在軸上時,您已經完成了將會返回與兩個指定集合(所有分銷商集合和有 83 到 100 名僱員的分銷商集合)互動的成員集合的 Exists 集運算式。
顯示 [大型分銷商] 命名集的“計算運算式”窗格。
在“計算”選項卡的工具列上,單擊“指令碼視圖”,然後檢查剛才添加到計算指令碼中的兩個命名集。
在計算指令碼中緊靠第一個 CREATE SET 命令之前添加新行,然後在指令碼中獨立的行上添加以下文本:
現在,您已經定義了兩個命名集,它們已顯示在“指令碼組織程式”窗格中。現在,您可以部署這兩個命名集,然後在 Analysis Services Tutorial Cube中瀏覽這些度量值。
使用新的命名集瀏覽Cube
使用新的命名集瀏覽Cube
在 BI Development Studio 的“產生”菜單上,單擊“部署 Analysis Services 教程”。
在已成功完成部署後,單擊“瀏覽器”選項卡,再單擊“重新串連”。
從“資料”窗格中刪除所有階層和度量值。
將“分銷商銷售-銷售額”度量值添加到資料區域,再將“產品類別”使用者定義階層添加到列區域。
注意,只會出現類別屬性的一個成員。這是因為先前已在此會話中使用該屬性作為篩選器。如果在新會話中工作,將顯示所有成員。
選擇“行”地區中“類別”旁邊的下拉鍵頭,然後選中“(全部)”層級旁邊的複選框,以選擇此層級(如果尚未選擇它)的所有成員,再單擊“確定”。
展開“單車”以查看“子類別”層級的成員,如所示。
在“中繼資料”窗格中的“產品”維度內,按右鍵“核心產品”,並選擇“添加到子Cube地區”。
注意,只有“類別”屬性的“單車”成員和“單車”子類別的成員會留在Cube中。這是因為“核心產品”命名集用來定義子Cube,該子Cube的屬性將出現在位於“資料”窗格上面的“篩選器”窗格中。此子Cube使得它包含的“產品”維度中的“類別”屬性的成員僅限於“核心產品”命名集的那些成員,如所示。
在“中繼資料”窗格中,展開“分銷商”,按右鍵“大型分銷商”,然後單擊“添加到子Cube地區”。
注意,“資料”窗格中的“分銷商銷售額”度量值只顯示大型單車分銷商的銷售額。還要注意,“篩選器”窗格現在顯示用來定義此特定子Cube的兩個命名集,如所示。