INSERT INTO (DMX)

Verarbeitet das angegebene Data Mining-Objekt. Weitere Informationen zum Verarbeiten von Miningmodellen und Miningstrukturen finden Sie unter Verarbeiten von Data Mining-Objekten.

Wenn eine Miningstruktur angegeben ist, verarbeitet die Anweisung die Miningstruktur sowie alle Miningmodelle, die der Struktur zugeordnet sind. Ist ein Miningmodell angegeben, verarbeitet die Anweisung nur das Miningmodell.

Syntax

INSERT INTO [MINING MODEL]|[MINING STRUCTURE] <model>|<structure> (<mapped model columns>) <source data query>
INSERT INTO [MINING MODEL]|[MINING STRUCTURE] <model>|<structure>.COLUMN_VALUES (<mapped model columns>) <source data query>

Argumente

  • model
    Ein Modellbezeichner.

  • structure
    Ein Strukturbezeichner.

  • mapped model columns
    Eine durch Trennzeichen getrennte Liste mit Spaltenbezeichnern und geschachtelten Bezeichnern.

  • source data query
    Die Quellabfrage im anbieterdefinierten Format.

Hinweise

Wenn Sie MINING MODEL oder MINING STRUCTURE nicht angegeben haben, sucht Analysis Services anhand des Namens nach dem Objekttyp und verarbeitet das richtige Objekt. Wenn der Server eine Miningstruktur und ein Miningmodell enthält, die denselben Namen haben, wird ein Fehler zurückgegeben.

Wenn Sie die zweite Syntaxform, INSERT INTO<object>.COLUMN_VALUES, verwenden, können Sie Daten direkt in die Modellspalten einfügen, ohne das Modell zu trainieren. Bei dieser Methode werden dem Modell Spaltendaten in einer übersichtlichen, geordneten Weise bereitgestellt, die sich anbietet, wenn Sie mit Datasets arbeiten, die Hierarchien oder geordnete Spalten enthalten.

Wenn Sie INSERT INTO mit einem Miningmodell oder einer Miningstruktur verwenden und die Argumente <mapped model columns> und <source data query> nicht angeben, verhält sich die Anweisung wie ProcessDefault, wobei sie bereits vorhandene Bindungen verwendet. Wenn keine Bindungen vorhanden sind, gibt die Anweisung einen Fehler zurück. Weitere Informationen zu ProcessDefault finden Sie unter Verarbeitungsoptionen und -einstellungen. Das folgende Beispiel zeigt die Syntax:

INSERT INTO [MINING MODEL] <model>

Wenn Sie MINING MODEL angeben und zugeordnete Spalten sowie eine Quelldatenabfrage bereitstellen, werden das Modell und die zugeordnete Struktur verarbeitet.

In der folgenden Tabelle sind die vom Status der Objekte abhängigen Ergebnisse der unterschiedlichen Formen der Anweisung beschrieben.

Anweisung

Status der Objekte

Ergebnis

INSERT INTO MINING MODEL<Modell (model)>

Miningstruktur wird verarbeitet.

Miningmodell wird verarbeitet.

   

Miningstruktur wird nicht verarbeitet.

Miningmodell und Miningstruktur werden verarbeitet.

   

Miningstruktur enthält weitere Miningmodelle.

Fehler bei der Verarbeitung. Sie müssen die Struktur und die zugeordneten Miningmodelle erneut verarbeiten.

INSERT INTO MINING STRUCTURE<structure>

Miningstruktur wird verarbeitet oder nicht verarbeitet.

Miningstruktur und zugeordnete Miningmodelle werden verarbeitet.

INSERT INTO MINING MODEL<model>, das eine Quellabfrage enthält

Oder

INSERT INTO MINING STRUCTURE<structure>, die eine Quellabfrage enthält

Entweder die Struktur oder das Modell enthält bereits Inhalt.

Fehler bei der Verarbeitung. Sie können diesen Vorgang erst ausführen, nachdem Sie die Objekte mit DELETE (DMX) gelöscht haben.

Zugeordnete Modellspalten (Mapped Model Columns)

Durch Verwenden des <mapped model columns>-Elements können Sie die Spalten aus der Datenquelle den Spalten im Miningmodell zuordnen. Das <mapped model columns>-Element hat folgende Form:

<column identifier> | SKIP | <table identifier> (<column identifier> | SKIP), ...

Mithilfe von SKIP können Sie bestimmte Spalten ausschließen, die in der Quellabfrage vorhanden sein müssen, im Miningmodell aber nicht vorhanden sind. SKIP ist geeignet, wenn Sie die Spalten im Eingaberowset nicht steuern können. Wenn Sie eine eigene OPENQUERY schreiben, wird empfohlen, die Spalte in der SELECT-Spaltenliste auszulassen, statt SKIP zu verwenden.

SKIP eignet sich auch, wenn eine Spalte im Eingaberowset zum Erstellen einer Verknüpfung erforderlich ist, die Spalte von der Miningstruktur jedoch nicht verwendet wird. Ein typisches Beispiel dafür sind eine Miningstruktur und ein Miningmodell, die eine geschachtelte Tabelle enthalten. Das Eingaberowset für diese Struktur weist dann eine Fremdschlüsselspalte auf, die zum Erstellen eines hierarchischen Rowsets mit der SHAPE-Klausel verwendet wird, jedoch wird die Fremdschlüsselspalte im Modell fast nie verwendet.

Die Syntax für SKIP erfordert das Einfügen von SKIP an der Position derjenigen Spalte im Eingaberowset, der keine Spalte in der Miningstruktur entspricht. So muss in dem Beispiel mit der geschachtelten Tabelle unten OrderNumber in der APPEND-Klausel ausgewählt werden, um in der RELATE-Klausel zum Angeben der Verknüpfung verwendet zu werden. Sie möchten die OrderNumber-Daten jedoch nicht in die geschachtelte Tabelle in der Miningstruktur einfügen. Daher wird im Beispiel das Schlüsselwort SKIP statt OrderNumber im INSERT INTO-Argument verwendet.

Quelldatenabfrage (Source Data Query)

Das <source data query>-Element kann die folgenden Datenquellentypen enthalten:

  • OPENQUERY

  • OPENROWSET

  • SHAPE

  • Jede Analysis Services-Abfrage, die ein Rowset zurückgibt

Weitere Informationen zu Datenquellentypen finden Sie unter <source data query>.

Elementares Beispiel

Im folgenden Beispiel wird OPENQUERY dazu verwendet, ein Naive Bayes-Modell auf Basis der Daten für gezieltes Mailing zu trainieren, die in der AdventureWorksDW-Datenbank gespeichert sind.

INSERT INTO NBSample (CustomerKey, Gender, [Number Cars Owned],
    [Bike Buyer])
OPENQUERY([Adventure Works DW],'Select CustomerKey, Gender, [NumberCarsOwned], [BikeBuyer] 
FROM [vTargetMail]')

Beispiel für eine geschachtelte Tabelle

Im folgenden Beispiel wird SHAPE verwendet, um ein Association-Miningmodell zu trainieren, das eine geschachtelte Tabelle enthält. Beachten Sie, dass die erste Zeile SKIP statt OrderNumber enthält, was in der SHAPE_APPEND-Anweisung erforderlich ist, im Miningmodell jedoch nicht verwendet wird.

INSERT INTO MyAssociationModel
    ([OrderNumber],[Models] (SKIP, [Model])
    )
SHAPE {
    OPENQUERY([Adventure Works DW],'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 [Models]