Главная
Отчеты, обработки 1с77
Отчеты, обработки 1с8
Документация
Вопросы
Контакты
Фото
2006 г.

Интеллектуальная обработка данных и хранилищ данных в SQL Server 2005

Alex Payne, Microsoft
Май 2005 г.

Предисловие:
Данный документ является обзором улучшений, внесенных в платформу интеллектуальной обработки данных в Microsoft SQL Server 2005. Документ не является руководством, в нем только дается информация об улучшениях в платформе интеллектуальной обработки данных.

Авторские права
Этот документ является предварительным и может быть существенным образом переработан до финального коммерческого релиза программного продукта

Информация, содержащаяся в этом документе, представляет текущую точку зрения корпорации Microsoft на обсуждаемые вопросы на момент публикации. Поскольку Microsoft должна реагировать на изменяющиеся условия на рынке, документ не следует рассматривать как обязательство со стороны Microsoft; корпорация Microsoft не может гарантировать, что вся представленная информация сохранит точность после даты публикации.

Настоящий документ предназначен только для информационных целей. MICROSOFT НЕ ДАЕТ В ЭТОМ ДОКУМЕНТЕ НИКАКИХ ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ.

Если не оговорено противное, используемые в этом документе названия компаний и продуктов, имена людей, действующие лица и/или данные являются вымышленными, и их ни в коей мере не следует связывать с какими-либо реальными людьми, компаниями, продуктами или событиями.

© 2005 Microsoft Corporation. Все права защищены.

Microsoft, SharePoint, Visual Basic и Visual Studio являются товарными знаками или охраняемыми товарными знаками корпорации Майкрософт в США и/или в других странах.

Другие упоминаемые здесь названия продуктов или компаний могут представлять собой торговые марки соответствующих владельцев.

Содержание

Введение

Microsoft® SQL Server™ 2005 является полноценной платформой интеллектуальной обработки данных, предоставляющей возможности, инструменты и функциональность для создания и классических, и инновационных аналитических приложений. Данный документ представляет собой обзор инструментов, которые вы сможете использовать при создании аналитического приложения, и уделяет особое внимание новой функциональности, упрощающей разработку и управление сложными системами интеллектуальной обработки данных.

Следующая таблица является обзором компонентов системы интеллектуальной обработки данных и связанных с ними компонентов Microsoft SQL Server 2000 и SQL Server 2005.

КомпонентSQL Server 2000SQL Server 2005
Извлечение, преобразование и загрузка данных (Extract, transformation, and load - ETL)Data Transformation Services (DTS)SQL Server 2005 Integration Services
Реляционное хранилище данныхРеляционная база данных SQL Server 2000Реляционная база данных SQL Server 2005
Многомерная база данныхSQL Server 2000 Analysis ServicesSQL Server 2005 Analysis Services
Добыча данных (Data Mining)SQL Server 2000 Analysis ServicesSQL Server 2005 Analysis Services
Управляемая система отчетностиSQL Server 2000 Reporting ServicesSQL Server 2005 Reporting Services
Система пользовательских отчетов SQL Server 2005 Reporting Services
Пользовательские запросы и аналитикаПродукты Microsoft Office (Excel, Office Web Components, Data Analyzer, SharePoint Portal)Продукты Microsoft Office (Excel, Office Web Components, Data Analyzer, SharePoint Portal)
Инструменты разработки баз данныхSQL Server 2000 Enterprise Manager, Analysis Manager, Query Analyzer и многие другиеSQL Server 2005 Business Intelligence Development Studio (Новый инструмент!)
Инструменты управления базами данныхEnterprise Manager, Analysis ManagerSQL Server 2005
SQL Server Management Studio (Новый инструмент!)

В SQL Server 2005 добавлены два новых компонента: SQL Server Management Studio и SQL Server Business Intelligence Development Studio. Другие основные компоненты интеллектуальной обработки данных - Integration Services, Analysis Services OLAP, Analysis Services Data Mining и Reporting Services - в SQL Server 2005 значительно изменены и улучшены. Реляционная база данных SQL Server 2005 содержит несколько новых важных возможностей. Хотя инструменты запросов в Microsoft Office и не являются частью SQL Server 2005, их текущие версии смогут работать с SQL Server 2005. Функциональность интеллектуальной обработки данных в Microsoft Office будет развиваться в следующих версиях Microsoft Office.

Набор инструментов SQL Server 2005 Business Intelligence предоставляет полную интеграцию приложений интеллектуальной обработки данных:

  • Разработка: Business Intelligence Development Studio - это первая интегрированная среда разработки, созданная для разработчиков систем интеллектуальной обработки данных. Основанная на Visual Studio® 2005, Business Intelligence Development Studio представляет собой мощную, интегрированную, профессиональную платформу разработки для разработчиков систем интеллектуальной обработки данных. Отладка, контроль исходного кода, разработка скриптов и кода доступны во всех компонентах приложения интеллектуальной обработки данных.
  • Интеграция: Инструмент Integration Services был полностью переписан для выполнения сложных высокоскоростных интеграции, преобразования и синтеза очень больших объемов данных. Создавать и отлаживать пакеты в Business Intelligence Development Studio теперь просто приятно. Integration Services, Analysis Services и Reporting Services работают вместе и обеспечивают одинаковое представление данных из гетерогенных источников.
  • Хранение: SQL Server 2005 размывает границы между реляционными и многомерными базами данных. Вы можете хранить данные в реляционной базе данных, в многомерной базе данных или использовать новую функциональность - упреждающий кэш (Proactive Cache) для использования преимуществ обоих типов баз данных.
  • Анализ: Систему добычи данных (Data Mining) в SQL Server всегда была легко использовать. Теперь же она стала еще лучше после добавления новых важных алгоритмов, таких, как Association Rules, Time Series, Regression Trees, Sequence Clustering, Neural Nets и Naïve Bayes. Также в кубы Analysis Services была добавлена новая важная аналитическая функциональность: система ключевых показателей производительности (Key Performance Indicator), скрипты MDX и другие встроенные сложные методы анализа. Доставка отчетов и среда управления отчетами в Reporting Services упрощают распространение сложной аналитики среди самой широкой аудитории.
  • Отчетность: Reporting Services расширяет платформу Microsoft Business Intelligence для более легкого доступа к ней бизнес-пользователя, которому необходимы результаты анализа. Reporting Services - это управляемая среда отчетности предприятия, устанавливаемая и управляемая через web-сервисы. Отчеты могут быть персонализированы и могут доставляться в различных форматах с рядом интерактивных возможностей и возможностей печати. Результаты сложного анализа могут попасть к широкой аудитории с помощью распространения отчетов в виде источников данных для систем интеллектуальной обработки данных. Нововведением в SQL Server 2005 является Report Builder. Report Builder предназначен для создания пользователями собственных отчетов своими силами. Инструменты компании Microsoft и ее партнеров для создания пользовательских запросов и аналитики останутся популярными для доступа к данным в Analysis Services и реляционных базах данных.
  • Управление: The SQL Server Management Studio объединяет управление всеми компонентами SQL Server 2005. С помощью Management Studio компоненты платформы интеллектуальной обработки данных получают улучшенные масштабируемость, надежность, доступность и программируемость. Эти улучшения предоставляют значительные преимущества специалисту в области интеллектуальной обработки данных.

Основной задачей компонентов интеллектуальной обработки данных в SQL Server 2005 является поддержка разработки и использования систем интеллектуальной обработки данных на предприятиях любого размера и всеми сотрудниками - не только менеджерами и аналитиками, но и руководителями оперативных подразделений и партнерами. Для выполнения этой задачи SQL Server 2005 создан как полноценная, интегрированная, легкая в использовании система, которая публикует данные в виде web-служб, обеспечивает прекрасную производительность на обычном аппаратном обеспечении и содержит множество новых возможностей, которые вы сможете использовать для разработки инновационных аналитических приложений.

С чего начать работу с SQL Server 2005?

Первое, что вы заметите во время установки SQL Server 2005, это то, что процесс установки компонентов интегрирован. Вам больше не нужно отдельно запускать установочные программы для дополнительных компонентов, таких, как Analysis Services. Если некоторый компонент, например, Reporting Services, недоступен для установки, скорее всего это значит, что Ваш компьютер не удовлетворяет требованиям для установки этого компонента. Вы можете посмотреть файл Readme с полным описанием требований для установки компонентов. Процесс установки включает установку следующих компонентов:
  • Ядро реляционной базы данных SQL Server
  • Integration Services
  • Analysis Services
  • Reporting Services
  • SQL Server Management Studio (набор инструментов управления базами данных)
  • Business Intelligence Development Studio (набор инструментов разработки приложений интеллектуальной обработки данных)

Reporting Services требует установленной и правильно настроенной службы IIS. Мы настойчиво рекомендуем выделить время на настройку и установку IIS, так как Reporting Services является неотъемлемой частью набора компонентов SQL Server 2005 Business Intelligence.

Клиенты, знакомые с Analysis Services, могут быть удивлены отсутствием репозитория метаданных в Analysis Services. В SQL Server 2000 репозиторий Analysis Services поставлялся в виде базы данных Microsoft Access, но в Analysis Services 2005 репозитория метаданных нет. Вместо него метаданные базы данных Analysis Services хранятся в виде XML файлов и управляются Analysis Services. При желании для этих XML файлов может быть установлен контроль исходного кода.

Мы рекомендуем вам использовать Business Intelligence Development Studio для разработки и SQL Server Management Studio для управления объектами базы данных интеллектуальной обработки данных и их поддержки. Вы можете создать пакеты Integration Services, кубы Analysis Services и модели добычи данных и в SQL Server Management Studio, но Business Intelligence Development Studio предлагает большие возможности для разработки и отладки приложений интеллектуальной обработки данных.

Скорее всего, вы сможете узнать больше, создавая новые приложения вместо обновления существующих пакетов DTS и баз данных Analysis Services. Пересоздание с нуля существующего пакета или базы данных, если таковые имеются, может оказаться более полезным. После того, как вы ознакомитесь с новыми инструментами, возможностями и концепциями, вам будет проще обновить существующие объекты.

Многие клиенты будут использовать инструменты SQL Server для разработки систем со знакомой им структурой интеллектуальной обработки данных из одной или более систем-источников данных, используя Integration Services для заполнения реляционного хранилища данных с измерениями, которое в свою очередь будет использоваться для заполнения базы данных Analysis Services. Но SQL Server 2005 предоставляет большое количество возможностей для отступления от традиционной схемы, исключая некоторые компоненты или делая их виртуальными.

Реляционное хранилище данных

Ядро реляционной базы данных SQL Server 2005 включает несколько интересных возможностей для создания и поддержки различных приложений с хранилищами данных. Эти возможности включают:
  • Табличные секции, обеспечивающие быструю загрузку данных и упрощенную поддержку очень больших таблиц.
  • Простое создание сервера отчетности
  • Улучшения в Transact-SQL, включая новые типы данных и новые аналитические функции
  • Выполнение онлайновых операций над индексами
  • Гранулированные операции резервного копирования/восстановления
  • Быстрая инициализация файлов
Сервер отчетности
Обычно для того, чтобы убрать реляционную оперативную систему отчетности из транзакционной базы данных, устанавливается и поддерживается отдельный сервер отчетности (reporting server). Сервер отчетности поддерживает образ транзакционной базы данных с некоторой задержкой обновления данных, чаще всего это образ предыдущего дня. Сервер отчетности используется для большинства операций отчетности и хранилища данных.

Microsoft SQL Server 2005 добавляет две новых возможности, зеркалирование баз данных (database mirroring) и снимки баз данных (database snapshot), которые облегчают создание и поддержку сервера отчетности. Теперь сервер отчетности SQL Server может иметь задержку обновления данных меньшую, чем раз в день. Также сервер отчетности спроектирован как резервная система для транзакционной системы.

Чтобы создать сервер отчетности, сначала создайте зеркальную копию базы данных, новую функциональность в SQL Server 2005, которая позволяет получить резервную систему (standby system) для "горячей замены" (high availability). Для дополнительной информации вы можете прочитать "Database Mirroring Concepts" в SQL Server Books Online. К зеркальной копии базы данных нет прямого доступа, и тут поможет еще одна новая функциональность, снимки базы данных.

