Lektion 3: Verarbeiten der Market Basket-Miningstruktur

In dieser Lektion verwenden Sie die INSERT INTO (DMX)-Anweisung und vAssocSeqLineItems sowie vAssocSeqOrders aus der AdventureWorksDW2008R2-Beispieldatenbank, um die Miningstrukturen und Miningmodelle zu verarbeiten, die Sie in Lektion 1: Erstellen der Market Basket-Miningstruktur und Lektion 2: Hinzufügen von Miningmodellen zur Market Basket-Miningstruktur erstellt haben.

Wenn Sie eine Miningstruktur verarbeiten, liest Analysis Services die Quelldaten und erstellt die Strukturen, die Miningmodelle unterstützen. Wenn Sie ein Miningmodell verarbeiten, werden die von der Miningstruktur definierten Daten über den von Ihnen ausgewählten Data Mining-Algorithmus übergeben. Der Algorithmus sucht nach Trends und Mustern und speichert diese Informationen dann im Miningmodell. Aus diesem Grund enthält das Miningmodell nicht die tatsächlichen Quelldaten, sondern die vom Algorithmus ermittelten Informationen. Weitere Informationen zur Verarbeitung von Miningmodellen finden Sie unter Verarbeiten von Data Mining-Objekten.

Sie müssen eine Miningstruktur nur erneut verarbeiten, wenn Sie eine Strukturspalte oder die Quelldaten ändern. Wenn Sie einer Miningstruktur, die bereits verarbeitet wurde, ein Miningmodell hinzufügen, können Sie das neue Miningmodell mithilfe der INSERT INTO MINING MODEL-Anweisung für die vorhandenen Daten trainieren.

Da die Market Basket-Miningstruktur eine geschachtelte Tabelle enthält, müssen Sie die zu trainierenden Miningspalten mithilfe der Struktur der geschachtelten Tabelle definieren und mithilfe des SHAPE-Befehls die Abfragen definieren, die die Trainingsdaten aus den Quelltabellen extrahieren.

INSERT INTO-Anweisung

Verwenden Sie zum Trainieren der Market Basket-Miningstruktur und ihrer zugehörigen Miningmodelle die INSERT INTO (DMX)-Anweisung. Der in der Anweisung enthaltene Code umfasst folgende Abschnitte.

  • Identifizieren der Miningstruktur

  • Auflisten der Spalten in der Miningstruktur

  • Definieren der Trainingsdaten mithilfe von SHAPE

Das folgende Beispiel ist ein allgemeines Beispiel für die INSERT INTO-Anweisung:

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>]

Die erste Codezeile identifiziert die Miningstruktur, die Sie trainieren werden:

INSERT INTO MINING STRUCTURE [<mining structure name>]

Die nächsten Codezeilen geben die Spalten an, die durch die Miningstruktur definiert werden. Sie müssen jede Spalte in der Miningstruktur auflisten, und jede Spalte muss einer in den Quellabfragedaten enthaltenen Spalte zugeordnet werden. Sie können SKIP verwenden, um Spalten zu ignorieren, die in den Quelldaten, jedoch nicht in der Miningstruktur vorhanden sind. Weitere Informationen zum Verwenden von SKIP finden Sie unter INSERT INTO (DMX).

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

Die letzten Codezeilen definieren die Daten, die zum Trainieren der Miningstruktur verwendet werden. Da die Quelldaten auf zwei Tabellen verteilt sind, verwenden Sie SHAPE, um die Tabellen miteinander in Beziehung zu setzen.

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

In dieser Lektion verwenden Sie OPENQUERY zum Definieren der Quelldaten. Weitere Informationen zu anderen Methoden zur Definition einer Abfrage für die Quelldaten finden Sie unter <source data query>.

Lektionsaufgaben

Im Rahmen dieser Lektion führen Sie die folgende Aufgabe aus:

  • Verarbeiten der Market Basket-Miningstruktur

Verarbeiten der Market Basket-Miningstruktur

So verarbeiten Sie die Miningstruktur mithilfe von INSERT INTO

  1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die Instanz von Analysis Services, zeigen Sie auf Neue Abfrage, und klicken Sie dann auf DMX.

    Der Abfrage-Editor wird mit einer neuen leeren Abfrage geöffnet.

  2. Kopieren Sie das Standardbeispiel der INSERT INTO-Anweisung in die leere Abfrage.

  3. Ersetzen Sie Folgendes:

    [<mining structure>]
    

    durch:

    Market Basket
    
  4. Ersetzen Sie Folgendes:

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

    durch:

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

    In der Anweisung bezieht sich Products auf die durch die SHAPE-Anweisung definierte Tabelle Produkte. SKIP wird verwendet, um die Spalte Modelle zu ignorieren, die in den Quelldaten als Schlüssel vorhanden ist, jedoch nicht von der Miningstruktur verwendet wird.

  5. Ersetzen Sie Folgendes:

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

    durch:

    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]
    

    Die Quellabfrage verweist auf die AdventureWorksDW2008R2-Datenquelle, die im AdventureWorksDW2008R2-Beispielprojekt definiert wurde. Sie verwendet diese Datenquelle für den Zugriff auf die Sichten vAssocSeqLineItems und vAssocSeqOrders. Diese Sichten enthalten die Quelldaten, die zum Trainieren des Miningmodells verwendet werden. Wenn Sie dieses Projekt oder diese Sichten noch nicht erstellt haben, führen Sie das Lernprogramm zu Data Mining-Grundlagen durch.

    Im SHAPE-Befehl verwenden Sie OPENQUERY, um zwei Abfragen zu definieren. Die erste Abfrage definiert die übergeordnete Tabelle und die zweite Abfrage definiert die geschachtelte Tabelle. Die zwei Tabellen werden mithilfe der OrderNumber-Spalte, die in beiden Tabellen vorhanden ist, miteinander in Beziehung gesetzt.

    Die gesamte Anweisung sollte wie folgt aussehen:

    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. Klicken Sie im Menü Datei auf DMXQuery1.dmx speichern unter.

  7. Wechseln Sie im Dialogfeld Speichern unter in den entsprechenden Ordner, und geben Sie der Datei den Namen Process Market Basket.dmx.

  8. Klicken Sie auf der Symbolleiste auf die Schaltfläche Ausführen.

Nachdem die Abfrage ausgeführt wurde, werden die gefundenen Muster und Itemsets sowie die Zuordnungen angezeigt, außerdem können Sie nach Itemset, Wahrscheinlichkeit oder Wichtigkeit filtern. Um diese Informationen in SQL Server Management Studio anzuzeigen, klicken Sie mit der rechten Maustaste auf den Namen des Datenmodells, und klicken Sie dann auf Durchsuchen.

In der nächsten Lektion erstellen Sie mehrere Vorhersagen auf der Basis des Miningmodells, das Sie der Market Basket-Struktur hinzugefügt haben.