INSERT INTO (расширения интеллектуального анализа данных)
Область применения: SQL Server Analysis Services
Служит для обработки заданного объекта интеллектуального анализа данных. Дополнительные сведения об обработке моделей интеллектуального анализа данных и структурах интеллектуального анализа данных см. в разделе "Требования к обработке и рекомендации" (Интеллектуальный анализ данных).
Если задана структура интеллектуального анализа данных, инструкция обрабатывает эту структуру и все связанные с ней модели интеллектуального анализа данных. Если задана модель интеллектуального анализа данных, инструкция обрабатывает только эту модель.
Синтаксис
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
Идентификатор модели.
структура
Идентификатор структуры.
сопоставленные столбцы модели
Разделенный запятыми список идентификаторов столбцов и вложенных идентификаторов.
запрос исходных данных
Исходный запрос в определенном поставщиком формате.
Замечания
Если вы не указываете МОДЕЛЬ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА данных или СТРУКТУРУ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА данных, службы Analysis Services выполняет поиск типа объекта в зависимости от имени и обрабатывает правильный объект. Если сервер содержит структуру и модель интеллектуального анализа данных с одинаковыми именами, возвращается ошибка.
Используя вторую синтаксическую форму, INSERT INTO*<object>*. COLUMN_VALUES можно вставить данные непосредственно в столбцы модели без обучения модели. При использовании этого метода данные столбцов поставляются модели в сжатом и упорядоченном виде, что полезно при работе с наборами данных, содержащими иерархии или упорядоченные столбцы.
Если вы используете INSERT INTO с моделью интеллектуального анализа данных или структурой интеллектуального анализа данных, а также оставьте <сопоставленные столбцы моделей и <аргументы> запроса> исходных данных, оператор ведет себя как ProcessDefault, используя привязки, которые уже существуют. Если привязок не существует, инструкция возвращает ошибку. Дополнительные сведения о ProcessDefault см. в разделе "Параметры обработки" и "Параметры" (службы Analysis Services). Следующий пример показывает синтаксис:
INSERT INTO [MINING MODEL] <model>
Если вы указываете МОДЕЛЬ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА данных и предоставляете сопоставленные столбцы и исходный запрос данных, обрабатывается модель и связанная структура.
В следующей таблице приводится описание результатов различных форм инструкции в зависимости от состояния объектов.
Оператор | Состояние объектов | Результат |
---|---|---|
ВСТАВКА В МОДЕЛЬ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА ДАННЫХ*<*> | Структура интеллектуального анализа данных обрабатывается. | Модель интеллектуального анализа данных обрабатывается. |
Структура интеллектуального анализа данных не обрабатывается. | Модель и структура интеллектуального анализа данных обрабатываются. | |
Структура интеллектуального анализа данных содержит дополнительные модели. | Ошибка при выполнении процесса. Необходимо произвести повторную обработку структуры и связанных с ней моделей интеллектуального анализа данных. | |
ВСТАВКА В СТРУКТУРУ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА ДАННЫХ*<СТРУКТУРУ>* | Структура интеллектуального анализа данных обрабатывается или не обрабатывается. | Структура интеллектуального анализа данных и связанные с ней модели обрабатываются. |
INSERT INTO MINING MODEL*<model>*, содержащий исходный запрос or INSERT INTO MINING STRUCTURE*<structure>*, содержащий исходный запрос |
Либо структура, либо модель уже включает содержимое. | Ошибка при выполнении процесса. Перед выполнением этой операции необходимо очистить объекты с помощью DELETE (DMX). |
Сопоставленные столбцы модели
Используя <элемент сопоставленных столбцов модели, можно сопоставить столбцы> из источника данных со столбцами в модели интеллектуального анализа данных. Элемент <сопоставленных столбцов> модели имеет следующую форму:
<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
Элемент <запроса> исходных данных может включать следующие типы источников данных:
OPENQUERY
OPENROWSET
ФОРМА
Любой запрос служб Analysis Services, возвращающий набор строк
Дополнительные сведения о типах источников данных см <. в запросе> исходных данных.
Базовый пример
В следующем примере используется OPENQUERY для обучения модели Naive Bayes на основе целевых данных рассылки в AdventureWorksDW2022
базе данных.
INSERT INTO NBSample (CustomerKey, Gender, [Number Cars Owned],
[Bike Buyer])
OPENQUERY([AdventureWorksDW2022],'Select CustomerKey, Gender, [NumberCarsOwned], [BikeBuyer]
FROM [vTargetMail]')
Пример вложенной таблицы
В следующем примере используется SHAPE для обучения модели интеллектуального анализа связей, содержащей вложенную таблицу. Обратите внимание, что строка fist содержит SKIP вместо OrderNumber, который требуется в инструкции SHAPE_APPEND , но не используется в модели интеллектуального анализа данных.
INSERT INTO MyAssociationModel
([OrderNumber],[Models] (SKIP, [Model])
)
SHAPE {
OPENQUERY([AdventureWorksDW2022],'SELECT OrderNumber
FROM vAssocSeqOrders ORDER BY OrderNumber')
} APPEND (
{OPENQUERY([AdventureWorksDW2022],'SELECT OrderNumber, model FROM
dbo.vAssocSeqLineItems ORDER BY OrderNumber, Model')}
RELATE OrderNumber to OrderNumber)
AS [Models]
См. также
Инструкции определения данных расширений интеллектуального анализа данных (DMX)
Инструкции по обработке данных расширения интеллектуального анализа данных (DMX)
Справочник по расширениям интеллектуального анализа данных (DMX)