Создание снимка базы данных на ее зеркальной копии предоставляет дополнительную копию данных для формирования отчетов. Снимок базы данных - это доступная только для чтения копия базы данных, сделанная в определенный момент времени, которая не обновляется по мере обновления данных в исходной базе. Снимки баз данных - это большая тема для обсуждения с множеством сценариев использования; для дополнительной информации вы можете прочитать "Understanding Database Views" в SQL Server Books Online. Сейчас будет достаточно отметить, что снимки баз данных очень эффективно хранят информацию в плане адресного пространства. Одновременно может существовать множество снимков баз данных для полного отражения данных для отчетности, хотя надо учитывать, что поддержка снимка базы данных оказывает некоторое влияние на саму транзакционную базу данных, на основе которой создан этот снимок.

Создавая снимок базы данных на ее зеркальной копии, вы фактически создаете резервный сервер для системы горячей замены. Снимок базы данных может служить для двух целей: в качестве сервера отчетности и в качестве резервного сервера для системы горячей замены.

Табличные секции
Секционированные таблицы и индексы содержат данные, разделенные на горизонтальные части таким образом, что группы строк разнесены по отдельным секциям. Производимые операции над данными, например, запросы, выполняются над таблицей или индексом как над целой сущностью.

Секционирование помогает:

  • Улучшить управляемость таблиц и индексов.
  • Улучшить производительность выполнения запросов на многопроцессорных компьютерах.

В реляционном хранилище данных таблицы фактов являются очевидными кандидатами на секционирование, и чаще всего используемой стратегией секционирования является разбиение на секции по временным периодам.

Ниже представлены три шага, описанные в "Creating Partitioned Tables and Indexes" в SQL Server Books Online, которые требуются для создания секционированной таблицы:

  1. Создание функции секционирования, которая определяет, как таблица, использующая эту функцию, будет секционироваться.
  2. Создание схемы секционирования, определяющей, как секции функции секционирования будут размещены в файловой группе.
  3. Создание таблицы или индекса с использованием схемы секционирования.

Несколько таблиц могут использовать одну и ту же схему секционирования.

В этом документе рассматривается Range секционирование таблиц фактов, но этот документ не является полным описанием или учебным пособием по секционированию таблиц. Для дополнительной информации о секционировании таблиц смотрите SQL Server Books Online.

Чаще всего используемой схемой секционирования является секционирование таблицы фактов по временным периодам (date range), например, по годам, кварталам, месяцам или даже дням. В большинстве случаев секционирование большой таблицы или таблиц фактов по временным периодам дает большие преимущества в управляемости. Для лучшей производительности выполнения запросов таблица измерения Time также должна быть секционирована с помощью той же схемы секционирования.

  • Секционированная таблица ведет себя так же, как и как целая таблица.
  • Запросы к секционированной таблице корректно обрабатываются.
  • Прямые команды на создание, изменение или удаление строк в таблице автоматически выполняются в нужной секции или секциях.
Использование табличных секций для быстрой загрузки данных
Большинство приложений хранилищ данных пытаются загрузить все увеличивающиеся объемы данных в течение малого - и все уменьшающегося - времени, отведенного на окно загрузки. Типичный процесс загрузки начинается с получения данных из нескольких систем-источников данных, после чего следуют шаги очистки, трансформации и синтеза данных из этих источников. Приложение управления данными ограничено тем, что должно выполнить весь процесс получения, трансформации и загрузки данных в течение окна загрузки. Обычно бизнес-пользователи системы настойчиво требуют, чтобы время, в течение которого хранилище данных будет недоступно для выполнения их запросов, было минимальным. Шаг "записи" в приложении управления данными, в течение которого в существующее хранилище данных добавляются новые данные, должен быть спроектирован таким образом, чтобы данные загружались быстро и с минимальным влиянием на работу пользователей.

Для быстрой загрузки данных модель восстановления базы данных должна быть либо Bulk Logged, либо Simple, а таблица должна быть либо пустой, либо содержать данные без индексов. Если эти требования выполняются, возможна загрузка без логирования. В SQL Server 2000, до появления секционированных таблиц, эти требования обычно выполнялись только при начальной загрузке данных истории в хранилище данных. Некоторые клиенты с большими хранилищами данных строили квази-секционированную структуру, создавая представление с UNION ALL для объединения отдельных физических таблиц; эти таблицы заполнялись при каждой загрузке без логирования. Такое решение проблемы не было идеальным. Но теперь в SQL Server 2005 секционированные таблицы обеспечивают превосходную функциональность.

В SQL Server 2005 вы не можете выполнить прямую загрузку данных в секцию без логирования. Однако вы можете осуществить загрузку данных в отдельную таблицу, которую мы назовем псевдо-секцией. При соблюдении определенных условий вы можете произвести переключение секций в секционированной таблице и включить псевдо-секцию в секционированную таблицу, что является операцией над метаданными, которая выполняется очень быстро. Такой подход удовлетворяет двум следующим требованиям:

  • минимизации общего времени загрузки: загрузка в псевдо-секцию выполняется без логирования и
  • минимизации влияния загрузки данных на конечного пользователя и обеспечения интеграции хранилища данных: загрузка данных в псевдо-секцию может производиться в одно и тоже время с выполнением пользовательских запросов к хранилищу данных. Приложение управления данными может подождать, пока все таблицы фактов будут загружены и готовы к включению их в секционированную таблицу. Операция включения этих таблиц в секционированную таблицу выполняется очень быстро, за доли секунды.

Кроме того, для псевдо-секции может создаваться резервная копия как для отдельной таблицы, что повышает управляемость системы.

Использование табличных секций для быстрого удаления данных
Во многих хранилищах данных есть скользящее окно текущих детализированных данных в хранилище данных. Например, таблица фактов может хранить данные за три, пять или десять лет. Периодически самые старые данные из таблицы удаляются. Основными причинами удаления этих данных являются повышение производительности выполнения запросов и минимизация затрат на хранение данных.

Секции в SQL Server 2005 значительно упрощают удаление устаревших данных из большой секционированной таблицы фактов. Просто создайте пустую псевдо-секцию, как было описано выше, и выполните переключение секций в секционированной таблице. В результате секционированная таблица будет содержать пустую секцию вместо заполненной секции, а в псевдо-секции появятся данные. Для этой псевдо-секции можно сделать резервную копию, при необходимости псевдо-секцию можно очистить или удалить.

При необходимости вы можете переопределить функцию секционирования для объединения всех пустых секций в одну.

Улучшения в Transact-SQL
Новые типы данных
В Transact-SQL появилось несколько новых важных типов данных, полезных для использования в хранилищах данных:
  • Типы Varchar(max), nvarchar(max) и varbinary(max) могут хранить до 2 гигабайт данных. Они могут быть полезны в качестве альтернативы типам text, ntext и image. Эти расширенные символьные типы можно использовать для хранения расширенных метаданных и другой описательной информации в хранилище данных.
Новые аналитические функции
В Transact-SQL было добавлено несколько новых аналитических функций, предоставляющих базовые аналитические возможности. Эти функции скорее будут полезны для хранилищ данных, которые выполняют пользовательские запросы на реляционной базе данных, а не в Analysis Services. Также эти сложные вычисления обычно используются для ранжирования данных во время тестирования для выбора значимых атрибутов данных.

ROW_NUMBER. Возвращает порядковый номер строки в результирующем наборе данных.

RANK. Возвращает ранг строк в результирующем наборе данных. Функция RANK идентична ROW_NUMBER на отсортированном наборе данных, но используется для работы с совпадающими строками. Все строки с одним и тем же значением сортировки получают ранг, совпадающий с порядковым номером первой из таких строк. Следующий ранг также совпадает с порядковым номером, полученным с помощью ROW_NUMBER. Другими словами, если есть две строки с одинаковым значением сортировки, которое идет первым, то они получат RANK=1, а третья строка будет иметь RANK=3. Строк с RANK=2 не будет.

DENSE_RANK. Возвращает ранг строк в результирующем наборе данных. Функция DENSE_RANK похожа на функцию RANK, но при ее использовании нет промежутков между рангами, которые есть при использовании функции RANK. В приведенном выше примере первая и вторая строки будут иметь RANK=1, а третья строка будет иметь RANK=2.

NTILE. Делит отсортированный результирующий набор данных на группы строк приблизительно одинакового размера.

Операторы PIVOT и UNPIVOT
Оператор PIVOT позволяет вам сгенерировать отчет с перекрестными ссылками (cross-tab report), разворачивая строки результирующего набора данных в столбцы по значению определенного столбца. Например, если таблица содержит данные о "Actuals" и "Budgets" в отдельных строках, то можно использовать оператор PIVOT для генерации отчета с перекрестными ссылками со столбцами [Actuals] и [Budgets] в строке.

Таким же образом можно использовать оператор UNPIVOT для разделения одной строки на несколько. В приведенном выше примере строка со столбцами [Actuals] и [Budgets] может быть превращена в несколько строк со значением соответствующего столбца в каждой.

В более ранних версиях SQL Server можно было написать сложные Transact-SQL команды SELECT для вращения данных. Операторы PIVOT и UNPIVOT предоставляют прямой механизм для вращения данных.

Рекурсивные запросы
Существуют несколько случаев, когда "рекурсивные запросы" очень полезны. Новая функциональность в SQL Server 2005 позволяет достаточно легко создавать рекурсивные запросы.

Рекурсивный запрос - это запрос к таблице с самообъединением. Два самых распространенных примера таких таблиц - это таблицы со списком сотрудников и менеджеров, и таблицы с ведомостями материалов, из которых изготовлены товары. Примером таблицы с самообъединением является таблица Employee в базе данных AdventureWorks.

Всегда было несложно написать запрос к таблице с самообъединением для выборки прямых отношений, например, для определения сотрудников, которые напрямую подчиняются менеджеру. Однако намного сложнее ответить на вопрос: "Сколько сотрудников работает в отделе менеджера?".

Для решения этой проблемы в реляционную базу данных SQL Server 2005 добавлена новая функциональность, которая называется "Рекурсивные общие табличные выражения" (Recursive common table expressions). Для дополнительной информации смотрите "WITH <common_table_expression>" в SQL Server Books Online.

Извлечение, преобразование и загрузка данных (Extract, Transformation, and Loading - ETL)

Integration Services (преемник DTS в SQL Server 2000) является нововведением в SQL Server 2005. DTS - популярный компонент SQL Server 2000, но Integration Services был полностью переработан по сравнению с DTS, чтобы стать ETL платформой предприятия. Integration Services предоставляет широкий инструментарий и очень высокую производительность, которые требуются для ETL приложений уровня предприятия. Integration Services является полностью программируемой, интегрируемой и расширяемой системой, что делает ее идеальной ETL платформой.

В следующей таблице перечислены возможности Integration Services. Для более подробной информации о применении Integration Services для разработки ETL систем, смотрите SQL Server Books Online.

