Lição 4-7 – Definindo o membro desconhecido e as propriedades de processamento nulo
Aplica-se a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
Quando SQL Server Analysis Services processa uma dimensão, todos os valores distintos das colunas subjacentes nas tabelas ou exibições na exibição da fonte de dados preenchem os atributos na dimensão. Se SQL Server Analysis Services encontrar um valor nulo durante o processamento, por padrão, ele converterá esse valor nulo em zero para colunas numéricas ou em uma cadeia de caracteres vazia para colunas de cadeia de caracteres. Você pode modificar as configurações padrão ou converter valores nulos em seu processo de extração, transformação e carregamento (caso haja algum) do data warehouse relacional subjacente. Além disso, você pode ter SQL Server Analysis Services converter o valor nulo em um valor designado configurando três propriedades: as propriedades UnknownMember e UnknownMemberName para a dimensão e a propriedade NullProcessing para o atributo de chave da dimensão.
O Assistente para Dimensões e o Assistente para Cubos habilitarão essas propriedades com base no fato de o atributo de chave de uma dimensão permitir um valor nulo ou de o atributo raiz de uma dimensão floco de neve ter base em uma coluna que permite um valor nulo. Nesses casos, a propriedade NullProcessing do atributo de chave será definida como UnknownMember e a propriedade UnknownMember será configurada como Visível.
Entretanto, ao criar dimensões floco de neve de forma incremental, como estamos fazendo na dimensão Product, ou ao definir dimensões usando o Designer de Dimensão e incorporar essas dimensões existentes em um cubo, talvez as propriedades UnknownMember e NullProcessing precisem ser definidas manualmente.
Nas tarefas deste tópico, você adicionará a categoria de produto e os atributos de subcategoria do produto à dimensão Produto de tabelas com snowflaked que você adicionará à exibição de fonte de dados da ADVENTURE Works DW. Depois, você habilitará a propriedade UnknownMember para a dimensão Product, especificará Componentes do Assembly como o valor da propriedade UnknownMemberName , relacionará os atributos Subcategoria e Categoria ao atributo de nome do produto. Por fim, definirá um tratamento de erro personalizado para o atributo de chave do membro que vincula as tabelas floco de neve.
Observação
Se você adicionou os atributos Subcategory e Category quando definiu originalmente o cubo do Tutorial SQL Server Analysis Services usando o Assistente de Cubo, essas etapas teriam sido executadas automaticamente para você.
Revisando propriedades de tratamento de erros e de membro desconhecido na dimensão Produto
Mude para o Designer de Dimensão da dimensão Produto , clique na guia Estrutura da Dimensão e selecione Produto no painel Atributos .
Isso permite que você exiba e modifique as propriedades da própria dimensão.
Na janela Propriedades, examine as propriedades UnknownMember e UnknownMemberName .
Observe que a propriedade UnknownMember não está habilitada porque seu valor está definido como Nenhum em vez de Visível ou Ocultoe que não há nenhum nome especificado para a propriedade UnknownMemberName .
Na janela Propriedades, selecione (personalizado) na célula da propriedade ErrorConfiguration e expanda a coleção de propriedades ErrorConfiguration .
Definir a propriedade ErrorConfiguration como (personalizado) permite que você exiba as definições de configuração de erro padrão; isso não altera as configurações.
Revise as propriedades de chave e de configuração de erro de chave nula, mas não faça nenhuma alteração.
Observe que, por padrão, quando as chaves nulas são convertidas para o membro desconhecido, o erro de processamento associado a essa conversão é ignorado
A imagem a seguir mostra as configurações de propriedade da coleção de propriedades ErrorConfiguration .
de
Clique na guia Navegador , verifique se a opção Linhas de Modelo do Produto está selecionada na lista Hierarquia e expanda Todos os Produtos.
Observe os cinco membros do nível Linha de Produto.
Expanda Componentese expanda o membro não rotulado do nível Nome do Modelo .
Esse nível contém os componentes do assembly que são usados para criar outros componentes, começando com o produto Corrida Ajustável , como mostra a imagem a seguir.
Definindo atributos das tabelas floco de neve e uma hierarquia definida pelo usuário Categoria do Produto
Abra o modo de exibição de fonte de dados Designer para a exibição de fonte de dados adventure works DW, selecione Vendas do Revendedor no painel Organizador de Diagramas e clique em Adicionar/Remover Objetos no menu Exibição da Fonte de Dados do SQL Server Data Tools.
A caixa de diálogo Adicionar/Remover Tabelas é aberta.
Na lista Objetos incluídos , selecione DimProduct (dbo)e clique em Adicionar Tabelas Relacionadas.
São adicionados DimProductSubcategory (dbo) e FactProductInventory (dbo) . Remova FactProductInventory (dbo) de forma que apenas a tabela DimProductSubcategory (dbo) seja adicionada à lista Objetos incluídos .
Com a tabela DimProductSubcategory (dbo) selecionada por padrão como a tabela adicionada mais recentemente, clique em Adicionar Tabelas Relacionadas novamente.
A tabela DimProductCategory (dbo) é adicionada à lista Objetos incluídos .
Clique em OK.
No menu Formatar SQL Server Data Tools, aponte para Layout Automático e clique em Diagrama.
Observe que as tabelas DimProductSubcategory (dbo) e DimProductCategory (dbo) são vinculadas uma a outra e também à tabela ResellerSales por meio da tabela Product .
Mude para o Designer de Dimensão da dimensão Produto e clique na guia Estrutura da Dimensão .
Clique com o botão direito do mouse em qualquer lugar no painel Exibição da Fonte de Dados e clique em Mostrar Todas as Tabelas.
No painel Exibição da Fonte de Dados , localize a tabela DimProductCategory , clique com o botão direito do mouse em ProductCategoryKey nessa tabela e clique em Novo Atributo da Coluna.
No painel Atributos , altere o nome deste novo atributo para Categoria.
No janela Propriedades, clique no campo de propriedade NameColumn e clique no botão procurar (...) para abrir a caixa de diálogo Coluna de Nome.
Selecione EnglishProductCategoryName na lista Coluna de origem e clique em OK.
No painel Exibição da Fonte de Dados , localize a tabela DimProductSubcategory , clique com o botão direito do mouse em ProductSubcategoryKey na tabela e clique em Novo Atributo da Coluna.
No painel Atributos , altere o nome deste novo atributo para Subcategoria.
No janela Propriedades, clique no campo de propriedade NameColumn e, em seguida, clique no botão procurar (...) para abrir a caixa de diálogo Coluna de Nome.
Selecione EnglishProductSubcategoryName na lista Coluna de origem e clique em OK.
Crie uma nova hierarquia definida pelo usuário chamada Categorias de Produto com os seguintes níveis na ordem de cima para baixo: Categoria, Subcategoriae Nome do Produto.
Especifique Todos os Produtos como o valor da propriedade AllMemberName da hierarquia definida pelo usuário Categorias de Produto.
Navegando nas hierarquias definidas pelo usuário na dimensão Produto
Na barra de ferramentas da guia Estrutura da Dimensão do Designer de Dimensão da dimensão Produto , clique em Processo.
Clique em Sim para criar e implantar o projeto. Depois, clique em Executar para processar a dimensão Produto .
Quando o processamento for concluído com êxito, expanda Processamento da dimensão ‘Produto’ concluído com êxito na caixa de diálogo Progresso do Processo , Processamento do atributo de dimensão ‘Nome do Produto’ concluídoe, por fim, expanda Consultas SQL 1.
Clique na consulta SELECT DISTINCT e em Exibir Detalhes.
Observe que uma cláusula WHERE foi adicionada à cláusula SELECT DISTINCT que remove os produtos que não têm nenhum valor na coluna ProductSubcategoryKey, como mostra a imagem a seguir:
a
Clique em Fechar três vezes para fechar todas as caixas de diálogo em processamento.
Clique na guia Navegador do Designer de Dimensão da dimensão Produto e clique em Reconectar.
Verifique se Linhas de Modelo do Produto é exibida na lista Hierarquia , expanda Todos os Produtose Componentes.
Selecione Categorias de Produto na lista Hierarquia , expanda Todos os Produtose Componentes.
Observe que nenhum dos componentes do assembly é exibido.
Para modificar o comportamento mencionado na tarefa anterior, você habilitará a propriedade UnknownMember da dimensão Produtos, definirá um valor para a propriedade UnknownMemberName , definirá a propriedade NullProcessing dos atributos Subcategoria e Nome do Modelo como UnknownMember, definirá o atributo Categoria como um atributo relacionado do atributo Subcategoria e, por fim, definirá o atributo Linha de Produto como atributo relacionado do atributo Nome do Modelo . Essas etapas farão com que SQL Server Analysis Services usem o valor de nome de membro desconhecido para cada produto que não tem um valor para a coluna SubcategoryKey, como você verá na tarefa a seguir.
Ativando o membro desconhecido, definindo relações de atributo e especificando as propriedades de processamento personalizado como nulas
Clique na guia Estrutura de Dimensão no Designer de Dimensão da dimensão Produto e selecione Produto no painel Atributos .
Na janela Propriedades , altere a propriedade UnknownMember para Visívele o valor da propriedade UnknownMemberName para Componentes do Assembly.
Alterar a propriedade UnknownMember para Visível ou Oculto habilita a propriedade UnknownMember da dimensão.
Clique na guia Relações de Atributo .
No diagrama, clique com o botão direito do mouse no atributo Subcategoria e selecione Nova Relação de Atributo.
Na caixa de diálogo Criar Relação de Atributo , o Atributo de Origem é Subcategoria. Defina o Atributo Relacionado como Categoria. Deixe o tipo de relação definido como Flexível.
Clique em OK.
No painel Atributos , selecione Subcategoria.
Na janela Propriedades, expanda a propriedade KeyColumns e depois a propriedade DimProductSubcategory.ProductSubcategoryKey (Integer) .
Altere a propriedade NullProcessing para UnknownMember.
No painel Atributos , selecione Nome do Modelo.
Na janela Propriedades, expanda a propriedade KeyColumns e depois a propriedade Product.ModelName (WChar) .
Altere a propriedade NullProcessing para UnknownMember.
Devido a essas alterações, quando SQL Server Analysis Services encontrar um valor nulo para o atributo Subcategory ou o atributo Nome do Modelo durante o processamento, o valor de membro desconhecido será substituído como o valor da chave e as hierarquias definidas pelo usuário serão construídas corretamente.
Navegando na dimensão Produto novamente
No menu Compilar , clique em Implantar Tutorial do Analysis Services.
Quando a implantação for concluída com êxito, clique na guia Navegador do Designer de Dimensão da dimensão Produto e clique no botão Reconectar.
Verifique se a opção Categoria do Produto está selecionada na lista Hierarquia e expanda Todos os Produtos.
Observe que Componentes do Assembly aparece como um novo membro do nível Categoria.
Expanda o membro Componentes do Assembly do nível Categoria e expanda o membro Componentes do Assembly do nível Subcategoria .
Observe que todos os componentes do assembly agora são exibidos no nível Nome do Produto , como mostra a imagem a seguir.
Próxima lição
Lição 5: Como definir relações entre grupos de medidas e dimensões