Criar Medidas e Grupos de Medidas
Uma medida é uma agregação de valores de dados numéricos, como soma, contagem, mínima, máxima, média ou uma expressão MDX personalizada que você cria. Um grupo de medidas é um contêiner de uma ou mais medidas. Todas as medidas existem em um grupo de medidas, mesmo que haja somente uma medida. Um cubo deve ter pelo menos uma medida e um grupo de medidas.
Este tópico inclui as seguintes seções:
Abordagens para criar medidas
Componentes de uma medida
Medidas de modelagem e grupos de medidas em fatos e em tabelas de fatos
Granularidade de um grupo de medidas
Abordagens para criar medidas
Medidas podem ser um elemento estático do cubo, criado durante o design, sempre presente quando o cubo for acessado. Mas você pode definir também uma medida como um membro calculado usando uma linguagem MDX para fornecer um valor calculado para uma medida com base em outras medidas do cubo. Um membro calculado pode ser definido para a sessão ou o usuário.
Para criar uma medida ou um grupo de medidas, use uma destas abordagens:
Assistente para Cubos |
Execute o Assistente de Cubo no SSDT (Ferramentas de dados do SQL Server) para criar um cubo. No Gerenciador de Soluções, clique com o botão direito do mouse em Cubos e escolha Novo Cubo. Consulte Modelagem multidimensional (Tutorial do Adventure Works) se precisar de ajuda com essas etapas. Quando você cria um cubo com base em tabelas de um data warehouse existente, as definições para as medidas e o grupo de medidas se materializam como parte do processo de criação do cubo. No assistente, você escolherá os fatos e as tabelas de fatos a serem usados como base para os objetos de medida e de grupo de medidas em seu cubo. |
Caixa de diálogo Nova Medida |
Supondo que o cubo já existe no SSDT (Ferramentas de dados do SQL Server), clique duas vezes no nome do cubo no Gerenciador de Soluções para abri-lo no Designer de Cubo. No painel Medidas, clique com o botão direito do mouse no nó superior para criar um novo grupo de medidas ou novas medidas, especificando uma tabela de origem, uma coluna e um tipo de agregação. O uso dessa abordagem requer que você escolha o método de agregação em uma lista fixa de funções predefinidas. Consulte Usar funções de agregação para obter uma discussão sobre as agregações mais usadas normalmente. |
Membro calculado |
Membros calculados adicionam flexibilidade e capacidade de análise a um cubo no Analysis Services porque você pode controlar quando e como eles são criados. Às vezes, você só precisa de uma medida temporariamente, pela duração de uma sessão do usuário ou no Management Studio, como parte de uma investigação. No SSDT (Ferramentas de dados do SQL Server), abra a guia Cálculos para criar um novo membro calculado. Escolha essa abordagem ao basear uma medida em uma expressão MDX. Consulte estes tópicos para obter mais informações: Compilando medidas em MDX, Cálculos, Cálculos em modelos multidimensionais e Conceitos básicos de geração de scripts MDX (Analysis Services). |
MDX ou XMLA |
No SQL Server Management Studio, você pode executar MDX ou XMLA para alterar um banco de dados para incluir uma nova medida calculada. Essa abordagem é útil para teste de dados ad hoc, depois que a solução for implantada em um servidor. Consulte Documentar e gerar scripts de um banco de dados do Analysis Services. |
Componentes de uma medida
Uma medida é um objeto com propriedades. Além de seu nome, uma medida deve ter um tipo de agregação e uma coluna de origem ou uma expressão usada para carregar a medida com dados. Você pode modificar a definição de medida definindo suas propriedades.
origem |
A maioria das medidas é proveniente de colunas numéricas em tabelas de fatos em um data warehouse externo, como a coluna Valor das Vendas nas tabelas Vendas pela Internet e Vendas do Revendedor no data warehouse AdventureWorks, mas você pode também criar novas medidas baseadas inteiramente em cálculos definidos por você. As colunas de atributos de tabelas de dimensões podem ser usadas para definir medidas, mas tais medidas são geralmente semiaditivas ou não aditivas em termos de seu comportamento de agregação. Para obter mais informações sobre comportamento semiaditivo, consulte Definir um comportamento semiaditivo. |
agregação |
Por padrão, as medidas são somadas a cada dimensão. No entanto, a propriedade AggregateFunction permite a modificação desse comportamento. Consulte Usar funções de agregação para obter uma lista. |
Propriedades |
Consulte Configurar propriedades de medida para obter descrições de propriedades adicionais. |
Medidas de modelagem e grupos de medidas em fatos e em tabelas de fatos
Antes de executar um assistente, é importante entender os princípios de modelagem por trás da definição da medida.
Medidas e grupos de medidas são os objetos multidimensionais que representam fatos e tabelas de fatos em um data warehouse externo. Na maioria dos casos, medidas e grupos de medidas serão baseados em objetos em uma exibição da fonte de dados que, por sua vez, são criados a partir do armazém de dados subjacente.
O diagrama a seguir representa a tabela de fatos FactSalesQuota e duas tabelas de dimensões a ela, DimTime e DimEmployee. No cubo de exemplo do Adventure Works, essas tabelas são usadas como base para o grupo de medidas Cotas de Vendas e as dimensões Tempo e Funcionário.
A tabela de fatos contém dois tipos básicos de colunas: colunas de atributos e colunas de medidas.
As colunas de atributos são usadas para criar relações de chave estrangeira com tabelas de dimensões, de modo que os dados quantificáveis nas colunas de medidas possam ser organizados por dados contidos nas tabelas de dimensões. As colunas de atributos também são usadas para definir a granularidade de uma tabela de fatos e seu grupo de medidas.
As colunas de medidas definem as medidas contidas por um grupo de medidas.
Quando você executa o Assistente de Cubo, as chaves estrangeiras são filtradas. Na lista de colunas restantes à sua escolha, você verá as colunas de medidas, além de colunas de atributos que não são identificadas como uma chave estrangeira. No exemplo FactSalesQuote, o assistente oferecerá CalendarYear e CalendarQuarter além de SalesAmountQuota. Somente a coluna de medidas SalesAmountQuota resultará em uma medida viável para o seu modelo multidimensional. As outras colunas baseadas em data existem para qualificar cada valor da cota. Você deve excluir as outras colunas, CalendarYear e CalendarQuarter, da lista de medidas no Assistente de Cubo (ou removê-las do grupo de medidas posteriormente no designer).
O ponto a ser aproveitado dessa discussão é que nem todas as colunas oferecidas pelo assistente são úteis como uma medida. Confie em sua compreensão dos dados e em como eles serão usados ao decidir quais colunas usar como medidas. Lembre-se de que você pode clicar com o botão direito do mouse em uma tabela na exibição da fonte de dados para explorar os dados, o que pode ajudá-lo a identificar quais colunas usar como medidas. Consulte Explorar dados em uma exibição da fonte de dados (Analysis Services) para obter mais informações.
Observação |
---|
Nem todas as medidas são derivadas diretamente de um valor armazenado em uma coluna da tabela de fatos. Por exemplo, a medida Conta de Identificação do Vendedor definida no grupo de medidas Cota de Vendas do cubo de amostra Adventure Works é realmente baseado na contagem de valores exclusivos (ou contagem distinta) na coluna EmployeeKey da tabela de fatos FactSalesQuota. |
Granularidade de um grupo de medidas
Grupos de medidas têm uma granularidade associada que se refere ao nível de detalhes com suporte em uma tabela de fatos. A granularidade é definida por meio da relação de chave estrangeira em uma dimensão.
Por exemplo, a tabela de fatos FactSalesQuota tem uma relação de chave estrangeira com a tabela DimEmployee, cada registro da tabela FactSalesQuota está relacionado a um único funcionário, e assim, a granularidade do grupo de medidas, conforme exibido pela dimensão Funcionário, é no nível do funcionário individual.
A granularidade do grupo de medidas nunca pode ser definida como menor que o nível mais baixo da dimensão da qual o grupo de medidas é exibido, mas a granularidade pode ser maior usando atributos adicionais. Por exemplo, a tabela de fatos FactSalesQuota usa três colunas, TimeKey, CalendarYear e CalendarQuarter para definir a granularidade da relação com a tabela DimTime. Como resultado, a granularidade do grupo de medidas conforme exibido pela dimensão Temporal é por trimestre de calendário e não por dia, que é o nível mais baixo da dimensão Temporal.
Você pode especificar a granularidade do grupo de medidas com relação a uma dimensão específica usando a guia Dimensão do Uso do Designer de Cubo. Para obter mais informações sobre as relações da dimensão, consulte Relações de dimensão.