Condividi tramite


INSERT INTO (DMX)

Consente di elaborare l'oggetto di data mining specificato. Per ulteriori informazioni sull'elaborazione di modelli e strutture di data mining, vedere Elaborazione di oggetti di data mining.

Se è specificata una struttura di data mining, l'istruzione elabora la struttura e tutti i modelli di data mining associati. Se è specificato un modello di data mining, l'istruzione elabora solo tale modello.

Sintassi

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>

Argomenti

  • model
    Identificatore del modello.

  • structure
    Identificatore della struttura.

  • mapped model columns
    Elenco delimitato da virgole contenente identificatori di colonna e identificatori nidificati.

  • source data query
    Query di origine nel formato definito dal provider.

Osservazioni

Se non si specifica MINING MODEL o MINING STRUCTURE, Analysis Services cercherà il tipo di oggetto in base al nome ed elaborerà l'oggetto appropriato. Se il server contiene una struttura di data mining e un modello di data mining con lo stesso nome, verrà restituito un errore.

Se si utilizza la seconda forma della sintassi, ovvero INSERT INTO<object>.COLUMN_VALUES, è possibile inserire dati direttamente nelle colonne del modello, senza eseguire il training del modello. Questo metodo consente di fornire dati di colonna al modello in un modo ordinato e conciso, che risulta utile quando si utilizzano set di dati che contengono gerarchie o colonne ordinate.

Se si utilizza INSERT INTO con un modello o una struttura di data mining e si mantengono gli argomenti <mapped model columns> e <source data query> impostati su off, l'istruzione funziona in modo analogo a ProcessDefault, utilizzando associazioni già esistenti. Se le associazioni non esistono, l'istruzione restituirà un errore. Per ulteriori informazioni su ProcessDefault, vedere Opzioni e impostazioni di elaborazione. La sintassi è illustrata nell'esempio seguente:

INSERT INTO [MINING MODEL] <model>

Se si specifica MINING MODEL e si forniscono colonne mappate e una query sui dati di origine, verranno elaborati il modello e la struttura associata.

Nella tabella seguente sono descritti i risultati delle diverse forme dell'istruzione, a seconda dello stato degli oggetti.

Istruzione

Stato degli oggetti

Risultato

INSERT INTO MINING MODEL<model>

La struttura di data mining è elaborata.

Viene elaborato il modello di data mining.

   

La struttura di data mining non è elaborata.

Vengono elaborati il modello e la struttura di data mining.

   

La struttura di data mining contiene modelli di data mining aggiuntivi.

L'elaborazione non riesce. È necessario rielaborare la struttura e i modelli di data mining associati.

INSERT INTO MINING STRUCTURE<structure>

La struttura di data mining è elaborata o non elaborata.

Vengono elaborati la struttura di data mining e i modelli di data mining associati.

INSERT INTO MINING MODEL<model> che contiene una query di origine

Oppure

INSERT INTO MINING STRUCTURE<structure> che contiene una query di origine

La struttura o il modello include già un contenuto.

L'elaborazione non riesce. Prima di eseguire l'operazione è necessario cancellare gli oggetti utilizzando DELETE (DMX).

Elemento ;lt;mapped model columns&gt;

Tramite l'elemento <mapped model columns> è possibile mappare le colonne dell'origine dei dati a quelle nel modello di data mining. Il formato dell'elemento <mapped model columns> è il seguente:

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

Tramite l'opzione SKIP è possibile escludere determinate colonne che devono esistere nella query di origine ma non esistono nel modello di data mining. SKIP è utile quando non si dispone del controllo sulle colonne incluse nel set di righe di input. Se si scrive una propria funzione OPENQUERY, si consiglia di omettere la colonna dall'elenco di colonne SELECT anziché utilizzare SKIP.

SKIP è utile anche quando una colonna del set di righe di input è necessaria per eseguire un join, ma la colonna non è utilizzata dalla struttura di data mining. Un esempio tipico è rappresentato da una struttura di data mining e un modello di data mining che contengono una tabella nidificata. Il set di righe di input per questa struttura avrà una colonna di chiave esterna che viene utilizzata per creare un set di righe gerarchico utilizzando la clausola SHAPE, ma la colonna di chiave esterna non è quasi mai utilizzata nel modello.

La sintassi di SKIP richiede che SKIP venga inserito nella posizione della colonna singola nel set di righe di input che non dispone di una colonna della struttura di data mining corrispondente. Ad esempio, nella seguente tabella nidificata, OrderNumber deve essere selezionato nella clausola APPEND in modo da poter essere utilizzato nella clausola RELATE per specificare il join. Tuttavia, non si desidera inserire i dati di OrderNumber nella tabella nidificata nella struttura di data mining. Nell'esempio è utilizzata pertanto la parola chiave SKIP anziché OrderNumber nell'argomento INSERT INTO.

Elemento &lt;source data query&gt;

L'elemento <source data query> può includere i tipi di origini dei dati seguenti:

  • OPENQUERY

  • OPENROWSET

  • SHAPE

  • Qualsiasi query di Analysis Services che restituisce un set di righe.

Per ulteriori informazioni sui tipi di origini dei dati, vedere <source data query>.

Esempio di base

Nell'esempio seguente viene utilizzata l'istruzione OPENQUERY per il training di un modello Naive Bayes basato sui dati per il mailing diretto disponibili nel database AdventureWorksDW.

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

Esempio con tabella nidificata

Nell'esempio seguente viene utilizzata l'istruzione SHAPE per il training di un modello di data mining di associazione che contiene una tabella nidificata. La prima riga contiene SKIP anziché OrderNumber, richiesto nell'istruzione SHAPE_APPEND ma non utilizzato nel modello di data mining.

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]