Filtrando uma tabela aninhada em um modelo de mineração (tutorial de mineração de dados intermediário)
Após criar e explorar o modelo, você decide que deseja enfatizar um subconjunto dos dados do cliente. Por exemplo, talvez você queira analisar apenas as cestas que contêm um determinado item ou os dados demográficos de clientes que não compraram nada em um certo período.
O SQL Server 2008Analysis Services oferece a capacidade de filtrar os dados usados em um modelo de mineração, de modo que não seja necessário configurar uma nova exibição de fonte de dados para usar dados diferentes. No Tutorial de mineração de dados básico, você aprendeu a filtrar dados de uma tabela simples aplicando condições à tabela de casos. Nesta tarefa, você criará um filtro que se aplica a uma tabela aninhada.
Filtros em tabelas aninhadas vs. tabelas de casos
Se a sua exibição de fonte de dados contiver uma tabela de casos e uma tabela aninhada, como a exibição da fonte de dados usada no modelo de Associação, você poderá filtrar os valores da tabela de casos, a presença ou a ausência de um valor na tabela aninhada ou uma combinação de ambos.
Nesta tarefa, primeiro você fará uma cópia do modelo de Associação e depois adicionará os atributos IncomeGroup e Region ao novo modelo relacionado, para que possa filtrar os atributos na tabela de casos.
Para criar e modificar uma cópia do modelo de Associação
Na guia Modelos de Mineração do Business Intelligence Development Studio, clique com o botão direito do mouse no modelo de Associação e selecione Novo Modelo de Mineração.
Em Nome do Modelo, digite Associação Filtrada. Em Nome do Algoritmo, selecione Regras de Associação da Microsoft. Clique em OK.
Na coluna do modelo de Associação Filtrada, clique na linha IncomeGroup e altere o valor de Ignorar para Entrada.
Em seguida, você criará um filtro na tabela de casos no novo modelo de associação. O filtro passará ao modelo apenas os clientes na região de destino ou com o nível de renda de destino. Depois, você adicionará um segundo conjunto de condições de filtro para especificar se o modelo usa apenas clientes cujas cestas de compras continham pelo menos um item.
Para adicionar um filtro a um modelo de mineração
Na guia Modelos de Mineração, clique com o botão direito do mouse no modelo Associação Filtrada e selecione Definir Filtro de Modelos.
Na caixa de diálogo Filtro de Modelos, clique na linha superior da grade, na caixa de texto Coluna da Estrutura de Mineração.
Na caixa de texto Coluna da Estrutura de Mineração, selecione IncomeGroup.
O ícone no lado esquerdo da caixa de texto é alterado para indicar que o item selecionado é uma coluna.
Clique na caixa de texto Operador e selecione o operador = na lista.
Clique na caixa de texto Valor e digite Alto na caixa.
Na grade, clique na linha seguinte.
Clique na caixa de texto E/OU na linha seguinte da grade e selecione OU.
Na caixa de texto Coluna da Estrutura de Mineração, selecione IncomeGroup. Na caixa de texto Valor, digite Moderado.
A condição de filtro que você criou é acrescentada automaticamente à caixa de texto Expression e deve aparecer da seguinte forma:
[IncomeGroup] = 'High' OR [IncomeGroup] = 'Moderate'
Clique na linha seguinte na grade, deixando o operador como o padrão, E.
Para Operador, deixe o valor padrão, Contém. Clique na caixa de texto Valor.
Na caixa de diálogo Filtro, na primeira linha em Coluna da Estrutura de Mineração, selecione Modelo.
Para Operador, selecione NÃO É NULO. Deixe a caixa de texto Valor em branco. Clique em OK.
A condição de filtro na caixa de texto Expressão da caixa de diálogo Filtro de Modelos é atualizada automaticamente para incluir a nova condição na tabela aninhada. A expressão completa é a seguinte:
[IncomeGroup] = 'High' OR [IncomeGroup] = 'Moderate' AND EXISTS SELECT * FROM [vAssocSeqLineItems] WHERE [Model] <> NULL).
Clique em OK.
Para habilitar a busca detalhada e processar o modelo filtrado
Na guia Modelos de Mineração, clique com o botão direito do mouse no modelo de Associação Filtrada e selecione Propriedades.
Altere a propriedade AllowDrillThrough para True.
Clique com o botão direito do mouse no modelo de mineração de Associação Filtrada e selecione Processar Modelo.
Clique em Sim na mensagem de erro para implantar o novo modelo no banco de dados do Analysis Services.
Na caixa de diálogo Processar Estrutura de Mineração, clique em Executar.
Quando o processamento for concluído, clique em Fechar para sair da caixa de diálogo Progresso do Processo e clique em Fechar novamente para sair da caixa de diálogo Processar Estrutura de Mineração.
Para verificar, use o visualizador da Árvore de Conteúdo Genérico da Microsoft e examine o valor de NODE_SUPPORT em que o modelo filtrado contém menos casos do que o original.
Comentários
O filtro de tabela aninhada que você acabou de criar verifica apenas a presença de pelo menos uma linha na tabela aninhada; no entanto, também é possível criar condições de filtro que verificam a presença de produtos específicos. Por exemplo, você pode criar o seguinte filtro:
[IncomeGroup] = 'High' AND
EXISTS (SELECT * FROM [<nested table name>] WHERE [Model] = 'Water Bottle' )
Esta instrução significa que você está restringindo os clientes da tabela de casos a apenas aqueles que compraram uma garrafa de água. No entanto, como o número de atributos da tabela aninhada é potencialmente ilimitado, o Analysis Services não fornece a lista dos possíveis valores a serem selecionados. Em vez disso, você deve digitar o valor exato.
Você pode clicar em Editar Consulta para alterar manualmente a expressão de filtro. No entanto, se você alterar manualmente qualquer parte da expressão de filtro, a grade será desabilitada e, assim sendo, você deverá trabalhar com a expressão de filtro apenas no modo de edição de texto. Para restaurar o modo de edição da grade, você deve apagar a expressão de filtro e iniciar novamente.
Observe também que você não pode usar um operador LIKE em uma tabela aninhada.