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èlestructure
Identificateur de la structuremapped 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]