課程 4-3 - 自動群組屬性成員
適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
當您流覽 Cube 時,通常會依另一個屬性階層的成員來維度某個屬性階層的成員。 例如,您可以依城市、購買的產品或性別將客戶銷售分組。 不過,使用特定類型的屬性,MICROSOFT SQL Server Analysis Services 會根據屬性階層內成員的分佈,自動建立屬性成員的群組。 例如,您可以讓 SQL Server Analysis Services 為客戶建立每年收入值的群組。 當您這樣做時,流覽屬性階層的使用者會看到群組的名稱和值,而不是成員本身。 這會限制向用戶呈現的層級數目,這更適合用於分析。
DiscretizationMethod 屬性會決定 SQL Server Analysis Services 是否建立群組,並判斷執行的群組類型。 根據預設,SQL Server Analysis Services 不會執行任何群組。 當您啟用自動群組時,您可以允許 SQL Server Analysis Services 根據屬性的結構自動判斷最佳分組方法,或者您可以選擇下列清單中的其中一個群組演演算法來指定群組方法:
EqualAreas
SQL Server Analysis Services 會建立群組範圍,讓維度成員的總母體擴展平均分散到群組。
叢集
SQL Server Analysis Services 會使用 K-Means 叢集方法搭配 Gaussian 散發,在輸入值上執行單一維度群集,藉以建立群組。 此選項僅適用於數值數據行。
指定群組方法之後,您必須使用 DiscretizationBucketCount 屬性來指定群組數目。 如需詳細資訊,請參閱 群組屬性成員(離散化)
在本主題的工作中,您將針對下列專案啟用不同類型的群組:Customer 維度中的年收入值:Employees 維度中的員工病假時數:和 Employees 維度中的員工休假時數。 接著,您將處理並流覽 SQL Server Analysis Services 教學課程 Cube,以檢視成員群組的效果。 最後,您將修改成員群組屬性,以查看群組類型變更的效果。
將客戶維度中的屬性階層成員分組
在 [方案總管] 中,按兩下 [Dimensions] 資料夾中的 [客戶],以開啟 [客戶] 維度的 [維度設計師]。
在 [數據源檢視] 窗格中,以滑鼠右鍵按兩下 [Customer 數據表],然後按兩下 [[探索資料]。
請注意 YearlyIncome 數據行的值範圍。 除非您啟用成員群組,否則這些值會成為 Yearly Income 屬性階層的成員。
關閉 [[探索客戶數據表] 索引標籤。
在 [屬性] 窗格中,選取 [[每年收入]。
在 [屬性] 視窗中,將 DiscretizationMethod 屬性的值變更為 Automatic,並將 DiscretizationBucketCount 属性的值變更為 5。
下圖顯示 Yearly Income的修改屬性。
年度收入
年度收入 的修改屬性
將員工維度中的屬性階層成員分組
切換至 Employee 維度的維度設計工具。
在 [數據源檢視] 窗格中,以滑鼠右鍵按兩下 [Employee 數據表],然後按兩下 [[探索資料]。
請注意 SickLeaveHours 數據行和 VacationHours 數據行的值。
關閉 [探索員工數據表] 索引標籤
。 在 [屬性] 窗格中,選取 [[病假時數]。
在 [屬性] 視窗中,將 DiscretizationMethod 属性的值變更為 Clusters,並將 DiscretizationBucketCount 屬性的值變更為 5。
在 [屬性] 窗格中,選取 [[休假時數]。
在 [屬性] 視窗中,將 DiscretizationMethod 屬性的值變更為 Equal Areas,並將 DiscretizationBucketCount 属性的值變更為 5。
流覽已修改的屬性階層
在 SQL Server Data Tools 的 [建置] 功能表上,單擊 [部署 Analysis Services 教學課程]。
部署順利完成時,請切換至 SQL Server Analysis Services 教學課程 Cube 的 Cube 設計工具,然後按兩下 [瀏覽器] 索引標籤上的 [重新連線]。
按兩下 Excel 圖示,然後按下 [[啟用]。
將 因特網 Sales-Sales 量 量值拖曳至數據透視表欄位清單的 [值] 區域。
在欄位清單中,展開 [Product] 維度,然後將 [產品型號行] 使用者階層拖曳至欄位清單 列卷標 區域。
展開欄位清單中的 Customer 維度、展開 [人口統計 顯示] 資料夾,然後將 [年度收入] 屬性階層拖曳至 [資料行卷標] 區域。
年度收入 屬性階層的成員現在分成六個貯體,包括銷售給年收入未知的客戶貯體。 並非所有貯體都會顯示。
從數據行區域中移除 Yearly Income 屬性階層,並從 [值] 區域中移除 [Internet Sales-Sales Amount 量值]。
將 Reseller Sales-Sales Amount 量值新增至數據區域。
在欄位清單中,展開 [
Employee ] 維度、展開 [組織 ],然後將 [病假時間] 拖曳至 [數據行卷標]。 請注意,所有銷售都是由兩個群組之一內的員工所建立。 另請注意,32 - 42 個病假時數的員工比 20 - 31 個病假時數的員工大幅增加銷售量。
下圖顯示員工病假時數所維度的銷售量。
從 [數據] 窗格的數據行區域中,移除 [病假時數] 屬性階層。
將 [休假時數] 新增至 [數據] 窗格的數據行區域。
請注意,根據相等區域群組方法,會出現兩個群組。 其他三個群組會隱藏,因為它們不包含任何數據值。
修改群組屬性並檢閱變更的效果
切換至 [Employee] 維度的 [維度設計師],然後在 [屬性] 窗格中選取 [[休假時數]。
在 [屬性] 視窗中,將 DiscretizationBucketCount 屬性的值變更為 10。
在 SQL Server Data Tools 的 [建置] 功能表上,單擊 [部署 Analysis Services 教學課程]。
部署成功完成時,請切換回 SQL Server Analysis Services 教學課程 Cube 的 Cube 設計工具。
單擊 [重新連線]Browser 索引卷標上,按兩下 [Excel] 圖示,然後重新建構數據透視表,以便檢視群組方法變更的效果:
將轉銷商 Sales-Sales 量拖曳至值
將 [休假時數] (在 [員工組織] 資料夾中拖曳至 [數據行]
將產品型號行拖曳至數據列
請注意,現在有三組成員的 Vacation Hours 屬性具有產品的銷售值。 (其他七個群組包含沒有銷售數據的成員。