Partager via


INSERT INTO (DMX)

Traite l'objet d'exploration de données spécifié. Pour plus d'informations sur le traitement des modèles et structures d'exploration de données, consultez Traitement des objets d'exploration de données.

Si une structure d'exploration de données est spécifiée, l'instruction traite la structure et tous ses modèles d'exploration de données associés. Si un modèle d'exploration de données est spécifié, l'instruction traite uniquement le modèle.

Syntaxe

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
    Identificateur du modèle

  • structure
    Identificateur de la structure

  • mapped model columns
    Liste des identificateurs de colonnes et des identificateurs imbriqués séparés par une virgule.

  • source data query
    Requête source dans le format défini par le fournisseur

Notes

Si vous ne spécifiez ni MINING MODEL ni MINING STRUCTURE, Analysis Services recherche le type d'objet en fonction du nom et traite l'objet correct. Si le serveur contient une structure d'exploration de données et un modèle d'exploration de données portant le même nom, une erreur est retournée.

En utilisant la deuxième forme de la syntaxe, INSERT INTO<object>.COLUMN_VALUES, vous pouvez insérer les données directement dans les colonnes du modèle sans tester ce dernier. Cette méthode permet d'insérer des données de colonnes dans le modèle d'une manière concise et organisée, ce qui est utile lorsque vous utilisez des datasets contenant des hiérarchies ou des colonnes triées.

Si vous employez INSERT INTO avec un modèle ou une structure d'exploration de données en excluant les arguments <mapped model columns> et <source data query>, l'instruction se comporte comme ProcessDefault, en utilisant des liaisons qui existent déjà. Si les liaisons n'existent pas, l'instruction retourne une erreur. Pour plus d'informations sur ProcessDefault, consultez Options et paramètres de traitement. L'exemple suivant illustre la syntaxe :

INSERT INTO [MINING MODEL] <model>

Si vous spécifiez MINING MODEL et fournissez des colonnes mappées et une requête de données source, le modèle et la structure associée sont traités.

Le tableau ci-dessous donne une description du résultat de différentes formes de l'instruction, en fonction de l'état des objets.

Instruction

État des objets

Résultat

INSERT INTO MINING MODEL<model>

La structure d'exploration de données est traitée.

Le modèle d'exploration de données est traité.

   

La structure d'exploration de données n'est pas traitée.

Le modèle et la structure d'exploration de données sont traités.

   

La structure d'exploration de données contient des modèles d'exploration de données supplémentaires.

Échec du traitement. Vous devez retraiter la structure et les modèles d'exploration de données associés.

INSERT INTO MINING STRUCTURE<structure>

La structure d'exploration de données est traitée ou non.

La structure d'exploration de données et les modèles d'exploration de données associés sont traités.

INSERT INTO MINING MODEL<model> qui contient une requête source

- ou -

INSERT INTO MINING STRUCTURE<structure> qui contient une requête source

La structure ou le modèle contient déjà du contenu.

Échec du traitement. Avant d'effectuer cette opération, vous devez supprimer les objets en utilisant DELETE (DMX).

Mapped Model Columns

En utilisant l'élément <mapped model columns>, vous pouvez mapper les colonnes de la source de données sur les colonnes du modèle d'exploration de données. L'élément <mapped model columns> a la forme suivante :

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

En utilisant SKIP, vous pouvez exclure certaines colonnes qui doivent exister dans la requête source, mais pas dans le modèle d'exploration de données. SKIP est utile lorsque vous ne contrôlez pas les colonnes incluses dans l'ensemble de lignes d'entrée. Si vous écrivez votre propre OPENQUERY, la meilleure pratique consiste à omettre la colonne de la liste de colonnes SELECT au lieu d'utiliser SKIP.

SKIP est également utile lorsqu'une colonne de l'ensemble de lignes d'entrée est nécessaire pour effectuer une jointure, mais que la colonne n'est pas utilisée par la structure d'exploration de données. En guise d'exemple typique, on peut citer une structure d'exploration de données et un modèle d'exploration de données qui contiennent une table imbriquée. L'ensemble de lignes d'entrée pour cette structure aura une colonne clé étrangère utilisée pour créer un ensemble de lignes hiérarchique à l'aide de la clause SHAPE, mais la colonne clé étrangère n'est presque jamais utilisée dans le modèle.

La syntaxe de SKIP requiert que vous insériez SKIP à la position de la colonne individuelle dans l'ensemble de lignes d'entrée qui n'a aucune colonne de structure d'exploration de données correspondante. Par exemple, dans l'exemple de table imbriquée ci-dessous, OrderNumber doit être sélectionné dans la clause APPEND afin de pouvoir être utilisé dans la clause RELATE pour spécifier la jointure ; toutefois, vous ne souhaitez pas insérer les données OrderNumber dans la table imbriquée dans la structure d'exploration de données. Par conséquent, l'exemple utilise le mot clé SKIP au lieu de OrderNumber dans l'argument INSERT INTO.

Source Data Query

L'élément <source data query> peut inclure les types de source de données suivants :

  • OPENQUERY

  • OPENROWSET

  • SHAPE

  • Toute requête Analysis Services retournant un ensemble de lignes

Pour plus d'informations sur les types de source de données, consultez <source data query>.

Exemple de base

L'exemple suivant utilise le type OPENQUERY pour tester un modèle Naive Bayes avec les données de publipostage ciblé de la base de données AdventureWorksDW.

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

Exemple de table imbriquée

L'exemple suivant utilise le type SHAPE pour tester un modèle d'exploration de données d'association contenant une table imbriquée. Notez que la première ligne contient SKIP au lieu de OrderNumber, qui est requis dans l'instruction SHAPE_APPEND mais n'est pas utilisé dans le modèle d'exploration de données.

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]