共用方式為


不規則的階層

不規則階層是使用者定義的階層,具有層級數量不均的特徵。 常見範例包括一個組織圖,其中一位高層經理具有部門經理和非管理職員作為直接下屬,或由國家-地區-城市組成的地理階層,其中有些城市缺少父州或省,例如華盛頓特區、梵蒂岡城或新德里。

在維度中的大多數階層中,每個層級上方的成員數量與該層級中其他成員的上方成員數量相同。 不規則階層的不同之處在於,至少有一個成員的邏輯父層不在緊鄰該成員的上一層級。 發生這種情況時,階層會依據不同的下鑽路徑降至不同的層級。 在用戶端應用程式中,這可能會使向下切入路徑變得不必要的複雜。

用戶端應用程式在處理不規則階層方面的能力有所不同。 如果您的模型中存在不完全的階層,請準備好執行一些額外的工作,以取得您預期的轉譯行為。

在第一個步驟中,請檢查用戶端應用程式,以查看其如何處理向下切入路徑。 例如,Excel 會將父名稱重複用作缺失值的佔位符。 若要自行查看此行為,請使用 Adventure Works 多維度模型中的 Sales Territory 維度來建置數據透視表。 在具有銷售區域屬性的數據透視表中,包括群組、國家/地區和區域,您會看到缺少區域值的國家/地區將獲得一個佔位符,在此情況下,這個佔位符是其上方的父系(即國家名稱)的重複。 此行為衍生自 Excel 內固定的 MDX Compatibility=1 連接字串屬性。 如果用戶端不會自然提供您要尋找的向下切入行為,您可以在模型中設定屬性,以變更至少其中一些行為。

本主題包含下列幾節:

修改不完全階層中向下鑽取導覽的方法

當向下鑽研導覽未傳回預期的值或被視為使用不便時,破碎的階層的存在就會成為問題。 若要解決因不規則階層而導致的導覽問題,請考慮下列選項:

  • 使用一般階層,但在每個層級上設定 HideMemberIf 屬性,以指定是否將遺漏的層級可視化給使用者。 設定 HideMemberIf時,您也應該在連接字串上設定 MDXCompatibility ,以覆寫預設導覽行為。 設定這些屬性的指示位於本主題中。

  • 建立明確管理層級成員的父子式階層。 如需技術圖例,請參閱 SSAS 中的不完全階層 (部落格文章) 。 如需《在線叢書》中的詳細資訊,請參閱 Parent-Child 階層。 建立父子式階層的缺點是每個維度只能有一個,而且在計算中繼成員的匯總時,通常會產生效能損失。

如果您的維度包含一個以上的不完全階層,您應該使用第一種方法,設定 HideMemberIf。 在處理不完全階層方面具有實際經驗的 BI 開發人員,更進一步主張在實體數據表中進行其他變更,為每個層級建立個別的數據表。 如需這項技術的詳細資訊,請參閱馬丁·梅森的 SSAS 金融 Cube-Part 1a-Ragged 階層(部落格)。

將HideMemberIf設定為隱藏一般階層中的成員

在稀疏維度的資料表中,邏輯上遺漏的成員可以用不同的方式來表示。 表格單元格可以包含 Null 或空字串,也可以包含與其父層相同的值,作為佔位符。 佔位符的表示形式是由子成員的佔位符狀態決定,而這些狀態是由 HideMemberIf 屬性和用於用戶端應用程式的 MDX Compatibility 連接字串屬性決定的。

對於支持顯示不完全階層的用戶端應用程式,您可以使用這些屬性來隱藏邏輯上遺漏的成員。

  1. 在 SSDT 中,按兩下維度以在維度設計工具中開啟它。 第一個索引標籤 [維度結構] 會在 [階層] 窗格中顯示屬性階層。

  2. 以滑鼠右鍵按兩下階層中的成員,然後選取 [ 屬性]。 設定 HideMemberIf 為下列其中一個值。

    HideMemberIf 設定 說明
    Never 等級會員絕不會被隱藏。 這是預設值。
    OnlyChildWithNoName 當層級成員是其父系的唯一子系,且其名稱為 null 或空字串時,就會隱藏該成員。
    OnlyChildWithParentName 當層級成員是其父層級的唯一子層級,且其名稱與父層級的名稱相同時,就會隱藏該層級成員。
    NoName 如果層級成員的名稱是空的,就會被隱藏。
    ParentName 當層級成員的名稱與其父系的名稱相同,即會被隱藏。

設定 MDX 相容性以便決定如何在用戶端應用程式中表示佔位符

在階層層級上設定 HideMemberIf 之後,您也應該在從用戶端應用程式傳送的連接字串中設定 MDX Compatibility 屬性。 這個 MDX Compatibility 設定決定是否有使用 HideMemberIf

MDX 相容性設定 說明 用法
1 顯示佔位符的值。 這是 Excel、SSDT 和 SSMS 所使用的預設值。 它指示伺服器在向下細查不完整階層中的空層級時,傳回佔位符值。 如果您按下佔位值,可以繼續深入至子(分葉)節點。

Excel 擁有用來連線到 Analysis Services 的連接字串,而且每個新連接一律會設定 MDX Compatibility 為 1。 此行為會保留回溯相容性。
2 隱藏佔位元值(例如空值或父層級中的重複值或項目),但顯示具有相關值的其他層級和節點。 MDX Compatibility=2 通常被視為在不規則階層方面的首選設置。 Reporting Services 報表和某些第三方用戶端應用程式可以保存此設定。

另請參閱

建立 User-Defined 階層
用戶階層
Parent-Child 階層
連接字串屬性 (Analysis Services)