Разработка пакетов
Возможности Integration Services в SQL Server 2005Разработка ETL системы уровня предприятияETL платформа
Использование графического пользовательского интерфейса Business Intelligence Development Studio для создания пакетов Integration Services для приложений управления данными. Пакеты Integration Services проектируются, разрабатываются и отлаживаются в Business Intelligence Development Studio с помощью перетаскивания задач из панели инструментов, установки их свойств и указания для задач ограничений предшествования. 
Использование мастеров SQL Server Management Studio для разработки простых пакетов Integration Services, которые выполняют обычные задачи, такие, как копирование базы данных (Copy Database). 
Поставщики программного обеспечения могут встраивать функциональность Integration Services в свои продукты, создавая при необходимости мастера для генерации собственных пакетов. 
Отделение потока управления от потока данных. Большинство пакетов Integration Services содержат множество задач потока управления, а также циклы и последовательности задач, которые настраиваются в панели потока управления (control flow pane). Одна из задач потока управления, задача Pipeline, является "рабочей лошадкой" пакета и имеет свою собственное окно проектирования для создания потоков данных. Разделение потока управления и потока данных упрощает чтение пакетов. 
Можно определить и просматривать переменные пакетов. Переменные имеют область видимости, например, область видимости пакета, цикла или задачи. 
Сложные ETL системы могут быть созданы с помощью пакетных сетей, с одним пакетом, вызывающим остальные. Вызываемые пакеты могут эффективно повторно использовать логику, переменные и контекст. При этом необходимость во вложенных пакетах теперь гораздо меньше, чем в DTS 2000. 
Среда конфигурации пакета является расширяемой системой для настройки поведения пакета в различных ситуациях. 
Пакеты Integration Services хранятся в виде XML файлов в файловой системе или в SQL Server. Для XML файлов Integration Services может быть назначен контроль исходного кода.
Мастер миграции пакетов DTS 2000 помогает проводить миграцию пакетов в Integration Services и выдает предупреждения, если при изменении пакетов под новую версию возникают проблемы. 
В SQL Server 2005 включен DTS 2000 runtime для запуска пакетов DTS 2000 без их изменения под новую версию. 
Операции в пакетах и результаты выполнения пакетов логируются в различных форматах и с помощью разных провайдеров.
Логика обработчика событий может быть определена один раз и использована много раз.
Интеграция с WMI означает, что пакеты могут реагировать на внешние события (например, завершение копирования файла) или генерировать события WMI, которые могут обработать другие процессы.
Возможность перезапуска пакетов с транзакционным контролем и контрольными точками для перехвата ошибок помогает администраторам управлять сложными пакетами, обрабатывающими большие объемы данных. 
Поток управления
Возможности Integration Services в SQL Server 2005Разработка ETL системы уровня предприятияETL платформа
Ограничения предшествования: Вы можете разработать пакет, передающий управление разным задачам в случае успешного выполнения предыдущей задачи, ошибки при выполнении или завершения выполнения. 
Задачи с циклами включают циклы For, ForEach и Sequence. Разработчики пакетов могут легко выполнять различные действия над всеми (или над частью) таблицами в базе данных, файлами в папке или разделами куба в Analysis Services. 
Глубокая интеграция с Analysis Services, с задачами управления, которые автоматически выполняют команды DDL Analysis Services, обрабатывают объекты Analysis Services или выполняют запросы добычи данных. Как будет рассмотрено далее в этом документе, канал Integration Services также интегрируется с Analysis Services. 
Скрипты VB.NET доступны с помощью задачи Script Task. Другая задача, в которой можно использовать скрипты, ActiveX Script Task, в основном используется для обратной совместимости с DTS 2000. 
Задачи коммуникации включают:
  • Очередь сообщений
  • Отправка писем по электронной почте
 
Другие задачи потока управления включают:
  • Массированная загрузка данных (Bulk insert)
  • Выполнение пакета (Execute package)
  • Выполнение процесса (Execute process)
  • Выполнение SQL команд (Execute SQL)
  • Работу с файловой системой (File system)
  • FTP
 
Дополнительные задачи могут быть созданы с помощью объектной модели Integration Services без особых усилий. 
Поток данных
Возможности Integration Services в SQL Server 2005Разработка ETL системы уровня предприятияETL платформа
Множество источников данных, трансформаций и приемников данных в канале потока данных. Данные считываются, комбинируются, обрабатываются и только после всех манипуляций записываются. Необходимость во множестве операций записи в таблицы уменьшена или исключена, также значительно улучшена производительность трансформации данных. 
Задача Integration Services Pipeline считывает данные из множества гетерогенных источников данных. Расширяемая архитектура источников данных теперь позволяет получать данные из плоских файлов, источников OLEDB (включая DB2 и Oracle), и бинарных файлов. Также планируется поддержка дополнительных источников данных, включая источники, выдающие данные, структурированные каким-либо образом.
Дополнительные источники данных могут быть легко разработаны компанией Microsoft и ее партнерами. 
Данные из множества источников данных могут быть объединены с помощью операторов Join, Lookup и Union. Эти операторы выполняются в памяти и не требуют записи в базу данных или файл. 
Поток данных может быть разделен с помощью трансформаций Conditional Split и Multicast. Ядро компилятора Integration Services определяет, какие потоки данных могут быть обработаны параллельно. 
Трансформации Character Map, Copy Map, Data Conversion и Derived Column предоставляют большие возможности для преобразования строк. Эти операторы являются скорее мастерами, чем просто операциями преобразования, и позволяют выполнять большое количество разнообразных трансформаций данных. 
Некоторые задачи по преобразованию данных требуют сравнения данных во множестве строк. Трансформации Sort и Aggregate выполняют эти преобразования в потоке данных с огромной производительностью, намного превышающей производительность агрегирования в базе данных. 
Некоторые задачи по преобразованию данных требуют сложной логики, такие, как Fuzzy Matching, Fuzzy Grouping, Time Dimension Generation, Pivoting и Unpivoting. Другие задачи, как, например, Dimension Key Management, требуют нескольких шагов для выполнения. Специальные мастера и технологии делают эти сложные операции доступными всем пользователям. 
Преобразованные данные могут быть записаны в гетерогенные приемники данных, включая таблицы SQL Server, таблицы баз данных из OLEDB, плоские и бинарные файлы.
Преобразованные данные могут быть интегрированы с другими компонентами системы интеллектуальной обработки данных от Microsoft, включая базы данных Analysis Services и модели добычи данных. 
Потоки ошибок из шага трансформации могут быть обработаны различными способами:
  • Трансформации могут самостоятельно "исправлять" данные и пересылать их повторно в основной поток.
  • Строки с ошибками могут быть логированы в таблицы или файлы для последующего их изучения и повторной отправки.
Дополнительные трансформации и приемники данных могут быть легко разработаны компанией Microsoft и ее партнерами. 
Разработка и отладка
Возможности Integration Services в SQL Server 2005Разработка ETL системы уровня предприятияETL платформа
Разработчик пакетов может определять точки прерывания (Breakpoints) потока управления в каждой задаче потока управления. Точка прерывания может быть определена до выполнения задачи, после выполнения, или в нескольких местах во время выполнения задачи в процессе отладки. 
Разработчик пакетов может добавлять Data Viewer в каждую трансформацию потока данных. Во время отладки Data Viewer выводит содержимое потока преобразованных на момент вывода данных. 
Business Intelligence Development Studio встроен в Visual Studio. Задачи со скриптами и другие задачи с кодом языков программирования используют возможности этой среды разработки.
Развертывание пакета помогает пользователю связывать вместе все компоненты пакета, включая пользовательские скрипты и исполняемые файлы, для распространения в тестовых, рабочих и других пользовательских системах.
Использование Integration Services разработчиком DTS 2000
Пользователи DTS 2000 разработали набор методов для выполнения сложных операций. Эти методы - особенно написание самообновляющихся пакетов - в Integration Services не нужны. Используйте переменные и инфраструктуру конфигураций для написания динамических пакетов; не пытайтесь писать самообновляющиеся пакеты.

Элегантная инфраструктура переменных и конфигураций также уменьшает необходимость создания сложных систем вложенных пакетов. Хорошо спроектированный единый пакет обычно удовлетворяет множеству требований; например, пакет может повторно использоваться в различных конфигурациях для загрузки большого количества таблиц измерений в хранилище данных с измерениями. В DTS 2000 сложная сеть DTS пакетов может состоять из 50-100 пакетов; в Integration Services десять пакетов уже считаются сложной сетью пакетов.

Analysis Services

SQL Server 2000 Analysis Services состоит из двух основных дополняющих друг друга функциональных частей: On-Line Analytical Processing (OLAP) и Data Mining. Эти два компонента присутствуют и в Analysis Services 2005 в качестве краеугольных камней аналитических приложений.

Улучшения, внесенные в OLAP функциональность Analysis Services 2005, можно сгруппировать в две категории:

  • Предоставление возможности создания новых типов аналитических приложений, или путем добавления абсолютно новой функциональности, или путем значительного упрощения создания сложной функциональности.
  • Повышение доступности аналитических приложений на предприятии
Новые возможности или улучшенная функциональностьДизайн и разработкаУправление и операции
Универсальная модель измерений (Unified Dimensional Model) объединяет лучшие характеристики реляционной и OLAP моделей данных. Более подробно универсальная модель измерений рассматривается далее в этом документе. 
Упреждающее кэширование (Proactive caching) дает вам возможность управлять приложениями с небольшой задержкой обновления данных практически без затрат на управление. Более подробно упреждающее кэширование рассматривается далее в этом документе.
Система ключевых показателей производительности (Key Performance Indicator, KPI) предоставляет простой серверный механизм определения корпоративных показателей. KPI содержит выражения значения, целевого значения, текущего статуса и тенденции, которые выводятся с помощью простых графических изображений, таких, как индикаторы (gauges) и светофоры (stoplights). 
Механизм Translations обеспечивает простой, централизованно управляемый механизм для хранения и вывода аналитических данных пользователям на их языках. Одна аналитическая база данных может быть представлена на разных языках. 
MDX скрипты (MDX Scripts) являются новым механизмом определения вычисляемых членов, именованных наборов данных и вычислений ячеек.
  • Синтаксис MDX скриптов упрощен и улучшен. MDX скрипты теперь можно отлаживать пошагово.
  • Вычисления MDX скриптов могут кэшироваться и сохраняться, что обеспечивает великолепную производительность выполнения запросов даже для сложных вычислений.
  • Вычисления MDX скриптов могут поддерживать динамические расчеты реального времени.

MDX скрипты рассматриваются более подробно далее в этом документе.

Хранимые процедуры Analysis Services позволяют создавать внешние процедуры на таких языках программирования общеязыковой среды выполнения, как C++, VB или C. Хранимые процедуры расширяют возможности, предоставляемые пользовательскими функциями (user defined functions, UDFs) Analysis Services 2000. Более подробно хранимые процедуры Analysis Services рассматриваются далее в этом документе. 
Улучшения при записи в куб (data writeback) включают повышенную в десять раз производительность. Аналитическое приложение может вносить изменения в агрегатную ячейку и при необходимости размещать агрегированные данные в данных листового уровня.
Встроенные бизнес-правила, инструменты и мастера упрощают создание сложных систем:
  • Меры с частичным суммированием (Semi-additive measures)
  • Time Intelligence
  • Account intelligence
  • Финансовые агрегаты (Financial Aggregations)
  • Конвертация валют (Currency Conversion)
  • Генерация измерения времени (Currency Conversion)
 
Представления источников данных (Data Source Views) обеспечивают механизм для упрощения и расширения реляционной базы данных, лежащей в основе аналитического приложения. Более подробно представления источников данных рассматриваются далее в этом документе. 
Языком определения данных (data definition language) в Analysis Services является XML. Репозитория метаданных Analysis Services больше нет, вместо него теперь используются файлы XML, которые хранятся на сервере Analysis Services и им же управляются.
Web сервисы: XML for Analysis (XML/A) является встроенным стандартным протоколом для коммуникации с сервером Analysis Services. Появились новые типы приложений, простые в разработке - приложения, в которых объединены аналитика и операции реального времени.
  • XML/A в виде встроенного протокола позволяет сконфигурировать клиентов Analysis Services таким образом, что на них не хранится информация из Analysis Services (zero footprint), а также автоматически делает каждый сервер web-сервисом.
  • Тонкий клиент Win32 (light-footprint) оставлен для обратной совместимости с инструментами, которые работают с Analysis Services 2000 через OLE DB для OLAP, ADOMD, and ADOMD.Net. Многие клиенты и разработчики будут и дальше использовать объектную модель ADOMD.Net для создания собственных приложений на основе Analysis Services.
Расчеты централизованы на сервере. Analysis Services 2005, в отличие от Analysis Services 2000, все расчеты выполняет на сервере. Это дает значительные преимущества:
  • На клиентах не хранится информация из Analysis Services (zero footprint); отпадает необходимость в клиентском кэше.
  • Производительность выполнения запросов для сложных вычислений значительно увеличена.

