Lição 3: Processando a estrutura de mineração do Market Basket

Nesta lição, você usará a instrução INSERT INTO (DMX) e vAssocSeqLineItems e vAssocSeqOrders do banco de dados de exemplo AdventureWorksDW2008R2 para processar as estruturas de mineração e os modelos de mineração criados em Lição 1: Criando a estrutura de mineração do Market Basket e Lição 2: Adicionando modelos de mineração à estrutura de mineração do Market Basket.

Ao processar uma estrutura de mineração, o Analysis Services lê os dados de origem e compila as estruturas que dão suporte a modelos de mineração. Ao processar um modelo de mineração, os dados definidos pela estrutura de mineração são passados pelo algoritmo de mineração de dados escolhido. O algoritmo procura tendências e padrões e, depois, armazena as informações no modelo de mineração. Portanto, o modelo de mineração na verdade não contém os dados de origem, e sim as informações que foram descobertas pelo algoritmo. Para obter mais informações sobre como processar modelos de mineração, consulte Processando objetos de mineração de dados.

Só será necessário reprocessar uma estrutura de mineração se houver alteração em uma coluna de estrutura ou nos dados de origem. Se você adicionar um modelo de mineração a uma estrutura de mineração que já foi processada, será possível usar a instrução INSERT INTO MINING MODEL para treinar o novo modelo de mineração nos dados existentes.

Como a estrutura de mineração da cesta básica contém uma tabela aninhada, você terá que definir as colunas de mineração a serem treinadas, utilizando a estrutura de tabelas aninhadas, e utilizar o comando SHAPE para definir as consultas que recebem dados de treinamento das tabelas de origem.

Instrução INSERT INTO

Para treinar a estrutura de mineração da cesta básica e seus modelos de mineração associados, use a instrução INSERT INTO (DMX). O código na instrução pode ser dividido nas seguintes partes.

  • Identificando a estrutura de mineração

  • Listando as colunas na estrutura de mineração

  • Definindo os dados de treinamento usando SHAPE

Este é um exemplo genérico da instrução INSERT INTO:

INSERT INTO MINING STRUCTURE [<mining structure name>]
(
   <mining structure columns>
   [<nested table>]
   ( SKIP, <skipped column> )
)
SHAPE {
  OPENQUERY([<datasource>],'<SELECT statement>') }
APPEND
( 
  {OPENQUERY([<datasource>],'<nested SELECT statement>')
}
RELATE [<case key>] TO [<foreign key>]
) AS [<nested table>]

A primeira linha do código identifica a estrutura de mineração a ser treinada:

INSERT INTO MINING STRUCTURE [<mining structure name>]

As linhas seguintes do código especificam as colunas definidas pela estrutura de mineração. É preciso listar cada coluna na estrutura de mineração, e cada coluna deve mapear para uma coluna contida nos dados da consulta de origem. Você pode utilizar SKIP para ignorar colunas que existem nos dados de origem, mas não existem na estrutura de mineração. Para obter mais informações sobre como usar SKIP, consulte INSERT INTO (DMX).

(
   <mining structure columns>
   [<nested table>]
   ( SKIP, <skipped column> )
)

As linhas finais do código definem os dados que serão usados para treinar a estrutura de mineração. Como os dados de origem estão contidos dentro de duas tabelas, você usará SHAPE para relacionar as tabelas.

SHAPE {
  OPENQUERY([<datasource>],'<SELECT statement>') }
APPEND
( 
  {OPENQUERY([<datasource>],''<nested SELECT statement>'')
}
RELATE [<case key>] TO [<foreign key>]
) AS [<nested table>]

Nesta lição, use OPENQUERY para definir os dados de origem. Para obter informações sobre outros métodos de definição de consulta nos dados de origem, consulte <consulta de dados de origem>.

Tarefas da lição

Você executará a seguinte tarefa nesta lição:

  • Processe a estrutura de mineração da cesta básica

