Compartir a través de


INSERT INTO (DMX)

Procesa el objeto de minería de datos especificado. Para obtener más información acerca de cómo procesar modelos y estructuras de minería de datos, vea Procesar objetos de minería de datos.

Si se especifica una estructura de minería de datos, la instrucción procesa la estructura de minería de datos y todos sus modelos de minería de datos asociados. Si se especifica un modelo de minería de datos, la instrucción procesa solamente el modelo de minería de datos.

Sintaxis

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>

Argumentos

  • model
    Identificador de modelo.

  • structure
    Identificador de estructura.

  • mapped model columns
    Lista delimitada por comas de identificadores de columna e identificadores anidados.

  • source data query
    Consulta de origen en el formato definido por el proveedor.

Notas

Si no especifica MINING MODEL o MINING STRUCTURE, Analysis Services busca el tipo de objeto en función del nombre y procesa el objeto correcto. Si el servidor contiene una estructura y un modelo de minería de datos con el mismo nombre, se devuelve un error.

Si usa la segunda forma de sintaxis, INSERT INTO<objeto>.COLUMN_VALUES, puede insertar datos directamente en las columnas del modelo sin necesidad de entrenarlo. Este método proporciona datos de columna al modelo de forma concisa y ordenada que resultan útiles a la hora de trabajar con conjuntos de datos que contienen jerarquías o columnas ordenadas.

Si usa INSERT INTO con un modelo o una estructura de minería de datos y omite los argumentos <mapped model columns> y <source data query>, la instrucción se comporta como ProcessDefault y usa así enlaces ya existentes. La instrucción devuelve un error cuando no existen enlaces. Para obtener más información acerca de ProcessDefault, vea Configuración y opciones de procesamiento. En el siguiente ejemplo se muestra la sintaxis:

INSERT INTO [MINING MODEL] <model>

Si especifica MINING MODEL y proporciona columnas asignadas y una consulta de datos de origen, se procesa el modelo y su estructura asociada.

La siguiente tabla ofrece una descripción del resultado de distintas formas de la instrucción, en función del estado de los objetos.

Instrucción

Estado de los objetos

Resultado

INSERT INTO MINING MODEL<model>

Se procesa la estructura de minería de datos.

Se procesa el modelo de minería de datos.

   

No se procesa la estructura de minería de datos.

Se procesan el modelo y la estructura de minería de datos.

   

La estructura de minería de datos contiene modelos de minería de datos adicionales.

Se produce un error en el proceso. Deberá volver a procesar la estructura y los modelos de minería de datos asociados.

INSERT INTO MINING STRUCTURE<structure>

Se procesa o no se procesa la estructura de minería de datos.

Se procesan la estructura de minería de datos y los modelos de minería de datos asociados.

INSERT INTO MINING MODEL<modelo> que contiene una consulta de origen

o bien

INSERT INTO MINING STRUCTURE<estructura> que contiene una consulta de origen

La estructura o el modelo ya tienen contenido.

Se produce un error en el proceso. Debe usar DELETE (DMX) para borrar los objetos antes de realizar esta operación.

Columnas de modelo asignadas

El elemento <mapped model columns> sirve para asignar las columnas del origen de datos a las columnas del modelo de minería de datos. El elemento <mapped model columns> tiene la siguiente forma:

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

SKIP sirve para excluir determinadas columnas que deben existir en la consulta de origen, pero que no existen en el modelo de minería de datos. SKIP es útil cuando no se tiene el control sobre las columnas que se incluyen en el conjunto de filas de entrada. Si está escribiendo su propia instrucción OPENQUERY, lo mejor es omitir la columna en la lista de columnas SELECT en lugar de usar SKIP.

SKIP también es útil cuando se necesita una columna del conjunto de filas de entrada para realizar una combinación, pero la estructura de minería de datos no utiliza la columna. Un ejemplo típico de esto es una estructura y un modelo de minería de datos que contienen una tabla anidada. El conjunto de filas de entrada para esta estructura tendrá una columna de clave externa que se utiliza para crear un conjunto de filas jerárquico mediante la cláusula SHAPE, pero la columna de clave externa casi nunca se utiliza en el modelo.

La sintaxis de SKIP requiere que se inserte SKIP en la posición de la columna individual en el conjunto de filas de entrada que no tiene ninguna columna de estructura de minería de datos correspondiente. Por ejemplo, en el ejemplo de tabla anidada siguiente, OrderNumber debe estar seleccionado en la cláusula APPEND para que se pueda utilizar en la cláusula RELATE con el fin de especificar la combinación; sin embargo, no desea insertar los datos de OrderNumber en la tabla anidada de la estructura de minería de datos. Por consiguiente, el ejemplo utiliza la palabra clave SKIP en lugar de OrderNumber en el argumento de INSERT INTO.

Consulta de datos de origen

El elemento <source data query> puede incluir los siguientes tipos de origen de datos:

  • OPENQUERY

  • OPENROWSET

  • SHAPE

  • Cualquier consulta de Analysis Services que devuelva un conjunto de filas

Para obtener más información acerca de los tipos de origen de datos, vea <source data query>.

Ejemplo básico

En el siguiente ejemplo se usa OPENQUERY para entrenar un modelo Bayes naive en función de los datos de correo directo de la base de datos AdventureWorksDW.

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

Ejemplo de tabla anidada

En el siguiente ejemplo se usa SHAPE para entrenar un modelo de minería de datos de asociación que contiene una tabla anidada. Observe que la primera línea contiene SKIP en lugar de OrderNumber, que se requiere en la instrucción SHAPE_APPEND pero no se utiliza en el modelo de minería de datos.

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]