Ценой этих улучшений является небольшое снижение производительности выполнения очень простых запросов, которые в Analysis Services 2000 выполнялись из клиентского кэша.
Инструменты разработки и управления (Business Intelligence Development Studio и SQL Server Management Studio) являются первой полной средой разработки для приложений интеллектуальной обработки данных. Новые инструменты помогают видеть и моделировать все ваши данные, и дают возможность быстрой разработки приложений.
В Analysis Services 2005 была улучшена модель прав доступа. Различные роли и права доступа включают:
  • Администратор сервера (Server Administrator)
  • Администратор базы данных (Database Administrator)
  • Обработка объекта
  • Просмотр структуры объекта (права даются на каждый объект)
  • Изменение структуры объекта
 
В Analysis Services 2005 включены более 150 изменений модели безопасности. Улучшения в модели безопасности включают:
  • Analysis Services "безопасен по определению" и включает множество уровней защиты.
  • Административные права доступа гранулированы; с отдельными правами доступа на различные объекты базы данных и на внесение изменений в структуру базы.
  • Локальные кубы могут шифроваться.
  • Analysis Services работает с наименьшим возможным уровнем прав доступа.
  • Взаимодействие между клиентом и сервером может быть зашифровано и подписано, чтобы пакеты не могли быть перехвачены, прочитаны, подменены или испорчены.
  • На сервере можно установить режим шифрования, и сервер будет отказывать в доступе клиентам, не использующим шифрование
 
Сервер Analysis Services 2005 генерирует события трассировки сервера (server trace events), которые могут отслеживаться с помощью таких инструментов, как SQL Server Profiler, который давно используется для реляционных баз данных SQL Server.
  • Отслеживание доступа к приложению и использования приложения.
  • Отслеживание событий приложения и сервера для повышения управляемости сервера.
  • Отслеживание ошибок приложения и работа с Microsoft Support для более легкого разрешения проблем.
 
Повышенная производительность выполнения расчетов является результатом следующих улучшений:
  • Кэш расчетов сервера находится в совместном доступе пользователей
  • Оптимизатор запросов "переписывает" запрос на эквивалентный с повышенной производительностью.
  • Повышенная производительность обработки NonEmpty
  • Внесены улучшения меры Distinct Count
 
Analysis Services 2005 включает широкую поддержку архитектур среднего слоя. Объектная модель тонкого клиента (light object model footprint) предоставляет масштабируемый средний слой - масштабируемый до тысяч одновременно работающих пользователей. Скорость развертываний по глобальной сети, хотя это всегда не рекомендовалось, повышена по сравнению с SQL Server 2000. 
Analysis Services 2005 поддерживает неограниченные размеры измерений. Измерениям больше не требуется кэшироваться в памяти.
Analysis Services 2005 поддерживает параллельную обработку разделов в стандартном наборе управленческих инструментов. 
SQL Server Management Studio может использоваться для управления всеми базами данных SQL Server. Это приложение обеспечивает интегрированное управление реляционной базой данных и Analysis Services, включая интегрированные инструменты для:
  • Управления сервером через консоль (вместо Enterprise Manager и Analysis Manager),
  • Анализа запросов (SQL и MDX),
  • Профилирования событий реляционного ядра и ядра Analysis Services,
  • Инструменты "Flight Recorder" и "Capture and Replay" автоматически перехватывают события сервера, что может сильно помочь вам (или Microsoft Services) в диагностировании проблемы.
 
Новая объектная модель, Analysis Management Objects (AMO), заменяет DSO. Модель DSO оставлена для обратной совместимости, а AMO предоставляет новые возможности, среди которых можно упомянуть возможность скриптования создания или изменения объекта из инструментов управления и разработки.

Существует два основных пути создания аналитической базы данных:

  • Полностью вручную: начав с источника данных, обычно с реляционного источника данных, определить измерения, кубы, ключевые показатели производительности, расчеты и модели добычи данных (data mining models). Этот путь подходит для клиентов с существующим хранилищем данных или рынком данных. На первом экране мастера Cube Wizard этот вариант называется "Use existing DB/Data Warehouse".
  • Настраиваемый шаблон: начав с шаблона, определить и сгенерировать все приложение, включая реляционные базы данных, пакеты Integration Services и OLAP базу данных Analysis Services. Эти компоненты разработаны и созданы для эффективной совместной работы как единое приложение. Этот вариант подходит для клиентов, которые устанавливают полное решение интеллектуальной обработки данных из шаблона. На первом экране мастера Cube Wizard этот вариант называется "Design BI model without data source".

И для одного, и для другого подхода, базовый дизайн системы предполагает известную структуру интеллектуальной обработки данных из одной или нескольких систем-источников данных, поставляющих данные для реляционного хранилища данных с измерениями, которое в свою очередь используется для заполнения базы данных Analysis Services. Однако SQL Server 2005 предоставляет много возможностей для отступления от этой традиционной схемы, исключая различные компоненты или делая их виртуальными. Некоторые альтернативные системы рассматриваются в разделе Универсальная модель измерений (Unified Dimensional Model) далее в этом документе.

Создание пользовательской базы данных из существующего источника данных
Первый метод создания базы данных Analysis Services больше всего знаком пользователям SQL Server 2000. Создание базы данных начинается с базы- источника данных любой структуры:
  • База данных с измерениями, структурированная в виде таблиц фактов и таблиц измерений или
  • Любая другая структура базы данных, включая нормализованные транзакционные системы.

Возможность получать данные из нормализованной базы данных является серьезным отличием от Analysis Services 2000, который требовал наличия структуры измерений типа "звезда" (star), "снежинка" (snowflake) или "плоская структура" (flattened). Возможность получения данных из нормализованной базы данных упрощает разработку приложений интеллектуальной обработки данных с очень низкой задержкой обновления данных.

Многие требования пользователей могут быть выполнены просто и с небольшими затратами с помощью создания базы данных Analysis Services напрямую на транзакционной базе данных, без предварительного создания формального хранилища данных. Если ваши данные нуждаются в минимальных изменении, очистке и интеграции, прежде чем они станут полезными для работы, то рассмотрите использование базы данных Analysis Services вместо существующей реляционной структуры. Вы сможете получить мощь и интерактивность Analysis Services и лучше управлять загрузкой данных в ваши транзакционные системы.

Хотя есть возможность создать и поддерживать базу данных Analysis Services напрямую из транзакционных систем, многие аналитические требования лучше реализуются с помощью предварительного создания реляционного хранилища данных. Сложная интеграция данных и задачи управления изменением данных лучше решаются с помощью классической архитектуры хранилищ данных, с базой данных Analysis Services в виде ядра выполнения запросов и анализа.

Источники данных и представления источников данных
Первым шагом к построению нового аналитического приложения является создание нового проекта Analysis Services в Business Intelligence Development Studio. После создания пустого проекта вам нужно создать источник данных (Data Source) для соединения с базой-источником данных, которая может находиться в любой поддерживаемой реляционной системе управления базами данных.

В источнике данных хранится информация для соединения с базой-источником данных. В представлениях источника данных (Data Source Views) содержится информация о наборе таблиц в базе-источнике данных. Эта информация не ограничена физической структурой таблиц в базе-источнике данных; вы можете добавить такую информацию, как связи, удобные названия для таблиц и столбцов, вычисляемые столбцы и именованные запросы. Представления источника данных могут совместно использоваться различными проектами интеллектуальной обработки данных. Представления источника данных особенно полезны, когда:

  • База-источник данных содержит тысячи таблиц, из которых только относительно небольшое количество используется в каждом отдельном приложении интеллектуальной обработки данных.
  • База данных Analysis Services использует данные из множества таких источников данных, как базы данных, серверы, плоские файлы и различные РСУБД.
  • Разработчик системы интеллектуальной обработки данных не имеет административных прав на базу-источник данных и не имеет прав на создание физических представлений в базе-источнике данных или на изменение базы-источника данных.
  • Разработчику системы интеллектуальной обработки данных требуется работать в "автономном" режиме, без соединения с базой-источником данных. Задачи дизайна и разработки при этом решаются на представлении источника данных, которое отсоединено от базы-источника данных.

Усилия на задание удобных названий и связей в представлении источника данных окупаются упрощением разработки аналитического приложения.

Создание измерений и кубов
После создания представления источника данных вы можете создать куб, нажав правой кнопкой мыши на кнопку "Cubes" в панели Solution Explorer и выбрав "New cube". Вам будет предложено выбрать автоматическое построение куба (auto build). Если вы решите использовать автоматическое построение куба, вам надо будет выбрать, какой куб создавать - оптимизированный для разворачивания (pivoting) или оптимизированный для отчетности (reporting). Инструмент автоматического построения куба исследует базу данных и количество взаимосвязей между данными в представлении источника данных и определяет таблицы как таблицы фактов, таблицы измерений или промежуточные таблицы между таблицами фактов и измерений, с помощью которых моделируется связь многие-ко-многим. Разница между оптимизацией кубов и измерений для разворачивания или отчетности небольшая. Единственной разницей является попытка при автоматическом построении куба создать иерархические связи между атрибутами в измерении. Так как иерархии очень легко создавать и удалять, выбор типа оптимизации не является критичным.

Если нажать кнопку "Finish" сразу после этого начального окна, Cube Wizard создаст базу данных, измерения, иерархии, атрибуты и кубы Analysis Services. После этого вы сможете вручную отредактировать сгенерированную мастером структуру, но, в общем случае, структура базы данных получается лучше, если двигаться по всем страницам мастера, делая в них обдуманный выбор.

После экспериментов с Cube Wizard взгляните на Dimension Wizard, который вы можете запустить, нажав правой кнопкой мыши на "Dimensions" на панели Solution Explorer, и быстро создать с его помощью самые сложные измерения. После тщательного определения больших измерений, таких, как Product, Customer и Time, вы можете запустить Cube Wizard и добавить в базу данных эти заранее подготовленные измерения, когда понадобится.

Создание и развертывание
Рассмотренные до этого момента шаги просто создавали определения и структуры измерений и кубов в виде XML файлов на вашем компьютере, используемом для разработки. Business Intelligence Development Studio и Configuration Manager позволяют управлять процессом создания и развертывания вашего проекта на целевом сервере. По умолчанию целевым сервером разработки является ваш локальный сервер. Вы можете создать альтернативные конфигурации для развертывания в разных средах. Ключевые свойства проекта, такие, как название целевого сервера и строки соединения с источниками данных, могут отличаться в разных конфигурациях.

Для предварительного просмотра и тестирования кубов и измерений в течение процесса разработки, создайте и разверните проект на заранее определенном целевом сервере, выбрав Deploy в главном меню Business Intelligence Development Studio. Также вы можете нажать F5 или выбрать Debug Start в главном меню Business Intelligence Development Studio. Будут запущены один или несколько инструментов отладки и просмотра, в зависимости от того, что вы указали при выборе Deploy. В зависимости от контекста, процесс развертывания запустит браузер кубов, отладчик MDX скриптов или браузер ключевых показателей производительности.

Возможно, вы захотите посмотреть на прототип системы после определения ее измерений, мер и кубов. Запустите обработку на базе данных разработки с небольшим количеством данных и проверьте, что данные и структуры выглядят так же, как и ожидалось.

Возможно, вы захотите добавить в прототип некоторые из наиболее сложных компонентов базы данных Analysis Services - ключевые показатели производительности (Key Performance Indicators), действия (Actions) и вычисления (Calculations). Если ваша база данных будет использоваться разными пользовательскими группами, которым будут нужны разные представления данных, рассмотрите использование проекций (Perspectives) и различных планов безопасности. Если вы планируете развернуть базу данных в разных странах для пользователей, говорящих на разных языках, вы можете добавить локализованные имена объектов с помощью инструмента Translations. И, наконец, в прототипе нужно оценить различные физические конфигурации, такие, как разделы (Partitions) и различные варианты упреждающего кэширования (Proactive Caching).

После разработки базы данных Analysis Service объекты базы данных разворачиваются на тестовом, промежуточном или рабочем сервере. Результат проекта, полученный на этапе сборки, может быть использован в качестве входящей структуры в утилите развертывания Analysis Services. Эта утилита помогает развертывать базу данных.

Создание пользовательской базы данных из шаблона
Ранее мы описали основные шаги создания пользовательской базы данных Analysis Services из некоторого источника. Такой подход с помощью Cube Wizard и Dimension Wizard аналогичен стандартному методу создания базы данных в Analysis Services 2000.

