Sobre dimensões no Data Warehouse
Publicado: julho de 2016
Aplicável a: System Center 2012 SP1 - Service Manager, System Center 2012 R2 Service Manager, System Center 2012 - Service Manager
Uma dimensão no data warehouse do Service Manager no System Center 2012 - Service Manager é quase análoga a uma classe do pacote de gerenciamento. Cada classe de gerenciamento tem uma lista de propriedades, enquanto cada dimensão contém uma lista de atributos. Cada atributo de dimensão corresponde a uma propriedade em uma classe.
Suponha que um usuário deseja um relatório no Service Manager para exibir algumas informações sobre os atributos dos computadores em um domínio específico. Por exemplo, o usuário pode desejar saber o endereço IP, o número de processadores lógicos e o nome do DNS (Sistema de Nome de Domínio) de cada computador. Usando dimensões, o usuário pode trazer os dados do Service Manager para o data warehouse, em que os relatórios podem consultar e exibir esses dados para cada computador.
No data warehouse do Service Manager, uma dimensão sempre tem como alvo uma única classe. Em seguida, os atributos de dimensão são mapeados para as propriedades da classe de destino. Neste exemplo, para obter as informações sobre os atributos de um computador, há uma dimensão de computador que é direcionada na classe Microsoft.Windows.Computers.
Em certos casos que são descritos em mais detalhes neste tópico, uma dimensão também pode ser mapeada para as propriedades das classes base e derivadas de uma classe de destino. Portanto, embora uma dimensão possa ser quase análoga a uma classe de pacote de gerenciamento, ela também pode conter propriedades que estão dentro da hierarquia dessa classe de pacote de gerenciamento.
Você pode ver um exemplo de como uma dimensão é usada no relatório Distribuição da Atividade. No relatório, em Selecionar item de configuração afetado (opcional), quando você clica em Adicionar, a caixa Selecionar objetos de dimensão é aberta e você pode procurar instâncias na dimensão ConfigItemDim. Você pode filtrar a propriedade Nome para Exibição. Quando você seleciona Todos os Computadores do Windows como o objeto de dimensão, o cabeçalho do relatório é atualizado com o valor do filtro selecionado. Quando você executa o relatório, somente as atividades que afetam o item de configuração selecionado, Todos os Computadores do Windows, são exibidos.
Para ver como a dimensão foi modelada, é possível consultar as classes System.Entity e System.ConfigItem definidas no pacote de gerenciamento System.Library:
<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>
Para revisar a dimensão do item de configuração a fim de direcionar as propriedades ObjectStatus e AssetStatus de System.ConfigItem e a propriedade DisplayName da classe base System.Library, você pode definir a dimensão com as três propriedades a seguir como atributos:
<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>
A tabela a seguir fornecer detalhes sobre como construir e modelar uma dimensão examinando os elementos e atributos do esquema XML para uma <Dimensão>.
Atributo | Descrição |
---|---|
ID | Um identificador exclusivo para o elemento de dimensão. Isso também é o nome da tabela da dimensão no data warehouse e no data mart. |
Acessibilidade | Esse elemento deve sempre ser definido como "Público". |
Destino | O nome de classe do pacote de gerenciamento para o qual a dimensão está voltada. |
InferredDimension | Esse valor é sempre verdadeiro. |
HierarchySupport | A hierarquia de classes que ajudam a definir as propriedades que serão incluídas na dimensão. Há três valores possíveis: 1. Exact 2. IncludeExtendedClassProperties 3. IncludeDerivedClassProperties Para obter detalhes sobre esses valores, consulte as próximas seções deste tópico. |
Extends | Sinalizador booliano opcional para indicar se a dimensão é uma dimensão base ou se está estendendo outra dimensão. Após a definição de uma dimensão, você pode usar o data warehouse do Service Manager para “estender” a dimensão e adicionar mais atributos posteriormente. Se o sinalizador Extends estiver definido como true, HierarchySupport deverá ser definido como Exact e todos os atributos de extensão deverão ser listados. Por padrão, esse sinalizador é definido como false. |
Reconcile | Um sinalizador booliano opcional que indica se duas instâncias, que são idênticas de alguma outra forma e diferem apenas com relação à fonte em que os dados são originados, deve ser consolidado em um única linha de dados. Por padrão, esse sinalizador é definido como false. As dimensões relacionadas a itens de configuração devem ter esse sinalizador definido como true, e as dimensões relacionadas a itens de trabalho têm esse sinalizador definido como false. |
O atributo HierarchySupport determina quais classes são processadas e os atributos específicos que são incluídos na dimensão. Detalhes para cada valor possível estão descritos nas seções a seguir.
Exact
Quando o atributo HierarchySupport é Exact, você deve definir manualmente cada atributo que deve ser incluído na dimensão usando a marca <InclusionAttribute>. Esses atributos podem ser da classe de destino ou de qualquer uma das classes base e derivadas da classe de destino. Cada atributo de inclusão corresponde a uma propriedade de classe. A tabela a seguir descreve cada um dos atributos na marca <InclusionAttribute>.
Atributo | Descrição |
---|---|
ID | Um identificador exclusivo para o elemento de atributo. |
PropertyPath | A sintaxe PropertyPath que deve identificar exclusivamente a classe e o atributo para os quais o atributo de dimensão está voltado. |
SlowlyChangingAttribute | Esse atributo deve ser sempre false. |
O exemplo anterior de dimensão ConfigItemDim tinha um valor HierarchySupport igual a Exact. Portanto, somente os atributos de inclusão listados (DisplayName, ObjectStatus, AssetStatus) são processados na transformação e incluídos na tabela de dimensões no repositório do data warehouse e no data mart.
O valor Exact de HierarchySupport requer que você liste manualmente cada atributo desejado na dimensão. No entanto, você pode desejar que todos os atributos de uma classe, bem como os atributos de suas classes base e derivadas, sejam incluídos na dimensão. Nesses casos, pode demorar muito para listar cada atributo explicitamente. Para ajudar, o Service Manager inclui dois outros valores de HierarchySupport que controlam automaticamente esses casos para você. Esses valores são descritos nas seções a seguir.
IncludeExtendedClassProperties
Para uma dimensão com um HierarchySupport de IncludeExtendedClassProperties, todos os atributos da classe de destino e todas as suas classes base são incluídos na tabela de dimensões e na transformação. A ilustração a seguir mostra um exemplo: CarDimension, que tem como alvo a classe Car e tem um HierarchySupport de IncludeExtendedClassProperties.
Como CarDimension está voltado para a classe Car e tem um valor HierarchySupport de IncludeExtendedClassProperties, ele processa a classe Car e sua classe base, Vehicle. A tabela e a transformação resultantes contêm os atributos na tabela a seguir.
Atributos de CarDimension |
---|
Cor |
Marca |
Modelo |
NumDoors |
NumCupHolders |
Cavalo-vapor |
CargoSpace |
IncludeDerivedClassProperties
Para uma dimensão com um HierarchySupport de IncludeDerivedClassProperties, todos os atributos da classe de destino, suas classes base e suas classes derivadas são incluídos na tabela de dimensões e em sua transformação associada.
Para modificar um pouco o exemplo anterior, CarDimension agora tem um HierarchySupport de IncludeDerivedClassProperties abaixo. Como ele processa as classes base e derivadas da classe de destino, a dimensão agora processa os atributos de três classes: Vehicle, Car e Sportscar, conforme mostrado na ilustração a seguir.
A tabela de dimensões e a transformação CarDimension contêm os atributos na tabela a seguir.
Atributos de CarDimension |
---|
Cor |
Marca |
Modelo |
NumDoors |
NumCupHolders |
Cavalo-vapor |
CargoSpace |
TopSpeed |
Consulte também