Delen via


INVOEGEN IN (DMX)

van toepassing op: SQL Server Analysis Services

Verwerkt het gespecificeerde data mining-object. Voor meer informatie over processing mining-modellen en mijnbouwstructuren, zie Processing Requirements and Considerations (Data Mining).

Als een mijnbouwstructuur wordt gespecificeerd, verwerkt de instructie de mijnbouwstructuur en alle bijbehorende mijnbouwmodellen. Als een miningmodel wordt gespecificeerd, verwerkt de statement alleen het miningmodel.

Syntaxis

  
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>  

Arguments

model
Een modelidentificatie.

structuur
Een structuuridentificatie.

Toegewezen modelkolommen
Een komma-gescheiden lijst van kolomidentificaties en geneste identificaties.

Brongegevensopvraging
De bronquery in het door de provider gedefinieerde formaat.

Opmerkingen

Als je MINING MODEL of MINING STRUCTURE niet specificeert, zoekt Analysis Services naar het objecttype op basis van de naam en verwerkt het het juiste object. Als de server een miningstructuur en een miningmodel bevat met dezelfde naam, wordt een foutmelding teruggegeven.

Door gebruik te maken van de tweede syntaxisvorm, INSERT INTO*<object>*. COLUMN_VALUES kun je data direct in de modelkolommen invoegen zonder het model te hoeven trainen. Deze methode levert kolomgegevens aan het model op een beknopte, geordende manier, wat nuttig is wanneer je werkt met datasets die hiërarchieën of geordende kolommen bevatten.

Als je INSERT INTO gebruikt met een miningmodel of een miningstructuur, en de <mapped modelkolommen> en <brondataqueryargumenten> weglaat, gedraagt de instructie zich als ProcessDefault, met bindings die al bestaan. Als bindings niet bestaan, geeft de instructie een foutmelding terug. Voor meer informatie over ProcessDefault, zie Verwerkingsopties en Instellingen (Analysediensten). Het volgende voorbeeld toont de syntaxis:

INSERT INTO [MINING MODEL] <model>  

Als je MINING MODEL specificeert en gekoppelde kolommen en een brondataquery aanlevert, wordt het model en de bijbehorende structuur verwerkt.

De volgende tabel geeft een beschrijving van het resultaat van verschillende vormen van de stelling, afhankelijk van de toestand van de objecten.

Statement Toestand van objecten Resultaat
INVOEGEN IN MINING MODEL*<model>* De mijnbouwstructuur wordt verwerkt. Het mijnbouwmodel is verwerkt.
De mijnbouwstructuur is onbewerkt. Het mijnbouwmodel en de mijnbouwstructuur worden verwerkt.
De mijnbouwstructuur bevat aanvullende mijnbouwmodellen. Proces faalt. Je moet de structuur en de bijbehorende mijnbouwmodellen opnieuw verwerken.
INVOEGEN IN MIJNBOUWSTRUCTUUR*<structuur>* De mijnbouwstructuur is verwerkt of onbewerkt. De mijnbouwstructuur en bijbehorende mijnbouwmodellen worden verwerkt.
INSERT INTO MINING MODEL*model>*< dat een bronquery bevat

or

INSERT INTO MINING STRUCTUUR*<structuur>* die een bronquery bevat
Ofwel de structuur of het model bevat al inhoud. Proces faalt. Je moet de objecten wissen voordat je deze operatie uitvoert, door gebruik te maken van DELETE (DMX).

Toegewezen modelkolommen

Door gebruik te maken van het <element 'mapped model columns'> kun je de kolommen van de databron naar de kolommen in je miningmodel koppelen. Het element van de zuilen van> het <gemapte model heeft de volgende vorm:

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

Door SKIP te gebruiken, kun je bepaalde kolommen uitsluiten die in de bronquery moeten bestaan, maar die niet in het mijnbouwmodel voorkomen. SKIP is handig wanneer je geen controle hebt over de kolommen die in de invoerrijset zijn opgenomen. Als je je eigen OPENQUERY schrijft, is het beter om de kolom uit de SELECT-kolomlijst te laten in plaats van SKIP te gebruiken.

SKIP is ook nuttig wanneer een kolom uit de invoer-rijset nodig is om een join uit te voeren, maar de kolom niet door de mijnbouwstructuur wordt gebruikt. Een typisch voorbeeld hiervan is een mijnbouwstructuur en mijnbouwmodel die een geneste tabel bevatten. De invoerrijset voor deze structuur zal een kolom vreemde sleutel hebben die wordt gebruikt om een hiërarchische rijset te maken met de SHAPE-clausule, maar de kolom vreemde sleutel wordt bijna nooit in het model gebruikt.

De syntaxis voor SKIP vereist dat je SKIP invoegt op de positie van de individuele kolom in de invoerrijset die geen bijbehorende kolom voor mijnbouwstructuur heeft. Bijvoorbeeld, in het onderstaande voorbeeld van geneste tabel, moet OrderNumber worden geselecteerd in de APPEND-clausule zodat deze in de RELATE-clausule gebruikt kan worden om de join te specificeren; je wilt echter niet de OrderNumber-gegevens invoegen in de geneste tabel in de mijnstructuur. Daarom gebruikt het voorbeeld het SKIP-sleutelwoord in plaats van OrderNumber in het INSERT INTO-argument.

Brongegevenszoekopdracht

Het <brondataquery-element> kan de volgende databrontypes omvatten:

  • OPENQUERY

  • OPENROWSET

  • VORM

  • Elke Analysis Services-query die een rijset teruggeeft

Voor meer informatie over databrontypen, zie <source data query>.

Basisvoorbeeld

Het volgende voorbeeld gebruikt OPENQUERY om een Naïef Bayes-model te trainen op basis van de gerichte mailinggegevens in de AdventureWorksDW2025 database.

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

Voorbeeld van geneste tabel

Het volgende voorbeeld gebruikt SHAPE om een associatieminingmodel te trainen dat een geneste tabel bevat. Let op dat de eerste regel in plaats van SKIP OrderNumber bevat, wat vereist is in de SHAPE_APPEND-instructie maar niet wordt gebruikt in het miningmodel.

INSERT INTO MyAssociationModel  
    ([OrderNumber],[Models] (SKIP, [Model])  
    )  
SHAPE {  
    OPENQUERY([AdventureWorksDW2022],'SELECT OrderNumber  
    FROM vAssocSeqOrders ORDER BY OrderNumber')  
} APPEND (  
    {OPENQUERY([AdventureWorksDW2022],'SELECT OrderNumber, model FROM   
    dbo.vAssocSeqLineItems ORDER BY OrderNumber, Model')}  
  RELATE OrderNumber to OrderNumber)   
AS [Models]  

Zie ook

Data Mining Extensions (DMX) Data Definition Statements
Data Mining Extensions (DMX) Data Manipulatie-instructies
Data Mining Extensions (DMX) Statement Referentie