Альтернативным методом создания аналитического приложения SQL Server 2005 является выбор "Design BI model without data source" во втором окне мастера Cube Wizard. Путь по окнам мастера аналогичен такому же пути в SQL Server 2000 Accelerator for Business Intelligence. Мастер генерирует полноценное пользовательское приложение из шаблона, включая сложные структуры измерений и аналитические компоненты, а также при необходимости добавляет реляционное хранилище данных и пакеты Integration Services. Шаблоны могут поставляться Microsoft, интеграторами или независимыми поставщиками программного обеспечения.

Вы можете создать идентичные базы данных Analysis Services с помощью мастеров двумя путями - создать базу данных из базы-источника данных или базу данных из шаблона. Первый подход подразумевает, что вы создаете систему полностью вручную. Имена объектов и структур произвольны и начальный дизайн системы создаются на основе имен и структур базы-источника данных. Из шаблона также создается пользовательская база данных, но начальный дизайн создается на основе экспертного шаблона для определенной области.

Многие пользователи комбинируют эти два подхода. Широко распространенным случаем является создание базы данных Analysis Services из существующего источника и генерация измерения Time из шаблона.

Универсальная модель измерений
Analysis Services 2005 размывает границу между реляционной и многомерной OLAP базами данных. Базы данных OLAP всегда давали огромные преимущества аналитическим приложениям. Основными из этих преимуществ являются:
  • Превосходная производительность выполнения запросов,
  • Аналитическая глубина и
  • Легкость использования бизнес-аналитиками.

Но раньше эти преимущества имели свою цену. В базах данных OLAP, включая Analysis Services 2000, было тяжело реализовать:

  • Сложные схемы, включая связи многие-ко-многим,
  • Детализированную отчетность по большому набору атрибутов и
  • Данные с небольшой задержкой обновления.

Скомбинировав лучшие качества традиционных OLAP анализа и реляционной структуры, Analysis Services 2005 представляет единую универсальную модель измерений, которая удовлетворяет требования, предъявляемые и к одной, и к другой системе. Набор кубов и измерений, определенных в SQL Server 2005, называется универсальной моделью измерений (Unified Dimensional Model, UDM). Преимущества и гибкость UDM внесут большие коррективы в процесс разработки. Раньше архитектор системы интеллектуальной обработки данных выбирал или реляционное, или OLAP хранилище, сравнивая преимущества этих альтернативных инфраструктур и издержки на них. Теперь архитектор разрабатывает универсальную модель измерений и определяет точку между двумя традиционными полюсами, в которой нужно расположить логический дизайн и физическую конфигурацию системы Analysis Services.

Измерения , основанные на атрибутах
Analysis Services 2005 создает куб скорее вокруг атрибутов измерений, чем иерархий измерений. В Analysis Services 2000 измерения создавались в основном на основе иерархий, таких, как {Year, Month, Day} или {Country, Region, City}. Такие иерархии требовали строгих связей между уровнями данных. Атрибуты, которые позиционировались как свойства членов и виртуальные измерения, были вторым сортом. Хотя и была возможность добавлять атрибуты в физические измерения, проблемы с производительностью не давали широко использовать эту технологию. Пользователи, знакомые с реляционными структурами, были озадачены таким большим вниманием к иерархиям в базах данных OLAP.

Структура Analysis Services 2005 больше похожа на реляционную структуру измерений. Измерение содержит множество атрибутов, каждый из которых может быть использован для запросов, возвращающих отфильтрованные данные или срезы, и каждый из которых может быть добавлен в иерархии, вне зависимости от взаимосвязей между данными.

Пользователи с опытом работы в OLAP понимают значение строгих иерархий, когда вы можете быть уверены, что Cities строго относятся к Regions и Countries. Такие естественные иерархии существуют и должны определяться, когда это необходимо: производительность выполнения запросов повышается при использовании таких иерархий.

В качестве примера рассмотрим измерение Customer. Реляционная таблица из источника данных имеет восемь столбцов:

  • CustomerKey
  • CustomerName
  • Age
  • Gender
  • Email
  • City
  • Region
  • Country

Соответствующее измерение Analysis Services должно иметь семь атрибутов:

  • Customer (ключ типа integer, CustomerName в качестве имени)
  • Age, Gender, Email, City, Region, Country

Есть естественная иерархия данных по {Country, Region, City, Customer}. Для более удобной навигации разработчик приложения может решить создать вторую иерархию по {Age, Gender}. Бизнес-пользователи не увидят никакой разницы между двумя иерархиями, но естественная иерархия выигрывает из-за индексной структуры - скрытой от пользователей - которая понимает иерархические связи.

Наиболее важными преимуществами новой структуры измерений являются:

  • Измерения не требуется загружать в память. В результате измерения могут быть очень большими (были протестированы измерения с сотнями миллионов членов).
  • Иерархии атрибутов могут добавляться или удаляться без обработки измерения. Индексная структура иерархии атрибутов небольшая и рассчитывается в фоновом режиме, в то время как куб остается доступным для выполнения запросов.
  • Устраняется дублированная информация в измерениях; измерения становятся меньше.
  • Производительность обработки измерений повысилась, т.к. ядро использует возможности параллелизма при обработке.
Типы измерений
В Analysis Services 2000 есть два типа измерений: Regular hierarchical и Parent-child. В Analysis Services 2005 добавлены новые важные структуры измерений. Некоторые из этих структур имеют странные названия, но эти названия общеприняты в литературе по интеллектуальной обработке данных.
  • Ролевое измерение (Role Playing): У измерения есть несколько ролей в зависимости от контекста. Например, измерение [Time] может быть использовано для [Order Date] и [Ship Date]. В SQL Server 2005 ролевое измерение сохраняется один раз и после этого может использоваться множество раз. При этом минимизируются дисковое пространство и время обработки.
  • Измерение факта (Fact): Измерение факта, или "вырожденное" измерение имеет связь один-к-одному с фактами, такими, как номер транзакции. Измерение факта как таковое используется не для анализа, а для идентификации. Например, для нахождения определенной транзакции или определения транзакций, составляющих агрегатную ячейку.
  • Ссылочное измерение (Reference): Измерение связано с таблицей фактов не напрямую, а через другое измерение. Типичным примером является ссылочное измерение [Geography], которое связано и с измерением [Customer], и с измерением [Sales Force]. Ссылочное измерение может быть получено из провайдера данных и включено в кубы без изменения фактов.
  • Измерение добычи данных (Data Mining) Измерение добычи данных поддерживает измерения, получаемые из моделей добычи данных, включая кластеры, деревья принятия решений и ассоциативные правила.
  • Измерение многие-ко-многим (Many to Many): Такие измерения иногда называются измерениями с множеством значений. В большинстве измерений один факт соединен с одним и только одним членом измерения. Измерения многие-ко-многим соединяют один факт с множеством членов измерения. Например, у клиента банка есть множество счетов (Checking, Savings); у счета есть множество клиентов (Mary Smith; John Smith). Измерение [Customer] имеет множество членов, которые относятся к одной транзакции по счету. В SQL Server 2005 измерения многие-ко-многим поддерживают сложную аналитику, когда измерения не связаны напрямую с таблицей фактов, и расширяют модель измерений за пределы классической схемы типа "звезда".
Группы мер и проекции
В Analysis Services 2005 представлены группы мер (Measure Groups) и проекции (Perspectives) для упрощения разработки и развертывания аналитической базы данных. В Analysis Services 2000 пользователям было необходимо создавать множество физических кубов. Каждый куб соответствовал определенному набору измерений, а также обычно и определенной реляционной таблице фактов. Виртуальные кубы объединяли множество таблиц фактов в удобной и прозрачной для пользователя форме, но были излишне сложны для разработчика при их создании.

В SQL Server 2005 наиболее типичной ситуацией будет ситуация, когда имеется один физический куб, содержащий одну или более группу мер. Факты в группе мер имеют определенную гранулярность, определяемую пересечением иерархий измерений. Запросы при этом автоматически перенаправляются в нужные группы мер. На физическом уровне в группах мер определяются разделы, аналогичные разделам в Analysis Services 2000.

Большое приложение может предоставлять пользователю большое количество измерений, групп мер и самих мер, что может затруднить навигацию по ним. Проекция, создаваемая в Cube Editor во вкладке Perspectives, создает "представление" части куба. Чтобы обеспечить необходимый уровень персонализации, роль доступа может быть связана с соответствующим набором проекций.

Мы ожидаем, что большинство баз данных Analysis Services 2005 будет состоять из одного куба с множеством групп мер и множеством проекций.

Другими важными улучшениями в структурах фактов куба и производительности выполнения запросов являются:

  • Меры могут содержать значение "null"; в SQL Server 2000 меры со значением "null" обрабатывались как нули.
  • Производительность выполнения запросов для мер Distinct Count повышена на несколько порядков для кубов с правильно определенными разделами.
  • Доступ к различным системам управления базами данных обеспечивается расширяемой картриджной инфраструктурой. Картридж для СУБД определяет, как оптимизировать команды SQL для выполнения запросов к реляционной структуре и записи в нее. Картриджи для дополнительных реляционных СУБД можно легко добавить; картридж реализован в виде XSL файла.
Расчеты и аналитика
Одним из наиболее сильных аргументов в пользу использования такого аналитического сервера, как Analysis Services, является его возможность выполнять сложные вычисления централизованно. Analysis Services всегда обеспечивал сложную аналитику, но некоторые сложные концепции было сложно реализовать.

Одной из таких концепций является мера с частичным суммированием (semi-additive measure). Большинство обычных мер, таких, как [Sales], производят агрегацию по всем измерениям: [Total Sales] за весь период - это продажи всех товаров всем клиентам за все время. Напротив, мера с частичным суммированием по некоторым измерениям должна производить суммирование, а по некоторым - нет. Наиболее типичным случаем является остаток, например, количество единиц товара на складе. Агрегированный остаток по вчерашнему и сегодняшнему дням, конечно, не равен сумме вчерашнего и сегодняшнего остатков. Вместо этого результатом будет последний остаток, хотя иногда бывает и первый. В Analysis Services 2000 вы должны бы были определить сложное вычисление MDX для получения корректной меры. В Analysis Services 2005 начальный и конечный остатки являются встроенными агрегатными типами.

Меры Distinct Count также значительно улучшены в SQL Server 2005. Меру Distinct Count теперь можно определять на строковых данных, а также можно создавать запросы, выполняющие Distinct Count на произвольном наборе данных. SQL Server 2000 выполнял Distinct Count только на заранее определенной иерархической структуре.

Мастер Time Intelligence создает измерение вычислений времени, содержащее вычисления, сравнивающие некоторый период с предыдущим периодом, скользящие средние значения, и другие часто используемые конструкции вычислений времени.

MDX Скрипты
Язык MultiDimensional Expressions (MDX) является очень мощным языком, который использовался в Analysis Services 2000 для определения вычислений и правил обеспечения безопасности. Но MDX является настолько же сложным, насколько и мощным. Analysis Services 2005 предоставляет новую модель вычислений в виде MDX скриптов (MDX Scripts), которая использует упрощенные конструкции и синтаксис.

MDX также является языком запросов к системам Analysis Services. Такие инструменты выполнения запросов, как Excel Pivot Tables, генерируют запросы MDX на основе пользовательских действий "drag and drop". Такое использование языка MDX не относится к MDX скриптам; MDX скрипты используются для серверных объектов, таких, как вычисляемые члены и вычисления ячеек, а не для пользовательских запросов.

После создания куба в Analysis Services 2005 этот куб содержит только структуру, данных в нем нет. MDX скрипт является частью такой структуры. Одна команда MDX скрипта всегда определена по умолчанию для выполнения агрегирований по умолчанию. Команда MDX скрипта по умолчанию содержит единственное выражение:

Calculate;
После того, как куб полностью обработан, но до выполнения MDX скрипта по умолчанию, куб содержит данные листового уровня, но не содержит агрегатов. При выполнении MDX скрипта, состоящего из одного выражения, агрегаты рассчитываются и сохраняются.

MDX скрипт может содержать следующие команды, разделенные точками с запятой:

  • Выражения области видимости для ограничения области видимости выражения
  • Задание формул и значений
  • Определения вычисляемых членов
  • Определения именованных наборов данных

