Compartilhar via


INSERT INTO (DMX)

Processa o objeto de mineração de dados especificado. Para obter mais informações sobre modelos de mineração de processamento e estruturas de mineração, consulte Processando objetos de mineração de dados.

Se uma estrutura de mineração for especificada, a instrução processará a estrutura de mineração e todos seus modelos de mineração associados. Se o modelo de mineração for especificado, a instrução processará apenas o modelo de mineração.

Sintaxe

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 estrutura.

  • mapped model columns
    Lista separada por vírgula de identificadores de coluna e identificadores aninhados.

  • source data query
    Consulta da fonte no formato definido pelo provedor.

Comentários

Caso se especifique MINING MODEL ou MINING STRUCTURE, Analysis Services procura o tipo de objeto com base no nome e processa o objeto correto. Se o servidor contiver uma estrutura de mineração e um modelo de mineração com nomes idênticos, um erro será retornado.

Ao usar a forma da segunda sintaxe, INSERT INTO<objeto>.COLUMN_VALUES, é possível inserir dados diretamente nas colunas de modelo, sem treinar o modelo. Esse método fornece dados de coluna para o modelo de forma concisa, ordenada, que é útil quando se trabalha com conjuntos de dados contendo hierarquias ou colunas ordenadas.

Se você usa INSERT INTO com um modelo de mineração ou estrutura de mineração e deixa desativados os argumentos <colunas de modelo mapeadas> e <consulta de dados de origem> a instrução comporta-se como ProcessDefault, usando associações já existentes. Se não houver associações, a instrução retornará um erro. Para obter mais informações sobre ProcessDefault, consulte Opções e configurações de processamento. O exemplo a seguir mostra a sintaxe:

INSERT INTO [MINING MODEL] <model>

Caso MINING MODEL seja especificado e se forneçam colunas mapeadas e consulta de dados de origem, o modelo e estrutura associada são processados.

A tabela a seguir fornece uma descrição do resultado de diferentes formas de instruções, dependendo do estado dos objetos.

Instrução

Estado de objetos

Resultado

INSERT INTO MINING MODEL<INSERT INTO MINING MODEL<modelo>>

A estrutura de mineração é processada.

O modelo de mineração é processado.

   

A estrutura de mineração é não processada.

O modelo de mineração e a estrutura de mineração são processadas.

   

A estrutura de mineração contém modelos de mineração adicionais.

Falha no processo. É preciso reprocessar a estrutura e os modelos de mineração associados.

INSERT INTO MINING STRUCTURE<INSERT INTO MINING STRUCTURE<estrutura>>

A estrutura de mineração é processada ou não processada.

A estrutura de mineração e os modelos de mineração associados são processados.

INSERT INTO MINING MODEL<modelo> que contém uma consulta de fonte

ou

INSERT INTO MINING STRUCTUREINSERT INTO MINING STRUCTURE<estrutura> que contém uma consulta de fonte

A estrutura ou o modelo já encerram um conteúdo.

Falha no processo. É preciso desmarcar os objetos antes da execução dessa operação, utilizando DELETE (DMX).

Colunas de modelo mapeado

Usando o elemento <colunas de modelo mapeado>, você poderá mapear as colunas de fonte de dados nas colunas no modelo de mineração. O elemento <colunas de modelo mapeado> possui a seguinte forma:

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

Ao usar SKIP, exclua determinadas colunas que devem existir na consulta de fonte, mas que não existem no modelo de mineração. SKIP é útil quando você não tem controle sobre as colunas que estão incluídas no conjunto de linhas de entrada. Se você estiver escrevendo sua própria OPENQUERY, a prática recomendada é omitir a coluna da lista de colunas SELECT em vez de usar SKIP.

SKIP também é útil quando uma coluna do conjunto de linhas de entrada é necessária para executar uma junção, mas a coluna não é usada pela estrutura de mineração. Um exemplo típico disso é uma estrutura de mineração e modelo de mineração que contêm uma tabela aninhada. O conjunto de linhas de entrada desta estrutura terá uma coluna de chave estrangeira usada para criar um conjunto de linhas hierárquico usando a cláusula SHAPE, mas a coluna de chave estrangeira quase nunca é usada no modelo.

A sintaxe de SKIP requer que você insira SKIP na posição da coluna individual no conjunto de linhas de entrada que não tem nenhuma coluna de estrutura de mineração correspondente. Por exemplo, na tabela aninhada a seguir, OrderNumber deve ser selecionado na cláusula APPEND para que possa ser usado na cláusula RELATE para especificar a junção. No entanto, você não precisa inserir os dados de OrderNumber na tabela aninhada na estrutura de mineração. Portanto o exemplo usa a palavra-chave SKIP em vez de OrderNumber no argumento INSERT INTO.

Consulta de dados de origem

O elemento <consulta de dados de origem> pode incluir os seguintes tipos de fonte de dados:

  • OPENQUERY

  • OPENROWSET

  • SHAPE

  • Qualquer consulta Analysis Services que retorne um conjunto de linhas

Para obter mais informações sobre tipos de fontes de dados, consulte <consulta de dados de origem>.

Exemplo básico

O exemplo a seguir usa OPENQUERY para treinar um modelo Naive Bayes com base em dados de endereçamento de destino no banco de dados AdventureWorksDW.

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

Exemplo de tabela aninhada

O exemplo a seguir usa SHAPE para treinar um modelo de mineração de associação que contém uma tabela aninhada. Observe que a primeira linha contém SKIP em vez de OrderNumber que é exigido na instrução SHAPE_APPEND, mas não é usado no modelo de mineração.

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]