Lezione 3: Elaborazione della struttura di data mining Market Basket

In questa lezione verranno utilizzate l'istruzione INSERT INTO (DMX) e le viste vAssocSeqLineItems e vAssocSeqOrders del database di esempio AdventureWorksDW2008 per elaborare le strutture e i modelli di data mining creati nella Lezione 1: Creazione della struttura di data mining Market Basket e nella Lezione 2: Aggiunta di modelli di data mining alla struttura di data mining Market Basket.

Quando si elabora una struttura di data mining, Analysis Services legge i dati di origine e genera le strutture che supportano i modelli di data mining. Quando si elabora un modello di data mining, i dati definiti dalla struttura di data mining vengono elaborati tramite l'algoritmo di data mining selezionato. L'algoritmo ricerca tendenze e schemi e memorizza queste informazioni nel modello di data mining. Il modello di data mining non contiene pertanto i dati di origine effettivi, bensì le informazioni rilevate dall'algoritmo. Per ulteriori informazioni sull'elaborazione dei modelli di data mining, vedere Elaborazione di oggetti di data mining.

Una struttura di data mining deve essere rielaborata solo se si modifica una colonna della struttura o i dati di origine. Se si aggiunge un modello di data mining a una struttura di data mining già elaborata, è possibile utilizzare l'istruzione INSERT INTO MINING MODEL per eseguire il training del nuovo modello di data mining sui dati esistenti.

Dato che la struttura di data mining per l'analisi degli acquisti contiene una tabella nidificata, sarà necessario definire le colonne di data mining di cui eseguire il training utilizzando la struttura di tabelle nidificate e utilizzare il comando SHAPE per definire le query che eseguono il pull dei dati di training dalle tabelle di origine.

Istruzione INSERT INTO

Per eseguire il training della struttura di data mining Market Basket e dei modelli di data mining associati, utilizzare l'istruzione INSERT INTO (DMX). Il codice nell'istruzione può essere suddiviso nelle parti seguenti:

  • Identificazione della struttura di data mining

  • Creazione di un elenco delle colonne nella struttura di data mining

  • Definizione dei dati di training mediante il comando SHAPE

Di seguito è riportato un esempio generico di istruzione 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>]

La prima riga del codice identifica la struttura di data mining di cui si eseguirà il training:

INSERT INTO MINING STRUCTURE [<mining structure name>]

Le successive righe del codice specificano le colonne definite dalla struttura di data mining. È necessario che siano elencate tutte le colonne nella struttura di data mining e ogni colonna deve essere associata a una colonna nei dati della query di origine. È possibile utilizzare SKIP per ignorare le colonne presenti nei dati di origine, ma non nella struttura di data mining. Per ulteriori informazioni sull'utilizzo di SKIP, vedere INSERT INTO (DMX).

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

Le ultime righe del codice definiscono i dati che verranno utilizzati per il training della struttura di data mining. Dal momento che i dati di origine sono presenti in due tabelle, si utilizzerà SHAPE per correlare le tabelle.

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

In questa lezione si utilizzerà OPENQUERY per definire i dati di origine. Per informazioni su altri metodi per la definizione di una query nell'origine dati, vedere <source data query>.

Argomenti della lezione

In questa lezione verrà eseguita l'attività seguente:

  • Elaborazione della struttura di data mining Market Basket

Elaborazione della struttura di data mining Market Basket

Per elaborare la struttura di data mining mediante INSERT INTO

  1. In Esplora oggetti fare clic con il pulsante destro del mouse sull'istanza di Analysis Services, scegliere Nuova query e quindi DMX.

    Verrà avviato l'editor di query con una nuova query vuota.

  2. Copiare l'esempio generico dell'istruzione INSERT INTO nella query vuota.

  3. Sostituire quanto segue:

    [<mining structure>]
    

    con:

    Market Basket
    
  4. Sostituire quanto segue:

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

    con:

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

    Nell'istruzione, Products si riferisce alla tabella Products definita dall'istruzione SHAPE. SKIP viene utilizzato per ignorare la colonna Model presente nei dati di origine come chiave, ma che non viene utilizzata dalla struttura di data mining.

  5. Sostituire quanto segue:

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

    con:

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

    La query di origine fa riferimento all'origine dati AdventureWorksDW2008 definita nel progetto di esempio AdventureWorksDW2008. Utilizza questa origine dei dati per accedere alle viste vAssocSeqLineItems e vAssocSeqOrders contenenti i dati di origine che verranno utilizzati per il training del modello di data mining. Se il progetto o le viste non sono stati creati, vedere Esercitazione di base sul data mining.

    All'interno del comando SHAPE si utilizzerà OPENQUERY per definire due query. La prima query definisce la tabella padre, mentre la seconda definisce la tabella nidificata. Le due tabelle vengono correlate mediante la colonna OrderNumber presente in entrambe.

    L'istruzione completa dovrebbe risultare analoga alla seguente:

    INSERT INTO MINING STRUCTURE [Market Basket]
    (
       [OrderNumber],[Products] (SKIP, [Model])
    )
    SHAPE {
      OPENQUERY([Adventure Works DW 2008],'SELECT OrderNumber
                FROM vAssocSeqOrders ORDER BY OrderNumber')}
    APPEND
    ( 
      {OPENQUERY([Adventure Works DW 2008],'SELECT OrderNumber, Model FROM 
        dbo.vAssocSeqLineItems ORDER BY OrderNumber, Model')
    }
    RELATE OrderNumber to OrderNumber 
    ) AS [Products]
    
  6. Scegliere Salva DMXQuery1.dmx con nome dal menu File.

  7. Nella finestra di dialogo Salva con nome individuare la cartella appropriata e assegnare al file il nome Process Market Basket.dmx.

  8. Fare clic sul pulsante Esegui sulla barra degli strumenti.

Una volta terminata l'esecuzione della query, è possibile visualizzare i pattern e i set di elementi trovati, visualizzare le associazioni o filtrare per set di elementi, probabilità o importanza. Per visualizzare queste informazioni, in SQL Server Management Studio fare clic con il pulsante destro del mouse sul nome del modello di dati e quindi fare clic su Sfoglia.

Nella lezione successiva verranno create diverse stime basate sui modelli di data mining aggiunti alla struttura Market Basket.