В пользовательском интерфейсе для разработки кубов в Business Intelligence Development Studio скрипты MDX - вычисляемые члены и именованные наборы - создаются в окне представлении Calculations. MDX скрипт можно просматривать в окне по умолчанию Calculations Form, что позволяет проверить корректность синтаксиса, или в окне Calculations Script, в котором MDX скрипт представлен в виде набора команд, разделенных точками с запятой. Вы можете переключаться между этими окнами, однако для работы окна Form на данный момент требуется, чтобы во всем скрипте был корректный синтаксис.

Существует несколько основных ключевых особенностей MDX скриптов:

  • Скрипты соответствуют процедурной модели: команды выполняются по очереди. Разработчик MDX скрипта теперь может не волноваться о порядке выполнения и больше застрахован от написания скрипта, который вызовет бесконечную рекурсию.
  • У вычисления может быть ограничена область видимости: выражение SCOPE позволяет вам определить одно или более вычислений на определенной области куба. Например:
SCOPE ([Customers].[Country].[Country].[USA]);
	[Measures].[Sales] = 100;
END SCOPE;
  • Области видимости могут быть вложенными.
  • Вычисление может кэшироваться: ключевое слово CACHE указывает, что результат вычисления скрипта должен быть сохранен на диске, а не рассчитан в режиме реального времени. Кэшированные вычисления обеспечивают очень высокую производительность для запросов на больших кубах, которые содержат множество сложных вычислений. Когда входные данные в кэшированное вычисление изменяются, оно удаляется и пересоздается.
  • MDX скрипты можно отлаживать. Вы можете двигаться по MDX скрипту пошагово, видя состояние куба на каждом шаге.
Хранимые процедуры
В Analysis Services 2005 представлены хранимые процедуры для расширения возможностей, предоставляемых пользовательскими функциями (user defined functions, UDFs). Хранимая процедура может быть написана на любом языке общеязыковой среды разработки, таком, как C++, Visual Basic или C. Хранимые процедуры упрощают разработку базы данных, т.к. общий код пишется один раз, хранится в одном месте, а затем повторно используется в других хранимых процедурах, вычислениях и пользовательских запросах.

Существует два типа хранимых процедур:

  • Хранимые процедуры функций MDX похожи на любую другую MDX функцию и обеспечивают механизм простого расширения языка MDX.
  • Пользовательские хранимые процедуры выполняют задачи, специфические для конкретной реализации, такие, как обработка куба или обновление ячеек в некоторой части куба.

Хранимые процедуры могут использоваться для выполнения любых задач, которые может выполнить клиентское приложение.

Ключевые показатели производительности
В Analysis Services 2005 представлена система ключевых показателей производительности (Key Performance Indicator, KPI) для определения на сервере вычислений, необходимых для оценки эффективности работы вашего бизнеса. Эти KPI могут выводиться в отчетах, порталах и электронных досках сообщений, с помощью API доступа к данным и инструментов Microsoft и сторонних производителей.

Разные авторы и вендоры используют понятие "KPI" для обозначения разных концепций. В Microsoft SQL Server Analysis Services 2005 понятие KPI точно описывается следующими четырьмя шагами:

  • Значение, которое должно быть получено: физическая мера, такая, как Sales, вычисляемая мера, такая, как Profit, или вычисление, которое было определено в KPI,
  • Целевое значение: значение (или выражение MDX, выдающее значение), которое определяет цель для меры,
  • Статус: выражение MDX для оценки текущего статуса значения в виде нормализованного значения в диапазоне от -1 (очень плохо) до +1 (очень хорошо),
  • Тенденция: выражение MDX для оценки текущей тенденции значения. Становится ли значение лучше или хуже относительно целевого значения?

Пример нескольких KPI, выведенных на web-странице:

1.jpg

Системы интеллектуальной обработки данных реального времени
Хранилища данных и приложения интеллектуальной обработки данных традиционно использовали "устаревшие" данные, данные с большой задержкой обновления - т.е. данные, обновляемые раз в месяц, неделю или день. Традиционалисты считают, что система интеллектуальной обработки данных реального времени (real time BI) вообще является сочетанием несочетаемого - для принятия стратегических решений не требуются данные, обновляемые чаще раза в сутки. Что упускают эти люди, так это то, что системы интеллектуальной обработки данных должны быть доступны всем на предприятии, а не только нескольким аналитикам и менеджерам для принятия стратегических и тактических решений. Оперативная интеллектуальная обработка данных требует данных с небольшой задержкой обновления.

В Analysis Services 2005 представлены новые возможности обработки для оперативной интеллектуальной обработки данных. В Analysis Services 2000 кубы - вне зависимости от варианта их хранения или стратегии использования разделов - обрабатывались с помощью модели "Pull". В Analysis Services запускался процесс, который искал новую информацию в базе-источнике данных, обрабатывал и при необходимости сохранял детализированные данные, и рассчитывал и сохранял агрегаты.

Модель Pull по-прежнему поддерживается в Analysis Services 2005, но были добавлены еще две модели, которые особенно полезны для интеллектуальной обработки данных с небольшой задержкой обновления:

  • Получение (push) данных из канала Integration Services или пользовательского приложения. Данные могут напрямую попадать в раздел Analysis Services из канала пакета Integration Services, без промежуточного сохранения. Это может использоваться для уменьшения задержки обновления и затрат на хранение аналитических данных.
  • Управление кубом как упреждающим кэшем, без административного вмешательства, для поддерживания в кэше заранее определенных уровня задержки обновления данных и характеристик производительности.

Производительность выполнения запросов в многомерном хранилище Analysis Services выше, чем в реляционном хранилище. Если кратко, то запросы выполняются быстрее всего в многомерном (MOLAP) хранилище. Обратной стороной этого является задержка обновления данных: многомерное хранилище является снимком реляционного источника данных. Основным преимуществом технологии упреждающего кэширования является максимизация производительности выполнения запросов и минимизация задержки обновления данных и затрат на администрирование.

Возможности упреждающего кэширования упрощают процесс управления устаревшими данными. Когда происходит транзакция в базе-источнике данных, например, новая транзакция по члену измерения или по факту, существующий "кэш" устаревает. Упреждающее кэширование обеспечивает настраиваемый механизм для определения, насколько часто нужно пересоздавать многомерный кэш; для определения, как выполняются запросы во время перестройки кэша; а также для запуска процесса перестройки кэша без административного вмешательства.

Упреждающее кэширование дает вам возможность устанавливать у куба автоматическое обновление его многомерного кэша при возникновении транзакции. Хотя Analysis Services обрабатывает данные очень быстро, обработка все-таки занимает определенное время. При необходимости ваша конфигурация упреждающего кэширования может автоматически перенаправлять запросы в реляционное хранилище, если обновление упреждающего кэша еще не закончено.

Когда вы разрабатываете конфигурацию вашего упреждающего кэша, важно помнить, что упреждающее кэширование настраивается для каждого многомерного раздела. Если раздел содержит данные за небольшой период времени, например, за час, то процесс обновления кэша происходит очень быстро. Наиболее сложные конфигурации упреждающего кэширования зависят от сообщения (notification), отправляемого реляционной базой данных в Analysis Services, о том, что произошло изменение данных. Реляционная база данных Microsoft SQL Server поддерживает такие сообщения. Для баз данных, которые не отправляют сообщения, Analysis Services может быть настроен на опрос базы данных на наличие изменений с помощью заранее созданного запроса.

Параметрами упреждающего кэширования являются:

  • Период бездействия (Quiet period): Период времени, в течение которого на реляционном источнике данных не должны происходить транзакции, прежде чем сервер начнет обработку новой информации. Параметр обычно имеет значение меньше десяти секунд. Ожидание периода бездействия помогает избежать регулярного удаления и пересоздания кэша, если в реляционном источнике данных происходит множество последовательных обновлений.
  • Задержка обновления данных (Latency): Как долго пользователи могут получать доступ к устаревшим данным. Если период задержки обновления данных равен нулю, пользовательские запросы перенаправляются в реляционный источник данных сразу же, как только получается сообщение. Если период задержки обновления данных равен 600 секундам, пользователи получают доступ к данным, которые не старше десяти минут. Установка периода в -1 означает, что пользователи будут получать доступ к устаревшим данным, пока не будет закончено пересоздание упреждающего кэша.
  • Максимальный интервал до перестройки кэша (Silence override interval): максимальный период между сообщением об изменении данных и началом пересоздания упреждающего кэша. Если база-источник данных обновляется регулярно, этот параметр перекроет значение параметра "Период бездействия".
  • Интервал между принудительными перестройками кэша (Force rebuild interval): этот параметр используется для обеспечения простой функциональности упреждающего кэширования на системах, где система базы-источника данных не поддерживает сообщения об изменении данных. Если источником данных является РСУБД SQL Server, этот параметр должен быть установлен в ноль.
Добыча данных
Обзор
Microsoft SQL Server 2005 Data Mining является технологией интеллектуальной обработки данных, которая помогает вам создавать сложные аналитические модели и интегрировать эти модели в ваши бизнес-процессы. Модели добычи данных позволяют ответить на такие вопросы, как
  • Каков уровень кредитного риска этого клиента?
  • Каковы характеристики моих клиентов?
  • Какие товары люди обычно покупают одновременно?
  • Как много единиц товара я могу продать в следующем месяце?

Приложение добычи данных интегрирует модель добычи данных в ежедневные операции вашего бизнеса. Целью многих проектов добычи данных является создание аналитического приложения, которое ваши бизнес-пользователи, партнеры и клиенты смогут использовать каждый день, не задумываясь о тех сложных вычислениях, которые производятся в приложении. Есть два основных шага в достижении этой цели - создать модель добычи данных и создать приложение. SQL Server 2005 Data Mining делает реализацию обоих этих шагов легче, чем когда бы то ни было.

Целью Microsoft для обеспечения функциональности добычи данных в SQL Server 2005 является создание инструментов, которые:

  • Легки в использовании
  • Обеспечивают полный набор возможностей
  • Легко встраиваются в рабочие приложения
  • Хорошо интегрируются с другими технологиями интеллектуальной обработки данных SQL Server и
  • Расширяют рынок приложений добычи данных.

Практически с полной уверенностью можно сказать, что каждый читатель этого документа уже "использовал" приложение добычи данных. Если вы покупали книгу или музыкальное произведение через интернет и получали рекомендацию, что "другие покупатели предпочли то-то", или если компания-эмитент вашей кредитной карты просила вас проверить подозрительную транзакцию, или если ваш бакалейный магазин печатает персональные купоны на вашем чеке, то вы использовали приложение добычи данных. До этого момента разработка таких приложений фокусировалась на самых важных задачах самых больших компаний - тех, которые могут себе позволить небольшие аналитические способности и большие затраты на разработку, что обычно требовалось для создания приложения добычи данных. Так же, как технологии OLAP от Microsoft помогли вырасти рынку OLAP, так и сейчас мы ожидаем развития технологий добычи данных на предприятиях и в отделах корпораций, которые раньше не могли разрабатывать такие приложения.

Используйте инструменты SQL Server 2005 Data Mining для исследования наборов данных для создания шаблонов, а затем создавайте прогнозы на основе этих шаблонов. В этом и есть вся суть добычи данных: исследование, создание шаблонов и прогнозирование на основе этих шаблонов.

Алгоритмы добычи данных
Все инструменты добычи данных, включая Microsoft SQL Server 2005 Analysis Services, используют множество алгоритмов. Конечно, Analysis Services расширяем; сторонние фирмы могут разрабатывать алгоритмы, которые без проблем встраиваются в структуру добычи данных Analysis Services. В зависимости от данных и целей, выбираются различные алгоритмы, и каждый алгоритм может использоваться для различных задач.

Инструменты добычи данных хороши для решения множества задач. Задачи бизнеса, примерно разбитые на категории, перечислены в следующей таблице.

Аналитическая задачаПримерыАлгоритмы Microsoft
Классификация: Назначение событий заранее определенным классам, таким, как "Хороший" или "Плохой"
  • Анализ кредитного риска
  • Анализ "текучести" клиентов (churn analysis)
  • Удержание клиентов (customer retention)
  • Деревья принятия решений
  • Naïve Bayes
  • Нейронные сети
