課程 6-2 - 定義命名集
適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
具名集是多維度表達式 (MDX) 表示式,會傳回一組維度成員。 您可以定義命名集,並將其儲存為 Cube 定義的一部分;您也可以在用戶端應用程式中建立命名集。 您可以結合 Cube 數據、算術運算子、數位和函式來建立命名集。 具名集可由用戶端應用程式中的 MDX 查詢中的使用者使用,也可以用來在 Subcube 中定義集合。 Subcube 是跨聯結集合的集合,可將 Cube 空間限制為後續語句的已定義子空間。 定義受限的 Cube 空間是 MDX 腳本的基本概念。
具名集可簡化 MDX 查詢,併為複雜、通常使用的集合表達式提供有用的別名。 例如,您可以定義名為 Large Resellers 的具名集,其中包含擁有最多員工的 Reseller 維度中的成員集。 用戶接著可以在查詢中使用名為 Set 的大型轉銷商,也可以使用具名集在 Subcube 中定義集合。 具名集定義會儲存在 Cube 中,但其值只存在於記憶體中。 若要建立具名集,請使用 Cube 設計工具 [計算] 索引卷標上的 [新增命名集] 命令。 如需詳細資訊,請參閱 計算、建立具名集。
在本主題的工作中,您將定義兩個命名集:名為 set 和大型轉銷商名為 set 的核心產品。
定義名為 Set 的核心產品
切換至 SQL Server Analysis Services 教學課程 Cube Cube 的 [
計算] 索引卷標,然後按兩下工具列上的 [窗體檢視]。 單擊 [
腳本召集人 ] 窗格中的[總銷售比率與所有產品] ,然後按兩下 [[計算] 索引卷標工具列上的 。[新增具名集] 當您在 [計算] 索引卷標上定義新的計算時,請記住,計算會依照計算出現在 [腳本召集人] 窗格中的順序來解析。 當您建立新的計算時,在該窗格中的焦點會決定計算的執行順序;新的計算會在您專注的計算之後立即定義。
在 [名稱] 方塊中,將新命名集的名稱變更為 [核心產品]。
在 [腳本召集人] 窗格中,請注意唯一圖示,以區分具名集與腳本命令或匯出成員。
在 [
計算工具 ] 窗格中的 [元數據 ] 索引卷標上,展開 [產品]、 ]、[[類別目錄 成員 ],然後展開 [所有產品]。 注意
如果您無法在 [計算工具] 窗格中檢視任何元數據,請按兩下工具列上的 [重新連線]。 如果無法運作,您可能必須處理 Cube 或啟動 SQL Server Analysis Services 的實例。
將 [自行車] 拖曳到 [表達式] 方塊中。
您現在已建立集合表達式,以傳回 Product 維度中 Bike 類別中的成員集合。
定義大型轉銷商命名集
在 [腳本組織 者] 窗格中,以滑鼠右鍵按兩下 [核心產品],然後按兩下 [[新增命名集]。
在 [Name] 方塊中,將這個具名的名稱變更為 [大型轉銷商]。
在 [表示式] 方塊中,輸入 Exists()。
您將使用 Exists 函式,從 [轉售商名稱] 屬性階層傳回一組成員,該階層與具有最大員工數量的 Employees 屬性階層中的成員集合交集。
在 [計算工具] 窗格的 [元數據] 索引卷標上,展開 [Reseller] 維度,然後展開 [轉售商名稱] 屬性階層。
將 轉售商名稱 層級拖曳到 Exists 集合表達式的括弧中。
您將使用 Members 函式傳回此集合的所有成員。 如需詳細資訊,請參閱 成員 (Set) (MDX)。
在部分集合表達式之後,輸入句點,然後新增 Members 函式。 您的運算式看起來應該如下所示:
Exists([Reseller].[Reseller Name].[Reseller Name].Members)
既然您已定義 Exists 集合表達式的第一個集合,您就可以新增第二組轉銷商維度的成員集,其中包含最大員工數目。
在 [計算工具] 窗格的 [元數據] 索引卷標上,展開 [轉銷商] 維度中的 [員工數目],展開 [成員],然後展開 [所有轉銷商] 。
請注意,這個屬性階層的成員不會分組。
開啟 [Reseller] 維度的 [維度設計師],然後按兩下 [屬性] 窗格中的 [員工數目]。
在 [屬性] 視窗中,將 DiscretizationMethod 屬性變更為 Automatic,然後將 DiscretizationBucketCount 屬性變更為 5。 如需詳細資訊,請參閱 群組屬性成員(離散化)。
在 SQL Server Data Tools 的 [建置] 功能表上,單擊 [部署 Analysis Services 教學課程]。
部署順利完成時,請切換至 SQL Server Analysis Services 教學課程 Cube 的 Cube 設計工具,然後按兩下 [ 計算] 索引卷標工具列上的 [重新連線]。
在 [計算工具] 窗格的 [元數據] 索引卷標上,展開 [轉銷商] 維度中的 [員工數目],展開 [成員],然後 展開 [所有轉銷商]。
請注意,這個屬性階層的成員現在包含在五個群組中,編號為 0 到 4。 若要檢視群組的數目,請暫停該群組的指標以檢視 InfoTip。 針對範圍
2 -17
,InfoTip 應該包含[Reseller].[Number of Employees].&[0]
。此屬性階層的成員會分組,因為 DiscretizationBucketCount 屬性設定為 5,而 DiscretizationMethod 屬性設定為 Automatic。
在 [表達式] 方塊中,於 Members 函式之後和右括號之前,於 Exists 集合表達式中新增逗號,然後將 83 - 100 從 [元數據] 窗格拖曳,並將它放在逗號後面。
您現在已完成 Exists 集合表示式,此表示式會傳回與這兩個指定集合交集的成員集合、所有轉銷商集合,以及擁有 83 到 100 名員工的轉銷商集合,當大型轉銷商命名集放在座標軸上時。
下圖
顯示 窗格的 [計算運算式] 窗格。[大型轉銷商] [大型轉銷商]
在 [計算] 索引卷標的工具列上,按兩下 [腳本檢視],然後檢閱您剛新增至計算腳本的兩個命名集。
在第一個 CREATE SET 命令之前,立即在計算文稿中新增一行,然後將下列文字新增至腳本本身行:
/* named sets */
您現在已定義兩個命名集,這些命名集會顯示在 [腳本召集人] 窗格。 您現在已準備好部署這些命名集,然後在 SQL Server Analysis Services 教學課程 Cube 中瀏覽這些量值。
使用新的命名集流覽 Cube
在 SQL Server Data Tools 的 [建置] 功能表上,單擊 [部署 Analysis Services 教學課程]。
部署順利完成時,按兩下 [Browser] 索引標籤,然後按兩下 [重新連線 。
清除資料窗格中的方格。
將 Reseller Sales-Sales Amount 量值新增至數據區域。
展開 [產品] 維度,然後將 Category 和 Subcategory 新增至數據列區域,如下圖所示。
在 [元數據] 窗格中,於 [Product] 維度中,將 [核心產品] 拖曳至篩選區域。
請注意,只有 Category 屬性的 Bike 成員和 Bike 子類別的成員會保留在 Cube 中。 這是因為 Core Products 命名集是用來定義 Subcube。 這個 Subcube 會將 subcube 中 Product 維度中 Category 属性的成員限制為名為 set Core Product 的成員,如下圖所示。
在 [元數據] 窗格中,展開 [Reseller],將 [大型轉銷商] 新增至篩選區域。
請注意,[數據] 窗格中的 [轉售商銷售量] 量值只會顯示大型自行車轉銷商的銷售金額。 另請注意,[篩選] 窗格現在會顯示用來定義這個特定 Subcube 的兩個命名集,如下圖所示。
下一課
第 7 課 :定義關鍵效能指標 (KPI)