課程 4-4 - 隱藏和停用屬性階層
適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
根據預設,會針對維度中的每個屬性建立屬性階層,而且每個階層都可用於維度事實數據。 此階層包含「全部」層級,以及包含階層所有成員的詳細層級。 如您所瞭解,您可以將屬性組織成使用者定義的階層,以提供 Cube 中的導覽路徑。 在某些情況下,您可能會想要停用或隱藏某些屬性及其階層。 例如,某些屬性,例如社會安全號碼或國家/地區標識符、工資率、出生日期和登入資訊,不是使用者將維度 Cube 資訊的屬性。 相反地,這項資訊通常只會檢視為特定屬性成員的詳細數據。 您可能想要隱藏這些屬性階層,讓屬性只顯示為特定屬性的成員屬性。 您可能也想要讓其他屬性的成員,例如客戶名稱或郵遞編碼,只有在透過用戶階層檢視它們,而不是透過屬性階層獨立檢視時才會顯示。 這樣做的其中一個原因可能是屬性階層中的單一不同成員數目。 最後,若要改善處理效能,您應該停用使用者不會用於流覽的屬性階層。
AttributeHierarchyEnabled 屬性的值會決定是否建立屬性階層。 如果此屬性設定為 False,則不會建立屬性階層,而且屬性不能當做用戶階層中的層級使用;屬性階層僅以成員屬性的形式存在。 不過,停用的屬性階層仍可用來排序另一個屬性的成員。 如果 AttributeHierarchyEnabled 屬性的值設定為 True,則 attributeHierarchyVisible 屬性的值會判斷屬性階層是否與在使用者定義的階層中使用無關而可見。
開啟屬性階層時,您可能想要指定下列三個額外屬性的值:
IsAggregatable
根據預設,所有屬性階層都會定義 (All) 層級。 若要停用已啟用屬性階層的 (All) 層級,請將此屬性的值設定為 False。
注意
屬性,其 IsAggregatable 屬性設定為 false,只能作為使用者定義階層的根目錄使用,而且必須指定預設成員(否則,SQL Server Analysis Services 引擎會為您選擇一個屬性)。
AttributeHierarchyOrdered
根據預設,SQL Server Analysis Services 會在處理期間排序已啟用屬性階層的成員,然後依名稱或索引鍵等 Order By 屬性的值來儲存成員。 如果您不在意排序,您可以將此屬性的值設定為 False,以提高處理效能。
AttributeHierarchyOptimizedState
根據預設,SQL Server Analysis Services 會在處理期間為每個啟用的屬性階層建立索引,以改善查詢效能。 如果您不打算使用屬性階層進行流覽,您可以將此屬性的值設定為 NotOptimized,以提高處理效能。 不過,如果您使用隱藏階層做為維度的索引鍵屬性,建立屬性成員的索引仍會改善效能。
如果屬性階層已停用,則不適用這些屬性。
在本主題的工作中,您將停用員工維度中不會用於瀏覽的社會安全號碼和其他屬性。 接著,您將隱藏 [客戶] 維度中的客戶名稱和郵遞區編碼屬性階層。 這些階層中的大量屬性成員會使流覽這些階層的速度非常慢,與用戶階層無關。
在員工維度中設定屬性階層屬性
切換至 [員工] 維度的 [維度設計師],然後按兩下 [Browser] 索引標籤。
確認下列屬性階層出現在 階層 清單中:
基底費率
出生日期
登入標識碼
管理員 SSN
SSN
切換至 [維度結構] 索引卷標,然後在 [屬性] 窗格中選取下列屬性。 您可以按下每個量值,同時按住 CTRL 鍵來選取多個量值:
基底費率
出生日期
登入標識碼
管理員 SSN
SSN
在 [屬性] 視窗中,將 AttributeHierarchyEnabled 屬性的值設定為 選取屬性的 False。
請注意,在 [屬性] 窗格中,每個屬性的圖示已變更,表示屬性未啟用。
下圖顯示所選屬性的 AttributeHierarchyEnabled 屬性設定為 False。
在 [建置] 功能表上,按兩下 [[部署 Analysis Services 教學課程]。
處理順利完成時,請切換至 [Browser] 索引卷標,按兩下 [重新連線],然後嘗試流覽修改的屬性階層。
請注意,已修改屬性的成員無法流覽為 階層 清單中的屬性階層。 如果您嘗試將其中一個停用的屬性階層新增為用戶階層中的層級,您會收到錯誤,通知您必須啟用屬性階層才能參與使用者定義的階層。
在客戶維度中設定屬性階層屬性
切換至 [客戶] 維度的 [維度設計師],然後按兩下 [Browser] 索引標籤。
確認下列屬性階層出現在 階層 清單中:
全名
郵遞區
切換至 [維度結構] 索引卷標,然後使用 CTRL 鍵同時選取多個屬性,在 [屬性] 窗格中選取下列屬性:
全名
郵遞區
在 [屬性] 視窗中,將所選取屬性的 AttributeHierarchyVisible 屬性的值設定為 False。
因為這些屬性階層的成員將用於維度事實數據,因此排序和優化這些屬性階層的成員將會改善效能。 因此,不應變更這些屬性的屬性。
下圖顯示 AttributeHierarchyVisible 屬性設定為 False。
將 [郵遞區] 屬性從 [屬性] 窗格拖曳到 [階層和 層級] 窗格的 [客戶地理位置] 用戶階層中,緊接在 [City 層級] 底下。
請注意,隱藏的屬性仍然可以成為用戶階層中的層級。
在 [建置] 功能表上,按兩下 [[部署 Analysis Services 教學課程]。
部署順利完成時,請切換至 [客戶] 維度的 [Browser] 索引卷標,然後按兩下 [[重新連線]。
嘗試從 階層 清單中選取其中一個已修改的屬性階層。
請注意,階層 清單中不會顯示修改過的屬性階層。
在 [階層] 列表中,選取 [Customer Geography],然後在瀏覽器窗格中流覽每個層級。
請注意,隱藏的層級 郵遞區編碼 和 全名會顯示在使用者定義的階層中。
課程中的下一個工作
根據次要屬性 排序屬性成員