Сегментирование: Разработка системы для группирования одинаковых событий
  • Анализ профиля покупателей
  • Кампания почтовой рассылки
  • Кластеризация
  • Последовательная кластеризация
Ассоциирование: Глубокий поиск корреляций
  • Анализ набора приобретаемых товаров (market basket analysis)
  • Глубокое исследование данных
  • Деревья принятия решений
  • Ассоциативные правила
Прогнозирование временных рядов: прогнозирование будущего
  • Прогнозирование продаж
  • Прогнозирование цен акций
  • Временные ряды
Прогнозирование: прогнозирование значения для нового события (например, для нового покупателя) на основе значений для подобных событий (таких, как существующие покупатели)
  • Котировки страховых ставок
  • Прогнозирование прибыли от покупателей
  • Прогнозирование температуры
  • Все алгоритмы
Анализ отклонений: определение, как событие или сегмент отличается от других
  • Обнаружение мошенничества по кредитным картам
  • Анализ несанкционированного подключения к сети
  • Все алгоритмы

SQL Server 2005 поставляется с самыми популярными алгоритмами добычи данных.

  • Алгоритм деревьев принятия решений от Microsoft (Microsoft Decision Trees) часто является начальной точкой исследования данных. В своей основе это алгоритм классификации и он хорошо работает для прогнозирования и дискретных, и непрерывных атрибутов. Когда алгоритм строит модель, он смотрит на то, как каждый входной атрибут в наборе данных влияет на результат прогнозируемого атрибута. Целью является нахождение комбинации входных атрибутов и их состояний, которая позволит вам прогнозировать значение прогнозируемого атрибута.
  • Алгоритм Naïve Bayes от Microsoft быстро строит модели добычи данных, которые могут использоваться для классификации и прогнозирования. Алгоритм рассчитывает вероятность, с которой каждое возможное состояние входного атрибута приводит к каждому состоянию прогнозируемого атрибута. Алгоритм поддерживает только дискретные (не-непрерывные) атрибуты и считает, что все входные атрибуты влияют на прогнозируемый атрибут независимо друг от друга. Т.к. алгоритм Naïve Bayes работает очень быстро, он популярен в фазе начального исследования данных для решения как проблем классификации, так и прогнозирования.
  • Алгоритм кластеризации от Microsoft (Microsoft Clustering) использует итеративный процесс для группировки строк из набора данных в кластеры, содержащие строки с одинаковыми характеристиками. Используя кластеры, вы можете исследовать данные для нахождения взаимосвязей. Вы также можете делать прогнозы на основе кластерной модели.
  • Алгоритм поиска ассоциаций от Microsoft (Microsoft Association) основан на алгоритме a priori и обеспечивает эффективный метод нахождения корреляций в больших наборах данных. Алгоритм поиска ассоциаций двигается в цикле по транзакциям в базе данных для нахождения товаров, которые с наибольшей вероятностью появятся вместе в транзакции одного покупателя. Такие товары группируются в наборы товаров и генерируются правила, которые потом можно использовать для прогнозирования. Алгоритм поиска ассоциаций от Microsoft в основном используется для анализа набора приобретаемых товаров (market basket analysis). Любой реляционный или OLAP анализ, который выполняет множество операций "distinct counting", является хорошим кандидатом для анализа ассоциаций. Алгоритм поиска ассоциаций от Microsoft чувствителен к выбору параметров алгоритма, поэтому для небольших задач алгоритм деревьев принятия решений может оказаться лучше для анализа набора приобретаемых товаров.
  • Алгоритм последовательной кластеризации от Microsoft (Microsoft Sequence Clustering) сочетает анализ последовательности операций с кластеризацией для исследования данных и прогнозирования. Модель последовательной кластеризации чувствительна к последовательности возникновения событий. Кроме того, алгоритм кластеризации учитывает другие атрибуты при группировке строк по кластерам, что дает вам возможность создать модель, в которой есть корреляция между последовательной и непоследовательной информацией. Алгоритм последовательной кластеризации используется для анализа маршрута перемещения пользователя по страницам при анализе трафика Web-сайта, определения, какие страницы сайта больше всего связаны с продажей определенного товара, и прогнозирования, какие следующие страницы сайта будут посещены.
  • Алгоритм временных рядов от Microsoft (Microsoft Time Series) создает модели, которые могут использоваться для прогнозирования одной или нескольких постоянно изменяющихся переменных, таких, как цена акции. Алгоритм при прогнозировании основывается исключительно на трендах, полученных из обучающих данных при создании модели. Алгоритм временных рядов использует методику AutoRegression Trees, очень прост в использовании и генерирует модели с высокой точностью прогнозирования. Существует целое направление статистического анализа, посвященное временным рядам. Большинство других продуктов добычи данных предоставляют множество методик, таких, как ARMA, ARIMA и Box-Jenkins, из которых статистик должен выбрать тот, который лучше всего соответствует модели. Компания Microsoft выбрала подход, который делает анализ временных рядов доступным широкой аудитории, с великолепными и точными результатами.
  • Алгоритм нейронной сети от Microsoft (Microsoft Neural Net), как и алгоритмы деревьев принятия решений и Naïve Bayes, в основном используется для исследования данных, классификации и прогнозирования. Алгоритм нейронной сети - это методика искусственного интеллекта, которая исследует все возможные взаимосвязи между данными. Т.к. этот алгоритм исследует данные тщательнее других, то он является самым медленным из трех алгоритмов классификации.
Создание модели добычи данных
Процесс создания, обучения и тестирования модели - самая трудная часть создания приложения. На самом деле, создание самого приложения - это простое программирование, мы обсудим это далее в этом документе. Перед тем, как вы начнете создавать модель добычи данных, вы должны собрать ваши данные, скорее всего в хранилище данных, и почистить их. SQL Server 2005 Data Mining может извлекать данные как из реляционной базы данных, так и из кубов Analysis Services.

Наилучшей фигурой для разработки модели добычи данных является сотрудник со знаниями как бизнеса, так и информационных технологий. Разработчику модели поможет знание статистики, понимание ключевых задач бизнеса, с которыми сталкивается предприятие, знание данных и взаимосвязей между ними, а также умение работать с инструментами SQL Server 2005 для манипулирования данными и их сохранения. Таким человеком скорее всего окажется член команды, работающей с хранилищем данных.

Как новичок в области добычи данных, приготовьтесь потратить несколько недель на то, чтобы разобраться с данными, инструментами и альтернативными алгоритмами во время создания прототипа модели. Используйте сервер разработки, на котором у вас будут права администратора базы данных. Начальные этапы создания модели являются исследовательскими - вероятно, вы захотите реструктурировать ваши данные и поэкспериментировать с разными подходами. Также вы скорее всего захотите в начале работать с небольшим набором данных, увеличивая набор данных по мере того, как начнете яснее видеть дизайн модели. В фазе прототипирования не беспокойтесь о создании "промышленного" приложения. Используйте Integration Services или другие инструменты, которые вам наиболее удобны, для выполнения необходимых манипуляций с данными. Ведите журнал с указанием всех необходимых изменений, но не ждите, что все, что вы сделаете, станет частью рабочего приложения.

Вам нужно будет приготовить два набора данных, один для разработки моделей и один для тестирования точности моделей, для того, чтобы выбрать лучшую модель для решения вашей бизнес-задачи. Когда вы будете решать, как выделить набор данных из всех данных, убедитесь, что данные выбираются непредвзято. Например, выбирайте каждого десятого покупателя или выделите набор данных, ориентируясь по первому символу фамилии, или по любому другому атрибуту.

В процессе разработки модели добычи данных требуется сделать выбор в таких вопросах, как:

  • Входной набор данных,
  • Входные поля,
  • Алгоритм добычи данных и
  • Параметры, используемые во время работы этого алгоритма.

Если вы не знаете, какой тип алгоритма лучше использовать для решения вашей бизнес задачи, вам лучше начать с алгоритма деревьев принятия решений или алгоритма Naïve Bayes для исследования данных. Если вы не знаете, какие атрибуты выбрать в виде параметров алгоритма, выберите их все. Используйте окно сетевых зависимостей, чтобы создать представление, которое поможет вам упростить сложную модель.

В течение фазы разработки прототипа модели вам, возможно, захочется создать связанные модели (related models), чтобы оценить их и выбрать лучшие алгоритм и модель. Используйте диаграмму Mining Accuracy для определения, какая модель делает самое точное прогнозирование. Вероятно, вам также захочется создать связанные модели, чтобы провести анализ различными алгоритмами на одном и том же наборе данных. Эти модели отработают быстрее, если будут определены как связанные, а не независимые модели.

Когда вы создадите и протестируете прототип модели, вы можете создать и протестировать реальную модель добычи данных. Если вам понадобится преобразование данных перед их передачей ядру добычи данных, то для этого вам следует разработать рабочий процесс. В некоторых случаях вы можете захотеть заполнить модель добычи данных напрямую из канала Integration Services. Если прототип модели был разработан на основе небольшого набора данных, вам понадобится оценить альтернативные модели еще раз на полном наборе обучающих данных.

Создание приложения добычи данных
Предприятие может получить большие преимущества, создавая и исследуя модели добычи данных в Business Intelligence Development Studio. Вы можете просматривать модель, находить взаимосвязи в ваших данных и вашем бизнесе и использовать эту информацию для поддержки принятия стратегических решений. Однако наибольшие преимущества можно получить от приложений добычи данных, которые будут задействованы в ежедневных операциях вашей компании - например, одним из таких приложений является приложение, которое рекомендует товары покупателям, оценивает кредитные риски покупателя и оформляет заказ на основе спрогнозированной нехватки товара в будущем. Для создания оперативного приложения добычи данных вы не сможете использовать Business Intelligence Development Studio - вам придется написать код, используя, например, Microsoft Visual Studio или любую другую среду разработки.

Большинство корпоративных клиентов разрабатывают клиентское приложение добычи данных в виде Web или Win32 приложения, например ASP страницы. Модель добычи данных к этому моменту уже готова, и приложение выполняет прогнозирование по клиенту, основываясь на том, что клиенты выбрали или ввели в приложении электронной коммерции. Такое приложение может быть очень простым; единственной необычной частью этого приложения будет выполнение запроса прогнозирования.

Разработчик приложения добычи данных необязательно должен быть именно тем человеком, который разработал модель добычи данных. Разработчик приложения должен обладать обычными навыками разработки, без глубокого знания бизнеса или статистики.

Технологии добычи данных в SQL Server делают процесс создания автоматизированного приложения добычи данных очень простым. Этот процесс состоит из двух шагов:

  • Создание запроса прогнозирования для добычи данных, DMX синтаксис которого определен в спецификации OLE DB для Data Mining. Вместо того, чтобы писать DMX запросы вручную, нажмите на кнопку Mining Model Prediction на левой панели редактора Business Intelligence Development Studio. Графический инструмент Prediction Query Builder поможет вам создать запрос прогнозирования.
  • Используйте запрос прогнозирования в вашем приложении добычи данных. Если ваше приложение просто использует DMX запрос для выдачи прогноза, в ваш проект потребуется включить ссылку на класс ADO, ADO.Net или ADOMD.Net (ADOMD.Net рекомендуется использовать, если ваша версия .Net - после Beta 1). Если вы создаете более сложное приложение - например, для использования пользователями средств просмотра моделей добычи данных, таких, как Decision Tree Viewer - вам понадобится включить в проект классы Microsoft.AnalysisServices и Microsoft.AnalysisServices.Viewers.

Некоторые клиенты, особенно независимые поставщики программного обеспечения, могут захотеть создать приложение, которое генерирует модель добычи данных. Генерация модели в таком приложении заменит разработку модели добычи данных в Business Intelligence Development Studio, возможно, для определенной области, такой, как web-аналитика. В этом случае в ваш проект потребуется включить Microsoft.DataWarehouse.Interfaces для получения доступа к Analysis Management Objects (AMO).

Примеры DMX
Три шага добычи данных - создание модели добычи данных, обучение модели и прогнозирование поведения на основе модели - доступны в простом языке программирования, похожем на SQL, который называется DMX. В следующем примере показан синтаксис языка DMX; полное описание языка доступно в SQL Server Books Online.

