INSERT INTO (расширения интеллектуального анализа данных)
Служит для обработки заданного объекта интеллектуального анализа данных. Дополнительные сведения об обработке моделей и структур интеллектуального анализа данных см. в разделе Обработка объектов интеллектуального анализа данных.
Если задана структура интеллектуального анализа данных, инструкция обрабатывает эту структуру и все связанные с ней модели интеллектуального анализа данных. Если задана модель интеллектуального анализа данных, инструкция обрабатывает только эту модель.
Синтаксис
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>
Аргументы
model
Идентификатор модели.structure
Идентификатор структуры.mapped model columns
Разделенный запятыми список идентификаторов столбцов и вложенных идентификаторов.source data query
Исходный запрос в определенном поставщиком формате.
Замечания
Если не указан аргумент MINING MODEL или MINING STRUCTURE, служба Analysis Services производит поиск типа объекта на основе имени и затем обрабатывает корректный объект. Если сервер содержит структуру и модель интеллектуального анализа данных с одинаковыми именами, возвращается ошибка.
Используя вторую синтаксическую форму, INSERT INTO<объект>.COLUMN_VALUES, можно производить вставку данных непосредственно в столбцы модели без ее обучения. При использовании этого метода данные столбцов поставляются модели в сжатом и упорядоченном виде, что полезно при работе с наборами данных, содержащими иерархии или упорядоченные столбцы.
В случае применения инструкции INSERT INTO к модели или структуре интеллектуального анализа данных, если аргументы <сопоставленные столбцы модели> и <source data query> пропущены, поведение инструкции аналогично функции ProcessDefault, использующей уже существующие привязки. Если привязок не существует, инструкция возвращает ошибку. Дополнительные сведения о функции ProcessDefault см. в разделе Настройка параметров обработки. Следующий пример показывает синтаксис:
INSERT INTO [MINING MODEL] <model>
Если указана модель MINING MODEL и заданы сопоставленные столбцы и запрос исходных данных, модель и связанная с ней структура будут обработаны.
В следующей таблице приводится описание результатов различных форм инструкции в зависимости от состояния объектов.
Инструкция |
Состояние объектов |
Результат |
---|---|---|
INSERT INTO MINING MODEL<модель> |
Структура интеллектуального анализа данных обрабатывается. |
Модель интеллектуального анализа данных обрабатывается. |
|
Структура интеллектуального анализа данных не обрабатывается. |
Модель и структура интеллектуального анализа данных обрабатываются. |
|
Структура интеллектуального анализа данных содержит дополнительные модели. |
Ошибка при выполнении процесса. Необходимо произвести повторную обработку структуры и связанных с ней моделей интеллектуального анализа данных. |
INSERT INTO MINING STRUCTURE<структура> |
Структура интеллектуального анализа данных обрабатывается или не обрабатывается. |
Структура интеллектуального анализа данных и связанные с ней модели обрабатываются. |
INSERT INTO MINING MODEL<модель>, которая содержит исходный запрос или INSERT INTO MINING STRUCTURE<структура>, которая содержит исходный запрос |
Либо структура, либо модель уже включает содержимое. |
Ошибка при выполнении процесса. Перед выполнением операции необходимо удалить объекты с помощью инструкции DELETE (расширения интеллектуального анализа данных). |
Сопоставленные столбцы модели
С помощью элемента <сопоставленные столбцы модели> можно сопоставлять столбцы источника данных со столбцами модели интеллектуального анализа данных. Форма элемента <сопоставленные столбцы модели> следующая:
<column identifier> | SKIP | <table identifier> (<column identifier> | SKIP), ...
С помощью инструкции SKIP можно исключить определенные столбцы, которые должны существовать в исходном запросе, но не существуют в модели интеллектуального анализа данных. Команда SKIP помогает, когда у пользователя нет контроля над управления, включенными во входной набор строк. При написании собственной инструкции OPENQUERY рекомендуется исключить столбец из списка столбцов SELECT, а не использовать SKIP.
Команда SKIP также помогает, когда требуется выполнить соединение столбца из входного набора строк, а столбец не используется структурой интеллектуального анализа данных. Типичный пример – структура интеллектуального анализа данных и модель интеллектуального анализа данных с вложенной таблицей. Входной набор строк для этой структуры будет иметь столбец внешнего ключа, используемый для создания иерархического набора строк с помощью предложения SHAPE, но столбец внешнего ключа практически никогда не используется в модели.
Согласно синтаксису SKIP, команда SKIP должна занимать положение отдельного столбца во входном наборе строк, в котором соответствующая структура интеллектуального анализа данных отсутствует. Например, в приведенном далее примере вложенной таблицы OrderNumber должно быть выбрано в предложении APPEND так, чтобы его можно было использовать в предложении RELATE для указания соединения; при этом данные OrderNumber не требуется вставлять во вложенную таблицу в структуре интеллектуального анализа данных. Таким образом, вместо OrderNumber в аргументе INSERT INTO используется ключевое слово SKIP.
Source Data Query
Элемент <source data query> может включать следующие типы источников данных:
OPENQUERY
OPENROWSET
SHAPE
Любой запрос к службам Analysis Services, возвращающий набор строк
Дополнительные сведения о типах источников данных см. в разделе <source data query>.
Базовый пример
В следующем примере инструкция OPENQUERY применяется для обучения модели упрощенного алгоритма Байеса на основе данных о целевой рассылке из базы данных AdventureWorksDW.
INSERT INTO NBSample (CustomerKey, Gender, [Number Cars Owned],
[Bike Buyer])
OPENQUERY([Adventure Works DW],'Select CustomerKey, Gender, [NumberCarsOwned], [BikeBuyer]
FROM [vTargetMail]')
Пример вложенной таблицы
В следующем примере инструкция SHAPE применяется для обучения модели интеллектуального анализа данных связей, содержащей вложенную таблицу. Следует отметить, что в первой строке содержится SKIP вместо OrderNumber, которое должно быть в инструкции SHAPE_APPEND, но не используется в модели интеллектуального анализа данных.
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]