Предложенная статья является машинным переводом оригинала. SQL Server Технические статьи
Автор: Takaki Джинни
Технический рецензент: Раман Айер
Опубликовано: июля 2011 Предложенная статья является машинным переводом оригинала.
Применимо к: SQL Server 2008 R2, SQL Server 2008, SQL Server 2005
Резюме: эта статья является пример, иллюстрирующий строить несколько связанных данных модели, используя инструменты, которые организуются с Microsoft SQL Server Integration Services. В этом пошаговом руководстве вы узнаете, как автоматически строить процесс несколько моделей интеллектуального анализа данных, основанный на структуре интеллектуального анализа данных, создавать прогнозы от всех связанных с ней моделей и сохранить результаты в реляционной базе данных для дальнейшего анализа. И наконец просматривать и сравнивать прогнозов, исторических тенденций и статистики модели в SQL Server отчетов службы отчетов.
Авторское право
Данный документ предоставляется «как есть». Информация и мнения, высказанные в этом документе, включая URL-адреса и другие ссылки на Интернет- веб-сайт , могут изменяться без уведомления. Вы принимаете на себя риск, связанный с пользованием этим документом.
Некоторые примеры, приведенные здесь предоставляются только для иллюстрации и являются вымышленными. Никакой реальной ассоциации или связи предназначен или следует рассматривать как случайное.
Настоящий документ не предоставляет пользователям права на интеллектуальную собственность продуктов Майкрософт. Разрешается копирование и использование настоящего документа только в справочных целях.
© Корпорация Майкрософт (Microsoft Corporation), 2011. Все права защищены Введение
Эта статья является пример, демонстрирующий использование средств интеллектуального анализа данных, которые предоставляются с Microsoft SQL Server Integration Services. Если вы являетесь опытным данных рудничные, вы вероятно уже использовать средства, предоставляемые в среде Business Intelligence Development Studio или клиента интеллектуального анализа данных Add-in для Microsoft Excel для создания или просмотра моделей интеллектуального анализа данных. Однако службы Integration Services поможет вам автоматизировать многие процессы.
Это р��шение также вводит понятие ансамбль модели интеллектуального анализа данных, которые являются наборами нескольких связанных моделей. Для большинства проектов интеллектуального анализа данных необходимо создать несколько моделей, анализировать различия и сравнения вариантов, прежде чем выбрать лучшие модели для оперативного использования. Службы Integration Services обеспечивает рамки, в течение которого вы сможете легко создавать и управлять ансамбль модели.
В этой серии, вы узнаете, как:
• Настройка компоненты служб Integration Services, которые предоставляются для интеллектуального анализа данных.
• Автоматически создавать и обновлять модели интеллектуального анализа данных с помощью служб Integration Services.
• Хранить параметры модели интеллектуального анализа данных и результатов прогноза в компоненте database engine.
• Интегрируйте требования к отчетности в рабочий процесс разработки модели.
Обратите внимание, что это лишь некоторые из путей, что вы можете использовать службы Integration Services для включения интеллектуального анализа в аналитических данных и процессов обработки данных. Надеюсь эти примеры помогут вам получить больше пробег из существующей установки служб Integration Services и SQL Server служб Analysis Services.
Этот сценарий позиции вам как один аналитик, который было поручено создание некоторые прогнозы, основанные на последних данных о продажах. Вы не знаете о том, как настроить алгоритм временных рядов для достижения наилучших результатов (ARIMA? ARTXP? Что намекает предоставлять?). Кроме того вы знаете, что процесс моделирования обычно включает несколько моделей создания и тестирования различных сценариев.
Вместо того, чтобы построить вариации на модель ad hoc, вы решили автоматически генерировать несколько связанных с ней моделей, различные параметры систематически для каждой модели. Таким образом, вы можете легко создать многие модели, каждый из которых использует другую комбинацию подсказок периодичности и алгоритм типа. После того, как вы создали и обработка всех моделей, вы поставите исторических данных и прогнозов для каждой модели в серии докладов, чтобы узнать, какие модели обеспечивают хорошие результаты.
В этом пошаговом руководстве демонстрируются эти возможности:
• Автоматическая сборка нескольких моделей интеллектуального анализа данных с помощью параметров, хранящихся на SQL Server
• Создание массовые прогнозы для каждой модели и хранение их в SQL Server
• Сравнение тенденций от моделей, поместив их бок о бок в докладах
Этот раздел описывает полное решение, строит несколько моделей и создает запросы, возвращающие прогнозы от каждой модели. Он содержит следующие компоненты:
[1] Проект служб analysis Services: для создания этого проекта, следуйте инструкциям в учебник интеллектуального анализа данных на MSDN (http://msdn.microsoft.com/en-us/library/ms169846.aspx) для создания структуры интеллектуального анализа данных Forecasting и по умолчанию время серии интеллектуального анализа данных модели.
[2] Проект служб integration Services: вы создадите новый проект, содержащий несколько пакетов:
В этом пошаговом руководстве используются следующие задачи служб Integration Services и компонентов. Для получения дополнительных сведений из SQL Server электронной документации, нажмите на ссылку в решении задачи или компонент столбец.
Задача или компонент
Используется для
Задача «Выполнение SQL»
Получает значения переменных и создает таблицы для хранения результатов
Задача «Выполнение инструкции DDL служб Analysis»
Создает отдельные модели
задача «Обработка средствами Analysis Services»
Заполняет модели с данными
Контейнер «цикл по каждому элементу»
Создает и обрабатывает несколько моделей интеллектуального анализа данных
Задача «Сценарий»
Строит необходимые команды XMLA
Задача «Запрос интеллектуального анализа данных»
Создает прогнозы от каждой модели
Задача потока данных
Управляет и объединяет результаты прогноза
источникOLE DB
Получает данные из временного прогноза таблица
назначениеOLE DB
Записывает предсказания постоянной таблица
Производный столбец преобразование
Добавляет метаданные о прогнозы
Хотя следующие компоненты служб Integration Services также являются весьма полезными для интеллектуального анализа данных, они не используются в данном пошаговом руководстве — найти примеры в одном из более поздних документов:
Примечание: проекта SQL Server служб Reporting Services, содержащие отчеты, сравнивать модели не включается здесь, хотя этот проект генерирует все данные, необходимые для подготовки докладов. Это потому, что процесс создания отчета несколько продолжительных описать, особенно если вы не знакомы со службами Reporting Services. Кроме того поскольку все предсказания данные хранятся в реляционной базе данных, есть другие отчетности клиентов, которые можно использовать, включая Microsoft PowerPivot для Excel и Полумесяца проекта. Однако, мы надеемся, для описания процесса в отдельной статье позже TechNet вики (http://social.technet.microsoft.com/wiki/contents/articles/default.aspx).
Этап 1 - подготовка: определение модели, вы хотите создать хранится в SQL Server как набор параметров, значения и имена моделей.
Этап 2 — создание модели: службы Integration Services извлекает определения моделей и передает значения параметров в цикл Foreach, который строит и затем выполняет XML для аналитики (XMLA) заявление для каждой модели.
Этап 3 – модель обработки: службы Integration Services получает список доступных моделей, а затем он обрабатывает каждой модели путем заполнения его данными.
Этап 4 - предсказание: службы Integration Services выдает прогнозирующий запрос для каждой обработки модели. Каждый набор прогнозов сохраняется на SQL Server таблица.
Этап 5 – отчетности и анализа: предсказания тенденций для каждой модели сравниваются с помощью докладов (созданная путем служб Reporting Services, PowerPivotили ваш любимый отчетности клиент) с использованием данных в реляционной таблица.
В этой фазе, набор структуры, образцы данных и параметры будут использовать ваши пакеты. Прежде чем создавать рабочие пакеты, вам необходимо выполнить следующие задачи:
Следующем разделе описывается, как выполнять эти задачи.
Чтобы создать несколько моделей, основанных на структуре интеллектуального анализа данных, необходимо сначала создать структуру интеллектуального анализа данных Forecasting. Основано на том, что структуры интеллектуального анализа данных, также необходимо создать модель временных рядов, который может использоваться как шаблон для генерации других моделей. Если структура интеллектуального анализа данных, поддерживающие модель временных рядов не уже, можно построить один, выполнив шаги, описанные в временных рядов Майкрософт Учебник (http://msdn.microsoft.com/en-us/library/ms169846.aspx) в SQL Server электронной документации.
Затем используйте модель временных рядов из предыдущего шага д��я извлечения XML для Аналитики заявление, которое будет использоваться как шаблон для всех моделей.
Вы можете получить инструкции XML для Аналитики для любой модели или структуры с помощью параметры создания сценариев в среде Management Studio SQL Server :
После того, как вы генерировать XML для Аналитики для модели временных рядов по умолчанию с использованием параметра сценарий, он выглядит как следующий код. (Заявление XMLA для моделей может быть длительным, только выдержка показан здесь.) Заявление XMLA всегда включает в себя базу данных, структуры интеллектуального анализа данных, метаданные , например имя модели и алгоритма, используемого для анализа. При необходимости он может включать несколько параметров.
<ParentObject>
Модели прогнозирования <DatabaseID> </DatabaseID>
<MiningStructureID> прогнозирование </MiningStructureID>
</ParentObject>
<ObjectDefinition>
<MiningModel>
<ID> ARIMA_1-10-30 </ID>
<Name> ARIMA_1-10-30 </Name>
<Algorithm> Microsoft_Time_Series </Algorithm>
<AlgorithmParameters>
<AlgorithmParameter>
<Name> FORECAST_METHOD </Name>
< значение xsi: Type = "xsd:строка" > ARIMA </Value>
</AlgorithmParameter>
<Name> PERIODICITY_HINT </Name>
< значение xsi: Type = "xsd:строка" > {1,10,30} </Value>
</AlgorithmParameters>
<Columns>
</MiningModel>
</ObjectDefinition>
Далее внесите следующие изменения в тексте команды, в который были извлечены:
Чтобы очистить файл, используйте ваш любимый текстовый редактор. Пробельные символы, такие как символы табуляции и несколько символов пробела являются хорошо, но вы можете уда��ить их, если вам нравится, чтобы сократить строка переменную. Существует не предел на размер строка переменных, но существует ограничение в 4 000 символов в редакторе выражение .
Для создания новых моделей, необходимо обновить основные команды XMLA, который вы только что создали, включив различные значения для параметров. Среди параметров, которые необходимо обновить являются имена модель и модель код. Прежде чем вы сделаете это, вы можете найти его полезным пересмотреть формат параметров, которые вам предстоит изменить:
Службы Integration Services является чрезвычайно гибкой, так что есть много разных способов для хранения параметров и вставки их в модели XML для Аналитики. К примеру вы можете:
Однако для этого сценария, необходимо иметь возможность легко добавить новые наборы параметров и просматривать и обновлять полный список моделей и параметров.
Таким образом, вы будете использовать первый метод: создать пары значение параметра как записи в базе данных SQL Server и затем чтения новых значений во время выполнения с помощью контейнера цикла Foreach. Таким образом, можно легко просмотреть или обновить параметры с помощью SQL-запросов.
Выполните следующую инструкцию для создания параметров таблица.
ИСПОЛЬЗОВАНИЕ [DMReporting]--замените Ваше имя базы данных
GO
/ ****** Объект: таблицы [dbo].[ModelParameters] Сценарий Дата: 11/09/2010 10: 56: 26 ****** /
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[ModelParameters](
[RecordID] [int] IDENTITY(1,1) НЕ NULL,
[RecordDate] [datetime] ЗНАЧЕНИЕ NULL,
[ModelID] [nvarchar](50) NULL,
[ModelName] [nvarchar](50) NULL,
[ForecastMethod] [nvarchar](50) NULL,
[PeriodicityHint] [nvarchar](50) NULL
) ON [ПЕРВИЧНОЙ]
В следующей таблица перечислены параметры, которые используются для построения моделей в данном пошаговом руководстве. Вставьте эти значения параметров таблица , созданный с использованием сценария.
ModelID
ForecastMethod
PeriodicityHint
ARIMA_1-7-10
ARIMA
{1,7,10}
ARIMA_1-10-30
{1,10,30}
ARIMA_nohints
{1}
MIXED_1-7-10
MIXED
MIXED_1-10-30
MIXED_nohints
ARTXP_1-7-10
ARTXP
ARTXP_1-10-30
ARTXP_nohints
Этот сценарий использует параметры FORECAST_METHOD и PERIODICITY_HINT потому, что они относятся к числу самых важных параметров для модели временных рядов (также потому, что они представляют собой строка значения и легко изменить!).
Однако параметры, изменяемые будет полностью различны для других алгоритмов. Например если вы строите модель кластеризация , можно изменить параметр CLUSTERING_METHOD и построить модели с помощью каждого из четырех кластеризация методы, такие как K-Means. Вы также можете попробовать, изменяя MINIMUM_SUPPORT параметра, или же попробовать различные семена кластера. Список параметров различных алгоритмов, алгоритм технические справочные разделы (http://msdn.microsoft.com/en-us/library/cc280427.aspx) в библиотеке MSDN.
Важное примечание для данных шахтеров: изменяя значения параметров может сильно повлиять на результаты моделирования. Таким образом вы должны иметь своего рода план для анализа результатов и прополка плохо совпадение модели.
Например потому что алгоритм временных рядов очень чувствителен к подсказок периодичности, он может привести плохие результаты, если вы предоставите неправильно указание. Если указать, что данные содержат загрузок циклов и он на самом деле содержит ежемесячных циклов, алгоритм пытается совпадение данные для предлагаемых недельного цикла и (как правило) приводит к странным результатам. Некоторые из моделей, созданных этим процессом автоматизации свидетельствуют этот результат.
Есть много способов вы можете проверить обоснованность моделей:
Это завершает подготовку, и теперь можно построить три пакета.
Инструкции для каждого пакет начинаются с диаграмма, иллюстрирует потока операций пакет и краткое описание компонентов пакет .
Диаграмма следуют шаги, которые можно выполнить для настройки каждой задачи или назначение.
В ходе этапа 2 вы построить пакет , который создает много моделей интеллектуального анализа данных, с помощью шаблонов и параметров, подготовленную на этапе 1. Из числа этих моделей вы можете выбрать анализ наилучшим образом соответствует вашим потребностям. Этот пакет включает следующие задачи:
Выберите MODEL_ID ModelID AS,
ModelID AS MODEL_NAME,
ForecastMethod AS FORECAST_METHOD,
PeriodicityHint AS PERIODICITY_HINT
ОТ dbo.ModelParameters
Теперь, загружены, набор параметров в объектную переменную, передайте переменную в контейнере цикл Foreach, который затем выполняет операцию для каждой строки данных:
User::strBaseXMLA Строка
User::strModelID Строка
User::strModelName Строка
User::strForecastMethod Строка
User::strPeriodicityHint Строка
User::strModelXMLA Строка
User::strModelID 0
User::strModelName 1
User::strForecastMethod 2
User::strPeriodicityHint 3
User::strBaseXMLA Только для чтения
User::strModelID Только для чтения
User::strModelName Только для чтения
User::strForecastMethod Только для чтения
User::strPeriodicityHint Только для чтения
User::strModelXMLA чтение и запись
Примечание: код для выполнения этой задачи включен в приложение. Задача «Сценарий» выполняет операцию простой: он находит по умолчанию значения в основных XMLA и вставляет новые значения параметров, выполнив строка замены. Вы также могли бы сделать это с использованием регулярных выражений или методы XML, конечно.
10. Для связь свойство, укажите экземпляр служб Analysis Services, где хранятся ваши модели.
11. На DDL вкладка, для SourceType, выбрать переменнойи затем выберите переменную User::strModelXMLA.
Это завершает пакет , который создает модели. Теперь можно выполнить только этот пакет , щелкните правой кнопкой мыши пакет в обозревателе решений и выбрав выполнение сейчас.
После запуска пакет , если нет ошибок, можно подключиться к базе данных служб Analysis Services с помощью среды Management Studio SQL Server и посмотреть список новых моделей, которые были созданы. Однако нельзя просматривать модели или пока создавать прогнозирующие запросы. Это потому, что эти модели являются просто метаданные до тех пор, пока они обрабатываются, и они не содержат никаких данных или шаблонов. В очередной пакетбудет обрабатывать модели.
Этот пакет получает список допустимых моделей с сервера служб Analysis Services, а затем обрабатывает модели, использовать задачу «Обработка средствами Analysis Services».
До обработки, модель, созданную с помощью XML для Аналитики представляет собой лишь определение: коллекция метаданные , который определяет параметры и источник привязки данных. Обработки получает данные из данных Forecasting источник, и затем он генерирует моделей, основанных на алгоритме, указанное. (Для получения дополнительных сведений о структуре модели интеллектуального анализа данных и обработки, см. структуры интеллектуального анализа данных (http://msdn.microsoft.com/en-us/library/ms174757.aspx) в библиотеке MSDN.)
В целом это как пакет обрабатывает обработки:
ВЫБЕРИТЕ MODEL_NAME, IS_POPULATED, LAST_PROCESSED, TRAINING_SET_SIZE
ОТ $системы.DM_SCHEMA_MINING_MODELS
Не все из этих столбцов требуются для обработки, но можно добавить столбцы в ��астоящее время и обновить информацию, которая позже.
Выберите MODEL_NAME от tmpProcessingStatus
К настоящему времени вы должны быть очень комфортно с использованием сочетание «выполнение SQL» и контейнер.
strModelName1 Строка
strXMLAProcess1 Строка
strXMLAProcess2 Строка
Редактор для этой задачи требует что вы сначала подключиться к базе данных служб Analysis Services и затем выбрать из списка объектов, которые могут быть обработаны. Однако потому что вам нужно автоматизировать эту задачу, нельзя использовать интерфейс для выбора объектов для обработки. Так как вы итерацию списка объектов для обработки?
Решение заключается в том, чтобы использовать выражение изменить содержимое свойство ProcessingCommand. Вы использовать переменную, strXMLAProcess1, который набор вверх ранее, для хранения базовых XML для Аналитики для обработки модели, но вы вставьте местозаполнитель, который можно изменить позже, когда вы читаете переменной. Изменить команду, используя выражение и записи новых XMLA на вторую переменную, strXMLAProcess2.
ЗАМЕНИТЬ (@ [User::strXMLAProcess1], "modelnamehere" @ [User::strModelName1])
@ [User::strXMLAProcess2]
Еще один способ для обучения модели можно было бы добавить задачи обработки внутри же цикл Foreach, который использовался для создания модели. Однако есть веские причины для создания и обработки моделей в отдельных пакетах. К примеру:
Кроме того задача запрос интеллектуального анализа данных, которая приводится в поток управления может использоваться для выполнения различных типов запросов вместо источникданных служб Analysis Services. Можно использовать запросы наборов строк схемы в рамках этой задачи для получения сведений о других объектов служб Analysis Services, включая кубов и табличной модели, или даже запустить инструкции DDL расширений интеллектуального анализа данных (DMX). (В отличие от этого, компонент преобразования запросов интеллектуального анализа данных, доступных в поток данных, может использоваться только для создания прогнозов к существующей модели интеллектуального анализа данных.)
Последний шаг на этом этапе заключается в том, чтобы добавить задачу, которая обновляет статус вашей модели интеллектуального анализа данных. Теперь можно выполнить этот пакет как раньше.
Эта задача использует задачи «Запрос интеллектуального анализа данных», чтобы получить обновленный статус модели интеллектуального анализа данных и записи, реляционных данных таблица.
Это завершает пакет. Теперь можно выполнить этот пакет как раньше.
При выполнении этот пакет, фактической обработки каждой модели может занять довольно долгое время, в зависимости от того, сколько модели доступны. Вы можете добавить ведения журнала в пакет для отслеживания времени, используется для обработки каждой модели.
В этот пакетвы создавать прогнозирующие запросы, с помощью задачи «Запрос интеллектуального анализа данных» и применять их для всех моделей, которые вы только что создали и обработки:
objProcessedModels Объект
Выберите MODEL_NAME от dbo.tmpProcessingStatus
ГДЕ LAST_PROCESSED IS NOT null
Совет: когда вы работаете с модели интеллектуального анализа данных и особенно при создании сложных запросов, мы рекомендуем что вы строите DMX-запросы заранее, открыв модель непосредственно в разработчик бизнес-аналитики и использовать построитель прогнозирующих запросов, или запуская построитель прогнозирующих запросов от SQL Server Management Studio. Причина заключается в том, что когда вы строите запросы с помощью конструкторов интеллектуального анализа данных в среде Management Studio SQL Server или разработчик бизнес-аналитики, службы Analysis Services проводит некоторую проверку, которая позволяет вам просматривать и выбирать действительных объектов. Однако построитель запросов, представлена в задаче «Запрос интеллектуального анализа данных» не имеет этой связи и не может проверить или помочь с выбранными.
Эта задача не является строго обязательным для прогнозирования, но он создает данные, является полезным позже для отчетности.
Напомним, что модель интеллектуального анализа данных временных рядов основывается на данные о продажах для различных производственных линий в различных регионах, с каждой комбинации линия продукции плюс регион одной серии. К примеру можно прогнозировать продажи для продукта M200 в Европе или продукта M200 в Северной Америке. Здесь имя ряда извлекается и хранятся в таблица, что делает его легче группировать и фильтровать прогнозы позднее в службах Reporting Services:
ЕСЛИ СУЩЕСТВУЕТ
(Выберите [modelregion] из DMReporting.dbo.tmpModelRegions)
BEGIN
УСЕЧЕНИЕ таблицы DMReporting.dbo.tmpModelRegions
Вставка DMReporting.dbo.tmpModelRegions
Выбор отдельных [ModelRegion]
ОТ AdventureWorksDW2008R2.dbo.vTimeSeries
END
В этом цикле Foreach, вы создаете две пары задачи: прогнозирующий запрос плюс данных потока для обработки результатов, один для сумма и один для количество.
Вы можете спросить, почему генерировать результаты для сумма и количество отдельно, когда построитель прогнозирующих запросов позволяет предсказать оба сразу?
Причина заключается в том, что интеллектуального анализа запрос возвращает в��оженный набор строк для каждого ряда данных вы предсказать, но поставщики в службы Integration Services может работать только с плоские наборы строк. Если вы предсказать, как сумма и количество в одном запрос, набор строк содержит много значения NULL, когда уплощенная. Вместо того, чтобы попытаться удалить значения NULL и отсортировать результаты, это проще для создания отдельного набор результатов и затем объединить их позднее в потока данных служб Integration Services.
strModelName Строка
Большая часть работы в этот пакет осуществляется значений переменных. Создается один набор переменных, хранящих текст прогнозирующих запросов, а затем вставить имя модели интеллектуального анализа данных, поиск в другой переменной, strModelName. Это иллюстрирует полезным методом в службах Integration Services: Обновление содержимого переменной с помощью выражение как определения переменной.
strQueryBaseAmount Строка
strQueryBaseQty Строка
strPredictAmt Строка
strPredictQty Строка
Выберите плоский «ModelNameHere» как [имя модели]
[ModelNameHere].[Модель регион] как [модель и регион],
(Выберите $время как закрытое,
Сумма как NewValue,
PredictStDev ([количество]) как ValueStDev,
PredictVariance([Amount]) как ValueVariance
ОТ PredictTimeSeries ([ModelNameHere]. [Сумма], 10))
КАК прогнозы
ОТ [ModelNameHere]
Важные: здесь запрос форматируется для удобства чтения, но запрос не будет работать, если вы скопировать и вставить эти заявления в переменную как. Вы должны сначала скопируйте инструкцию в текстовый редактор и удалить все разрывы. К сожалению Редакторы служб Integration Services не обнаружить разрывы и поднять любые ошибки при редактировании задачи, но когда запуска пакет, вы получите сообщение об ошибке. Так что не забудьте сначала удалить разрывы!
Количество как NewValue,
PredictVariance([Quantity]) как ValueVariance
Обратите внимание, заполнитель, ModelNameHere, в этой процедуре. Этот прототип будет заменен с именем допустимая модель, которая получает пакет из переменной strModelName.
Следующие шаги описывают создание выражение , обновляет текст запрос каждый раз, когда выполнении цикла.
ЗАМЕНИТЬ (@ [User::strQueryBaseQty], "modelnamehere" @ [User::strModelName2])
ЗАМЕНИТЬ (@ [User::strQueryBaseAmount], "modelnamehere" @ [User::strModelName2])
Теперь, когда вы настроили переменные, большая часть работы делается. Все, что вам нужно сделать, это создать пару задач запрос интеллектуального анализа данных. Каждая задача получает обновленный запрос строка из переменной, вы только что создали, выполняет запрос, а затем сохраняет прогнозы на указанный выход:
Повторите шаги, только что описал для запрос , который делает то же самое, только с количеством как прогнозируемый столбец:
После того, как вы один раз запустить пакет , инструкцию расширений интеллектуального анализа данных содержит пустые скобки, подобные этим.
ВЫБЕРИТЕ УПЛОЩЕННАЯ '' как [имя модели]
[].[Модель регион] как [модель и регион],
(Выберите $время как закрытое, сумму как NewValue,
ОТ PredictTimeSeries ([]. [Сумма], 10))
ОТ]
Эти квадратные скобки будут заполняться в переменной, предоставляющий имя модели во время выполнения.
Для суммирования всех переменных активности во время выполнения:
Обратите внимание, что все эти прогнозирующих запросов записи их результаты той же временной таблица, который удаляется и затем перестраивается в ходе каждого цикла. Таким образом необходимо добавить задачу потока данных в период, который перемещает результаты в архивную таблица , а также добавляет некоторые метаданные.
Помните, что вы создали отдельные прогнозы для значений данных, сумма и количество, чтобы избежать борьбы с большим количеством значений NULL в результатах. Затем они объединяются обратно для подготовки отчетов, чтобы сделать таблица , которая выглядит примерно так.
Идентификатор задания
Время выполнения
Series
Временной срез
Тип прогноза
Прогнозируемое значение
StDev
Дисперсия
012
2010-09-20
M200 Europe
январь 2012 г.
Сумма продаж
283880
nnn
Февраля 2012 года
251225
Количество продаж
507
758
Можно также добавить любые дополнительные метаданные , которые могли бы быть полезным позже, например, с момента предсказания были созданы, Идентификатор задание и так далее.
Препятствуйте нам принять другой взгляд на инструкции запрос расширений интеллектуального анализа данных, используемый для создания прогнозов.
Выберите время $ как закрытое, сумму как NewValue, PredictStDev ([количество]) как ValueStDev,PredictVariance([Amount]) как ValueVariance от PredictTimeSeries
Обычно называются имена столбец по умолчанию, которые создаются в прогнозирующий запрос по умолчанию, основанные на имя прогнозируемого столбец , так что имена будет что-то вроде PredictAmount и PredictQuantity. Однако, можно использоватьпсевдоним столбецв выходных данных (здесь, это NewValue) чтобы легче объединить прогнозируемые значения.
Опять же потому что службы Integration Services являются настолько гибок, есть много других способов, вы можете это сделать:
Однако в этом случае, вы хотите проверить данные прогноза, формируемый каждого запрос. Таким образом вы использовать следующий подход:
На рисунке показана общего потока задач в рамках каждой задачи потока данных.
Примечание: вы должны имеет эти задачи в определенной последовательности, потому что они используют ту же временную таблица и Архив таблица. Если службы Integration Services выполняет задачи параллельно, процессы могут конфликтовать при попытке получить доступ к той же таблица.
Имя задачи
Имя производного столбец
Тип данных
Значение
Архив результатов Кол-во
PredictionDate
DateTime
GETDATE()
PredictedValue
строка
Сумма
Архив результатов Amt
Количество
Подсказка: изоляции данных потоков для каждого типа прогноза имеет еще одно преимущество: это гораздо, гораздо легче возиться с пакет позже. К примеру вы можете решить, что нет никаких оснований для создания отдельного прогноза для количества. Вместо того, чтобы редактирование запрос или выходных данных, можно просто отключить эту часть пакет и он по-прежнему будет работать без изменений – вы просто не будете иметь прогнозы для количества.
Вот она-пакеты содержат все инструменты, вам нужно динамически создавать и обновлять несколько моделей интеллектуального анализа данных.
Пакеты для данного сценария были разработаны таким образом, чтобы их можно запускать отдельно. Мы рекомендуем запустить каждый пакет самостоятельно по крайней мере один раз, чтобы чувствовать себя за то, что каждый пакет производит. Позднее можно добавить лесозаготовок в пакеты для отслеживания ошибок, или создать родительской задачи чтобы соединить их, добавляя задачу «Выполнение пакета».
Теперь, когда у вас есть набор прогнозов для нескольких моделей, вы обеспокоены вероятно чтобы увидеть тенденций и проанализировать различия.
Самый быстрый способ для просмотра отдельных моделей — с помощью средства просмотра интеллектуального анализа данных. Средство просмотра временных рядов Microsoft (http://technet.microsoft.com/en-us/library/ms175331.aspx) особенно удобно, потому что она сочетает в себе исторические данные с прогнозами для каждого ряда, и он отображает планки погрешностей для прогнозов.
Однако некоторые пользователи не удобны с использованием Business Intelligence Development Studio. Даже при использовании надстроек интеллектуального анализа данных для Microsoft Office, которая обеспечивает средство просмотра Microsoft Visio и время серии браузера, количество деталей в средстве просмотра временных рядов может быть огромным.
В противоположность этому, аналитики обычно хотят еще более подробно, включая статистику встроенных в содержимом модели, вместе с метаданные вы захватили о источник и параметров модели. Невозможно угодить всем!
К счастью служб Reporting Services позволяет выбрать данные, добавить дополнительные наборы данных и связанные отчеты, фильтр и группировка, поэтому можно создавать отчеты, которые отвечают потребностям каждого набор пользователей.
Вы уже видели, что потребность в отчетности и анализа вынудили многие из проектных решений пакет служб Integration Services.
Наши основные требования были следующими:
Чтобы сделать его проще для объединения данных, все данные сохранены в хранилище реляционных, чтобы избежать необходимости для запрос служб Analysis Services.
Дополнительные потребности могли бы включать:
Как аналитик вы можете даже более подробно, который легко захватить со службами Integration Services, а затем представить в связанные отчеты:
Однако для целей данного пошагового руководства, уже существует много деталей для сравнения моделей.
На следующем рисунке показано, что службы Reporting Services отчет, который сравнивает результаты прогноза для каждой модели:
Обратите внимание, что можно настроить отчет для отображения всех видов информации в подсказках — в данном примере, как наведении мыши прогноза, появиться стандартное отклонение и дисперсия для прогнозов.
Следующее показывает ряд диаграмм, которые были скопированы в матрицу. С помощью матрицы, можно создать набор отфильтрованных диаграммы. Эта серия графиков показывает прогнозы на сумму для всех моделей.
M200
R750
T1000
Европа
Северная Америка
Pacific
Если вы знакомы с моделированием серии времени, несколько тенденций начинают выскочить на вас только из проверки этих диаграмм:
Интересны следующие линии тренда, и они иллюстрируют некоторые проблемы, с которыми вы можете увидеть с модели. Результаты может указывать, что данные это плохо, имеется недостаточно данных или данные слишком переменной по совпадение.
R750 Европа (сумма)
R750 Европа (количество)
R250 Северной Америки (сумма)
R250 Северной Америки (количество)
Когда вы видите, дико различные тенденции от моделей на тех же данных, вы конечно же следует пересмотреть параметры модели, но может также использовать перекрестное прогнозирование или агрегат данных по-разному, чтобы избежать слишком сильно под влиянием одного ряда данных:
Интеллектуального анализа данных может быть трудоемким процессом. От сбора данных и подготовки, моделирование, тестирование и изучение результатов много усилий необходима для обеспечения данных поддерживает предполагаемый анализ и что выходные данные модели имеет смысл.
Некоторые части процесса построения модели будет всегда требуют вмешательства человека – понять результаты, например, требует тщательного пересмотра экспертом, который может оценить ли номера иметь смысл.
Однако, автоматизируя часть процесса интеллектуального анализа данных, службы Integration Services могут не только ускорить процесс, но и потенциально улучшить результаты. Например если вы не знаете, какие смесь алгоритмов производит самые лучшие результаты, или то, что самое время циклов в ваших данных, автоматизации можно использовать для экспериментирования.
Кроме того существуют преимущества за рамки простой экономии времени.
Automation поддерживает создание ансамбля моделей. Ансамбль модели (грубо говоря) являются модели, которые строятся на ��е же данные, но используют различные методы анализа.
Обычно результаты нескольких моделей по сравнению или вместе взятых, приносить результаты, которые лучше, чем какой-либо единой модели. Оценки несколько моделей для той же задачи прогнозирования теперь считается наилучшей практики, даже с лучших данных. Некоторые причины, которые часто упоминается для использования ансамбль модели включают в себя:
Было много исследований в последние годы на лучшие методы для объединения оценок от ансамбля моделей — слияние, упаковка в мешки, голосования, в среднем, взвешивания задняя доказательств, ограничением и так далее. Обсуждение моделей ансамбль выходит за область настоящего документа, и вы увидите, что мы не пытались объединить результаты прогноза в настоящем документе; Мы только представил их для сравнения. Однако мы рекомендуем вам прочитать связанные ресурсы чтобы узнать больше об этих методов.
Теперь, когда вы кратко изложены результаты в удобном для чтения доклада, что будет дальше? Как правило вы как раз думайте больше вопросов ответить!
К счастью потому что вы создали расширяемую инфраструктуру для включения интеллектуального анализа данных в анализ с использованием служб Integration Services, будет относительно легко собрать больше данных, обновление моделей и уточнения вашей презентации.
С результаты сохранены в хранилище реляционных данных, поощрять систематический подход к прогностической аналитики представил рамки для автоматизации интеллектуального анализа данных, этот документ.
В этом пошаговом руководстве показал, что относительно легко набор пакеты служб Integration Services для создания модели интеллектуального анализа данных и генерирующими прогнозы плотности от них. Рамки как один продемонстрировали здесь могут быть расширены для поддержки дальнейшего параметризации, поощрять использование модели ансамбля и включения интеллектуального анализа данных в других аналитических процессов.
[1] Джейми Макленнан: прохождение SQL Server 2005 Integration Services для интеллектуального анализа данных
http://www.sqlserverdatamining.com/ssdm/Default.aspx?tabid=96 & Id = 338
[2] Microsoft Research: ансамбль модели
http://Academic.Research.Microsoft.com/Paper/588724.aspx
[3] Учебники по службам отчетов
http://MSDN.Microsoft.com/en-us/library/bb522859.aspx
[4] Майкла Ohler: оценка прогноза точность
http://www.isixsigma.com/index.php?Option=com_k2 & вид =элемент& id=1550:assessing-forecast-accuracy-be-prepared-rain-or-shine & Itemid = 1 & tmpl = компонент и печати = 1
[5] Статистические методы для оценки моделей интеллектуального анализа данных
http://MS-OLAP.blogspot.com/2010/12/Do-You-Trust-Your-Data-Mining-Results.HTML
[6] Джон Maindonald, «Интеллектуального анализа данных с точки зрения статистики»
http://maths.anu.edu.au/~johnm/DM/dmpaper.HTML.
Я выражаю благодарность моим коллегам за их помощь и содействие. Карла Sabotta (технический писатель, службы Integration Services) оказались бесценным опытом о шагах в каждом из пакетов служб SSIS, обеспечение того, что я не оставил вне что-нибыдь. Ranjeeta Нанда любезно группа тестирования служб Integration Services обзор код в задаче «Сценарий». Мэри Lingel (технический писатель, службы Reporting Services) принял мой сложных данных источник и разработала набор отчетов, которые сделали это смотреть простой.
Следующий код могут добавляться к задаче «Сценарий», чтобы изменить значения в определении модели XML. Это очень простой образец был написан с использованием VB.NET, но задачи «Сценарий» поддерживает C# как хорошо.
Количество окон сообщений были добавлены для проверки, что задача была обработки XML, как ожидалось. Вы в конечном итоге будет прокомментировать это. Также следует добавить строка длины проверки и другие для предотвращения инъекций расширений интеллектуального анализа данных.
Public Sub Main()
' получить базовый XML для Аналитики и создайте новый пустой XML для Аналитики используется для вывода
Dim strXMLABaseDef как String = Dts.Variables("strBaseXMLA").Value.ToString
Dim strXMLANewDef как String = strXMLABaseDef
' создать локальные переменные и их заполнения значениями из SQL- запрос
Dim txtModelID как String = Dts.Variables("strModelID").Value.ToString
Dim txtModelName как String = Dts.Variables("strModelName").Value.ToString
Dim txtForecastMethod как String = Dts.Variables("strForecastMethod").Value.ToString
Dim txtPeriodicityHint как String = Dts.Variables("strPeriodicityHint").Value.ToString
' первый обновленный базовый XML для Аналитики с новой модели ID и имя модели
' <ID> ForecastingDefault </ID>
' <Name> ForecastingDefault </Name>
Dim txtNewID как String = «<ID>» & txtModelID & «</ID>»
Dim txtNewName как String = «<Name>» & txtModelName & «</Name>»
' вставить значения
strXMLANewDef = strXMLANewDef.Replace ("ForecastingDefault </ID> <ID>", txtNewID)
strXMLANewDef = strXMLANewDef.Replace ("<Name> ForecastingDefault </Name>", txtNewName)
' Отображать имена моделей – только при устранении неполадок
MessageBox.Show (strXMLANewDef, «Проверять новые модели ID и name»)
' создать временные переменные для замены операций
Dim strParameterName как String = ""
Dim strParameterValue как String = ""
' обновление значения для ПРОГНОЗА метода. Потому что все возможные значения имеют точно 5 символов, просто замените
strParameterName = «forecast_method»
strParameterValue = «СМЕШАННЫЙ» «значение по умолчанию
Если затем strXMLABaseDef.Contains(strParameterValue)
' заменить значения по умолчанию СМЕШАННЫЙ с все, что содержится в переменной из SQL Server запрос
strXMLANewDef = strXMLANewDef.Replace (strParameterValue, txtForecastMethod)
' отображать прогноз параметр value– для устранения неполадок только
MessageBox.Show (strXMLANewDef, «Проверить прогноз метод», MessageBoxButtons.OK)
Другое: MessageBox.Show («Проблемы с базовым XML для Аналитики», "XMLA определение не включает параметр," & _
strParameterName, MessageBoxButtons.YesNoCancel)
End If
«Ищите PERIODICITY_HINT значение
strParameterName = «periodicity_hint»
strParameterValue = «{1}» «значение по умолчанию
Если затем strXMLABaseDef.Contains(strParameterName)
Dim StartString As Integer = strXMLABaseDef.IndexOf("{")
Dim EndString As Integer = strXMLABaseDef.IndexOf("}")
' заменить все в переменной значение по умолчанию {1}
strXMLANewDef = strXMLANewDef.Replace (strParameterValue, txtPeriodicityHint)
MessageBox.Show (strXMLANewDef, «Проверьте периодичность подсказку», MessageBoxButtons.OK)
' сохранить заполненные определение переменной пакет
DTS.Variables("strModelXMLA").Значение = strXMLANewDef
DTS.TaskResult = ScriptResults.Success
End Sub
Для получения дополнительной информации:
http://www.Microsoft.com/SQLServer/: SQL Server веб-сайт
http://TechNet.Microsoft.com/en-US/SQLServer/: SQL Server TechCenter
http://MSDN.Microsoft.com/en-US/SQLServer/: SQL Server DevCenter