Создание модели добычи данных:

CREATE MINING MODEL CreditRisk
(CustID		LONG KEY,
Gender		TEXT DISCRETE,
Income		LONG CONTINUOUS,
Profession	TEXT DISCRETE,
Risk		TEXT DISCRETE PREDICT)
USING Microsoft_Decision_Trees

Обучение модели добычи данных:

INSERT INTO CreditRisk 
(CustId, Gender, Income, Profession, Risk)
SELECT CustomerID, Gender, Income, Profession, Risk
From Customers 

Прогнозирование поведения на основе модели добычи данных:

SELECT NewCustomers.CustomerID, CreditRisk.Risk, PredictProbability(CreditRisk)
FROM CreditRisk PREDICTION JOIN NewCustomers
ON CreditRisk.Gender=NewCustomer.Gender 
AND CreditRisk.Income=NewCustomer.Income
AND CreditRisk.Profession=NewCustomer.Profession

Reporting Services

Выпуская SQL Server 2005, Microsoft расширяет главный новый компонент интегрированной платформы интеллектуальной обработки данных. SQL Server Reporting Services расширяет видение компанией Microsoft интеллектуальной обработки данных, делая проще получение нужной информации нужными людьми в любом бизнес-окружении.

Reporting Services является полноценной серверной платформой для создания, управления и доставки традиционных и интерактивных отчетов. Reporting Services включает все необходимые вам современные возможности создания, доставки и управления отчетами. Кроме того, в SQL Server 2005 появилась новая возможность создания пользователями собственных отчетов. Эта новая функциональность доступна в Report Builder. В то же время, модульный дизайн Reporting Services и большое количество Application Programming Interfaces (APIs) дают возможность разработчикам программного обеспечения, поставщикам данных и предприятиям интегрировать отчетность в унаследованные системы или приложения сторонних производителей.

Reporting Services поставляется с SQL Server 2005 и включает:

  • Полный набор инструментов для создания, управления и просмотра отчетов
  • Движок для хранения и обработки отчетов
  • Расширяемую архитектуру и открытые интерфейсы для встраивания отчетов или интеграции решения в различные IT среды
  • Средства разработки для конечных пользователей, не являющихся разработчиками, для создания или модификации их собственных отчетов
Зачем нужно использовать Reporting Services?
Вряд ли кто-то в настоящее время будет спрашивать о необходимости получения нужной информации нужными людьми. Для многих бизнесов это настоящая проблема - люди, которым требуется доступ к информации, могут находиться где угодно на предприятии, и даже вне его, и иметь совершенно разный уровень навыков и умений.

Reporting Services дает возможность легко создавать и традиционные, и интерактивные отчеты и доставлять их большому количеству людей, используя гибкие систему подписки и механизмы доставки. Reporting Services также предоставляет возможности обеспечения безопасности и управления в сложных бизнес-средах с высокими требованиями. Также в SQL Server 2005 появилась новая возможность для конечных пользователей создавать свои собственные отчеты.

Reporting Services предоставляет уникальное сочетание характеристик:

  • Полноценная серверная платформа отчетности: Reporting Services поддерживает полный жизненный цикл отчета, начиная с разработки и до доставки и постоянного управления отчетами.
  • Гибкая и расширяемая отчетность: Reporting Services поддерживает и традиционные, и интерактивные отчеты множества различных форматов с расширяемыми возможностями доставки отчетов. Reporting Services может быть легко интегрирован в любую среду или решение с помощью открытых API и интерфейсов.
  • Масштабируемость: модульный, web-ориентированный дизайн Reporting Services легко масштабируется для поддержки сред с большими объемами данных. Вы можете создать ферму серверов отчетности (reporting server farm) с множеством серверов отчетности, получающих доступ к одним и тем же базовым отчетам и обслуживающих тысячи клиентов через web.
  • Интеграция с другими продуктами и инструментами Microsoft: Reporting Services поставляется вместе с SQL Server и легко интегрируется с известными инструментами Microsoft, такими, как Office и SharePoint Portal Server, без необходимости программирования и дополнительных настроек.
  • Отчетность конечных пользователей: Reporting Services представляет Report Builder, который может использоваться конечными пользователями для создания и модификации их собственных отчетов. Report Builder предоставляет такую функциональность через представление структур данных в виде бизнес-моделей, которые конечные пользователи будут использовать для создания отчетов.
Варианты использования Reporting Services
Так как Reporting Services объединяет единую полноценную платформу отчетности и масштабируемую и расширяемую архитектуру, то Reporting Services удовлетворяет широкому диапазону потребностей в отчетности.
  • Отчетность предприятия: Предприятия могут использовать Reporting Services для создания внутренней отчетности и приложений интеллектуальной обработки данных. Многие компании создают рынки или хранилища данных для агрегации оперативных данных. Используя Reporting Services, сотрудники IT департамента компании могут разрабатывать множество типов отчетов и отправлять их получателям, используя сочетание доставки с помощью электронной почты и публикации отчетов на корпоративном портале. Reporting Services обеспечивает большие преимущества предприятию как полноценная система отчетности, интегрированная с платформой интеллектуальной обработки данных Microsoft.
  • Встроенные отчеты: Независимые поставщики программного обеспечения (Independent Software Vendors, ISVs) могут использовать Reporting Services для доставки сформированных отчетов как часть составного приложения, работающего с Microsoft SQL Server. IT отдел клиента может получать эти отчеты как есть или использовать Reporting Services для настройки отчетов или создания новых отчетов для определенных нужд бизнеса. Для независимых поставщиков программного обеспечения Reporting Services предлагает упрощенный подход для встраивания гибких интерактивных отчетов в приложение.
  • Web-отчетность для партнеров и клиентов: Компании могут использовать традиционные или интерактивные отчеты для взаимодействия с партнерами и клиентами через внешние сети. Reporting Services скрывает от получателей отчетов сложность лежащих в основе отчетов источников данных, обеспечивая при этом персональность и интерактивность отчетов.
  • Отчетность конечных пользователей: Компании могут создавать представления структур данных (реляционных или OLAP) в виде бизнес-моделей. Конечным пользователям не обязательно знать об объединениях таблиц или сложном SQL коде только для того, чтобы получить результат из их данных. Они могут просто просматривать бизнес-описания и создавать отчеты с помощью метода "drag and drop".
Возможности Reporting Services
В Reporting Services объединяются преимущества централизованно управляемой системы отчетности и гибкость настольных и web-приложений. Являясь полноценной платформой отчетности, Reporting Services поддерживает полный жизненный цикл отчета, от создания до доставки.
Создание отчетов
Reporting Services включает в себя все, что вам нужно, чтобы начать создавать традиционные или интерактивные отчеты, в том числе графический дизайнер отчетов с мастерами дизайна отчетов.

Возможности при создании отчетовИнструменты
Большое количество поддерживаемых источников данных Microsoft SQL Server
Microsoft Analysis Services
Любой источник данных, совместимый с OLE DB
Любой источник данных, совместимый с ODBC
Гибкие инструменты разработки Report Designer (требуется Visual Studio 2005)
Язык описания отчетов (Report Definition Language, RDL) на основе XML
Инструменты сторонних производителей, генерирующие RDL
Гибкие форматы отчетности Свободная форма (Freeform)
Табличная форма (Table)
Матричная форма (Matrix)
Диаграммы (Charts)
Параметризованные отчеты, использующие фильтрацию реального времени
Сортировка и группировка
Детализация (Drillthrough)
Связанные отчеты
Гибкие редакторы запросов Инструмент генерации SQL запросов
Инструмент генерации MDX запросов
(оба находятся в Report Designer)
Модульное выполнение отчетов Рендеринг - это отдельный процесс, не связанный с выполнением запроса; один и тот же отчет может рендериться в множество форматов.
Выполнение отчета может выполняться по расписанию или по требованию.
Разработка конечными пользователями Report Builder для конечных пользователей, чтобы они могли создавать свои собственные отчеты
Дизайнер модели отчета (в BI development studio)
Управление отчетами
Reporting Services включает web-инструмент для управления отчетами, Report Server Web Application. Администраторы могут использовать этот инструмент для определения прав доступа к отчетам с помощью ролей, создавать расписания выполнения и доставки отчетов и отслеживать историю выполнения и доставки отчетов. Также предприятие или независимый поставщик программного обеспечения могут использовать Reporting Services Web Services API для создания собственных приложений управления отчетами.

Так как определения отчетов, папки и ресурсы хранятся в базе данных SQL Server, вы можете использовать другие инструменты, такие, как SQL Server Management Studio, для управления метаданными, или воспользоваться приложениями сторонних производителей, использующими документированные API.

В Reporting Services реализована гибкая модель безопасности на основе ролей для защиты отчетов и ресурсов отчетов. Эту модель можно использовать для широкого диапазона нужд безопасности. Reporting Services включает расширяемые интерфейсы для интеграции других моделей безопасности, если в этом возникнет потребность.

Возможности управления отчетамиИнструменты
Метаданные отчетов
  • Название
  • Описание
Управление источниками данных
  • Соединения
  • Информация о правах пользователя
Управление параметрами
  • Значения по умолчанию
  • Поля ввода значений
Расписания выполнения отчетовИнтегрированы с SQL Server Agent
Параметры выполнения"Живой" отчет, кэшированный отчет или отчет-снимок. Отчет-снимок в Reporting Services - это хранимая копия набора данных отчета - результата выполнения запроса при запуске отчета.
История предыдущих выполнений отчетаКаталогизированный список отчетов-снимков, хранящихся для повторного использования при необходимости
Безопасность отчетностиПользователи, группы и роли
Report Server Web Application Web-инструмент управления для:
  • Определения безопасности
  • Создания расписаний выполнения и доставки отчетов
  • Отслеживание истории выполнения и доставки отчетов
Гибкие API для управленияWeb Service API

Доставка отчетов
Вы можете выкладывать отчеты в портал, отправлять их пользователям по электронной почте или дать пользователям доступ к web-серверу отчетности для получения отчетов из иерархии папок. Возможности навигации, поиска и подписки дают пользователям возможность искать и выполнять любые отчеты, которые им понадобятся. Персональные подписки позволяют пользователям выбирать требующийся им формат рендеринга отчета.

Возможности доставки отчетовИнструменты
Набор настроек рендеринга отчетов
  • Web форматы (HTML)
  • Форматы для печати (PDF, TIFF)
  • Данные (Excel, XML, CSV)
  • Другие форматы через открытые API
Гибкие настройки доставки
  • Доставки по расписанию
  • Доставки, управляемые событиями
  • Персональные подписки
  • Доставка отрендеренного отчета или ссылки
  • Подписки, управляемые данными
  • Другие интегрированные приложения
SharePoint Integration
  • Web-средства управления отчетами
  • Web-средства просмотра отчетов

Заключение

Microsoft SQL Server 2005 является полноценной платформой интеллектуальной обработки данных, которая предоставляет инфраструктурные и серверные компоненты для создания:
  • Больших, сложных хранилищ данных, к которым легко выполнять запросы и которые недороги с точки зрения поддержки;
  • Небольшие системы отчетности и анализа, которые могут быть легко созданы и легко управляться небольшими предприятиями или отделами больших предприятий;
  • Системы с небольшой задержкой обновления данных, которые доставляют аналитические данные оперативным пользователям;
  • Системы аналитики замкнутого цикла и системы добычи данных; и
  • Встроенные системы, которые расширяют использование интеллектуальной обработки данных.

Все широко известные инструменты - реляционная СУБД SQL Server, Integration Services, Analysis Services OLAP, Data Mining и Reporting Services - значительно улучшены. Такие новые инструменты, как Business Intelligence Development Studio и SQL Server Management Studio, еще больше расширяют платформу интеллектуальной обработки данных Microsoft. Каждый инструмент является передовым и разработан для того, чтобы вы могли сделать больше, прикладывая меньше усилий - создавать, развертывать и управлять большими приложениями интеллектуальной обработки данных быстрее и лучше, чем когда-либо, с помощью менее мощного аппаратного обеспечения и меньших команд обслуживающего персонала.

 


Сайт создан в системе uCoz