關於資料倉儲中的維度
發行︰ 2016年7月
適用於: System Center 2012 SP1 - Service Manager、System Center 2012 R2 Service Manager、System Center 2012 - Service Manager
在 System Center 2012 – Service Manager 中,Service Manager 資料倉儲中的維度約略相當於管理組件類別。 每個管理類別都具有內容清單,而每個維度也都包含屬性清單。 每個維度屬性對應於類別中的一個內容。
假設使用者需要 Service Manager 中的報表顯示一些特定網域中電腦的屬性相關資訊。 例如,使用者想知道每部電腦的 IP 位址、邏輯處理器數目,以及網域名稱系統 (DNS) 名稱。 透過使用維度,使用者可以將 Service Manager 的資料帶入資料倉儲,讓報表可以針對每部電腦查詢和顯示這些資料。
在 Service Manager 資料倉儲中,維度永遠以單一類別為目標。 維度屬性接著會對應到目標類別的內容。 在此範例中,為取得電腦屬性的資訊,其中有個以 Microsoft.Windows.Computers 類別為目標的電腦維度。
在某些情況下 (本主題將進一步詳細說明),維度也可對應到目標類別的基底和衍生類別的內容。 因此,雖然維度可以約略相當於管理組件類別,但也可以包含位於該管理組件類別階層內的內容。
您可以在 [活動分佈] 報表中看到如何使用維度的範例。 在此報表的 [選取受影響的設定項目 (選擇性)] 底下,當您按一下 [新增] 時,[選取維度物件] 對話方塊隨即會開啟,而您可以在 ConfigItemDim 維度中搜尋維度執行個體。 您可以在 [顯示名稱] 內容上進行篩選。 當您選取 [所有 Windows 電腦] 作為維度物件時,報表首會使用選取的篩選值進行更新。 當您執行報表時,只會顯示影響所選設定項目 (即 [所有 Windows 電腦]) 的活動。
若要查看建立維度模型的方式,您可以查看 System.Library 管理組件中定義的 System.Entity 和 System.ConfigItem 類別:
<ClassType ID="System.Entity" Accessibility="Public" Hosted="false" Abstract="true" Singleton="false">
<Property ID="DisplayName" Type="string" MinLength="0" Key="false" CaseSensitive="false" MaxLength="4000" />
</ClassType>
<ClassType ID="System.ConfigItem" Base="System.Entity" Accessibility="Public" Hosted="false" Abstract="true">
<Property ID="ObjectStatus" Type="enum" EnumType="System.ConfigItem.ObjectStatusEnum" DefaultValue="System.ConfigItem.ObjectStatusEnum.Active" />
<Property ID="AssetStatus" Type="enum" EnumType="System.ConfigItem.AssetStatusEnum" />
<Property ID="Notes" Type="richtext" MaxLength="4000" />
</ClassType>
若要修改設定項目維度,以將 System.ConfigItem 的 ObjectStatus 和 AssetStatus 內容以及基底類別 System.Library 的 DisplayName 內容設為目標,您可以定義維度並以下列三個內容作為屬性:
<Dimension ID="ConfigItemDim" Accessibility="Public" Target="System!System.ConfigItem" InferredDimension="true" HierarchySupport="Exact" Reconcile="true">
<InclusionAttribute ID="DisplayName" PropertyPath="$Context/Property[Type='System!System.Entity']/DisplayName$" SlowlyChangingAttribute="false" />
<InclusionAttribute ID="ObjectStatus" PropertyPath="$Context/Property[Type='System!System.ConfigItem']/ObjectStatus$" SlowlyChangingAttribute="false" />
<InclusionAttribute ID="AssetStatus" PropertyPath="$Context/Property[Type='System!System.ConfigItem']/AssetStatus$" SlowlyChangingAttribute="false" />
</Dimension>
下表提供如何檢查 <Dimension> 的 XML 架構元素和屬性來建構維度以及建立其模型的詳細資料。
屬性 | 說明 |
---|---|
識別碼 | 維度元素的唯一識別碼。 這也是維度在資料倉儲和資料超市中的資料表名稱。 |
Accessibility | 此元素應永遠設定為 “Public”。 |
Target | 維度的目標管理組件類別名稱。 |
InferredDimension | 此值應永遠為 True。 |
HierarchySupport | 有助於定義將包含在維度中內容的類別階層。 可能的值有三個: 1. Exact 2. IncludeExtendedClassProperties 3. IncludeDerivedClassProperties 如需這些值的詳細資料,請參閱本主題接下來的章節。 |
Extends | 表示維度是基底維度或擴充其他維度的選用布林值旗標。 定義維度之後,您可以使用 Service Manager 資料倉儲「擴充」維度,並在稍後的時間點新增更多屬性。 如果 Extends 旗標設定為 True,則 HierarchySupport 必須設為 Exact 而且必須列出所有擴充屬性。 根據預設,此旗標設定為 False。 |
Reconcile | 選用布林值旗標,表示除了只有資料來源不同,其他方面均相同的兩個執行個體,是否應合併到單一資料列中。 根據預設,此旗標設定為 False。 與設定項目相關的維度應將此旗標設定為 True,而與工作項目相關的維度應將此旗標設定為 False。 |
HierarchySupport 屬性會決定處理哪些類別,以及包含在維度中的特定屬性。 下列章節將說明每個可能值的詳細資料。
Exact
當 HierarchySupport 屬性為 Exact 時,您必須手動定義使用 <InclusionAttribute> 標記之維度中應包含的每個屬性。 這些屬性可以來自目標類別或其任何基底和衍生類別。 每個包含屬性對應於一個類別內容。 下表說明 <InclusionAttribute> 標記中的每個屬性。
屬性 | 說明 |
---|---|
識別碼 | 屬性元素的唯一識別碼。 |
PropertyPath | PropertyPath 語法必須唯一識別維度屬性的目標類別和屬性。 |
SlowlyChangingAttribute | 此屬性應永遠為 False。 |
先前 ConfigItemDim 維度範例的 HierarchySupport 值為 Exact。 因此,只有列出的包含屬性 (DisplayName、ObjectStatus、AssetStatus) 才會在轉換中進行處理,並包含在資料倉儲存放庫和資料超市的維度資料表中。
Exact HierarchySupport 值會要求您手動列出要包含在維度中的每個屬性。 不過,您可能會想要將類別的所有屬性以及其基底和衍生類別的屬性包含在維度中。 在這種情況下,要明確列出每個屬性可能非常耗費人力。 為了協助您,Service Manager 包含兩個其他 HierarchySupport 值,可自動處理這些情況。 下列章節將說明這些值。
IncludeExtendedClassProperties
針對 HierarchySupport 為 IncludeExtendedClassProperties 的維度,目標類別及其所有基底類別的所有屬性都會包含在維度資料表和轉換中。 下圖顯示範例:CarDimension 以類別 Car 為目標,而且 HierarchySupport 的值為 IncludeExtendedClassProperties。
由於 CarDimension 以 Car 類別為目標,而且 HierarchySupport 值為 IncludeExtendedClassProperties,因此會同時處理 Car 類別及其基底類別 Vehicle。 產生的資料表和轉換包含下表中的屬性。
CarDimension 屬性 |
---|
色彩 |
品牌 |
型號 |
NumDoors |
NumCupHolders |
Horsepower |
CargoSpace |
IncludeDerivedClassProperties
針對 HierarchySupport 為 IncludeDerivedClassProperties 的維度,目標類別、其基底類別和其衍生類別的所有屬性都會包含在維度資料表及相關聯的轉換中。
接著稍微修改上述範例,CarDimension 現在具有值為 IncludeDerivedClassProperties 的 HierarchySupport。 由於該維度會同時處理目標類別的基底和衍生類別,因此目前處理的屬性有三個類別: Vehicle、Car 和 Sportscar,如下圖所示。
CarDimension 維度資料表和轉換包含下表中的屬性。
CarDimension 屬性 |
---|
色彩 |
品牌 |
型號 |
NumDoors |
NumCupHolders |
Horsepower |
CargoSpace |
TopSpeed |