Processando a estrutura de mineração da cesta básica

Para processar a estrutura de mineração utilizando INSERT INTO

  1. No Pesquisador de Objetos, clique com o botão direito do mouse na instância do Analysis Services, aponte para Nova Consulta e clique em DMX.

    O Editor de Consulta é exibido com uma consulta nova em branco.

  2. Copie o exemplo genérico da instrução INSERT INTO no campo em branco da consulta.

  3. Substitua:

    [<mining structure>]
    

    por:

    Market Basket
    
  4. Substitua:

       <mining structure columns>
       [<nested table>]
       ( SKIP, <skipped column> )
    

    por:

    [OrderNumber],
    [Products] 
    (SKIP, [Model])
    

    Na instrução, Products s refere à tabela Products definida pela instrução SHAPE. SKIP é utilizado para ignorar a coluna Model que existe nos dados de origem como uma chave, mas não é usado pela estrutura de mineração.

  5. Substitua o seguinte:

    SHAPE {
      OPENQUERY([<datasource>],'<SELECT statement>') }
    APPEND
    ( 
      {OPENQUERY([<datasource>],'<nested SELECT statement>')
    }
    RELATE [<case key>] TO [<foreign key>]
    ) AS [<nested table>]
    

    por:

    SHAPE {
      OPENQUERY([Adventure Works DW 2008R2],'SELECT OrderNumber
                FROM vAssocSeqOrders ORDER BY OrderNumber')}
    APPEND
    ( 
      {OPENQUERY([Adventure Works DWR2],'SELECT OrderNumber, Model FROM 
        dbo.vAssocSeqLineItems ORDER BY OrderNumber, Model')
    }
    RELATE OrderNumber to OrderNumber 
    ) AS [Products]
    

    A consulta da fonte faz referência à fonte de dados AdventureWorksDW2008R2 definida no projeto de exemplo AdventureWorksDW2008R2. Ela usa esta fonte de dados para acessar as exibições vAssocSeqLineItems e vAssocSeqOrders. Essas exibições contêm os dados de origem que serão usados para treinar o modelo de mineração. Caso você não tenha criado esse projeto ou essas exibições, consulte Tutorial de mineração de dados básico.

    Dentro do comando SHAPE, você usará OPENQUERY para definir duas consultas. A primeira consulta define a tabela pai, e a segunda consulta define a tabela aninhada. As duas tabelas estão relacionadas usando a coluna OrderNumber que existe em ambas as tabelas.

    A instrução completa agora deve ser:

    INSERT INTO MINING STRUCTURE [Market Basket]
    (
       [OrderNumber],[Products] (SKIP, [Model])
    )
    SHAPE {
      OPENQUERY([Adventure Works DW 2008R2],'SELECT OrderNumber
                FROM vAssocSeqOrders ORDER BY OrderNumber')}
    APPEND
    ( 
      {OPENQUERY([Adventure Works DW 2008R2],'SELECT OrderNumber, Model FROM 
        dbo.vAssocSeqLineItems ORDER BY OrderNumber, Model')
    }
    RELATE OrderNumber to OrderNumber 
    ) AS [Products]
    
  6. No menu Arquivo, clique em Salvar DMXQuery1.dmx como.

  7. Na caixa de diálogo Salvar como, procure a pasta apropriada e nomeie o arquivo Process Market Basket.dmx.

  8. Na barra de ferramentas, clique no botão Executar.

Após a conclusão da execução da consulta, você pode visualizar os padrões e os conjuntos de itens que foram encontrados, exibir associações ou filtrar por conjunto de itens, probabilidade ou importância. Para exibir estas informações, em SQL Server Management Studio, clique com o botão direito no nome do modelo de dados e, em seguida, clica em Procurar.

Na próxima lição, você criará várias previsões com base nos modelos de mineração que adicionou à estrutura da cesta básica.