(Возврат на основную страницу)

 

Содержание номера за Май 2007 год

Не берите в голову

Шон Маккаун (Sean McCown)

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

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

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

Очень легко в такой ситуации почувствовать себя оскорбленным. Вы находитесь на этом месте не для того, чтобы делать качественно свою работу, и не для того, чтобы системы работали без проблем, и даже не для того, чтобы быть хорошим администратором. Вы занимаете это место, потому что компания считает, что вам нужно на нем находиться и делать то, что она считает нужным. Всегда ли это соответствует вашему представлению о том, что должна делать компания? Нет. Значит ли это, что вас должны выслушивать? Не обязательно. Это значит только, что это не ваш бизнес и все, что вам остается, — давать советы.
Дайте совет, когда вас спросят, а решение пусть принимают они. В конце концов, если они готовы платить 90 тысяч в год за то, что вы 10 часов в неделю наблюдаете за ходом какого­то ручного процесса, оказывающего влияние на их работу, то это их решение. Хочу подчеркнуть: вы сидите в этом кресле не для того, чтобы делать работу на пределе своих возможностей. Будет ваша работа эффективнее, если вы автоматизируете процесс? Непременно! Тем не менее по какой­то причине они отказывают вам в праве реализовать элементарную вещь, позволяющую этому произойти. Поверьте, иногда такой подход просто не имеет смысла. Вы не просите дополнительного финансирования, затратите очень немного усилий и результат не затронет никого, кроме вас, — а они все не соглашаются. Это просто не имеет смысла. Вас грызет изнутри. Сделайте паузу и вспомните мои слова: «Это не ваш бизнес». Нет сомнений, они полагают, что таким образом ваше время будет потрачено с большей пользой. Пусть будет так.

Проблема в том, что в подобной ситуации вы очень быстро подойдете к пределу своих возможностей. Очевидно, что один человек в состоянии контролировать ограниченное количество ручных процессов. Загвоздка в том, что компания по­прежнему ждет от вас установки систем и наблюдения за ними, есть и другая работа. Иногда руководители плохо понимают, что такое время и что оно не бесконечно. Что­то подсказывает мне, что они многое восприняли бы по­другому, доведись им побегать в поддержке устаревших ручных операций, при этом обеспечивая выполнение всех остальных функций, требуемых их положением. У меня есть подозрение, что они иначе восприняли бы вопросы автоматизации. Так что, когда все это рванет, а оно рванет, так как они по­прежнему рассчитывают на большее, чем способен дать человек, все, что вам нужно сделать, — подойти к вашему боссу, дать ему список заданий и проектов и попросить расставить приоритеты: «Видите ли, в сутках всего лишь 24 часа и я не могу работать по 90 часов в неделю, поддерживая ручные процессы, при этом оставаясь продуктивным. И, так как чем­то нужно пожертвовать, я прошу расставить приоритеты. Важно все, но у меня нет полного знания о бизнес­процессах, так что кто­то другой должен принять соответствующее решение». Из этого разговора есть два выхода: они либо дают вам возможность правильно построить процесс и освободить время, либо нанимают еще одного администратора вам в помощь. Точка. Работа по 90 часов в неделю — это не выход, и знаете что? По моему опыту, увеличение времени, которое вы проводите на рабочем месте, никогда не дает вам никаких преимуществ. Это не принесет вам премию, не даст увеличения зарплаты, даже не позволит гарантировать занимаемую должность. Сегодня дела обстоят так, что компании всегда готовы выкинуть вас на улицу в обмен на более дешевого работника. Это случается повсеместно. Компании более не ценят своих сотрудников, но это уже другая история.

Я знаю, о чем вы думаете. «Я не хочу тратить время на выполнение ручной работы. Я готов выполнять работу администратора баз данных, а не эту нудную мелочовку». Вы правы. Но нужно принять решение, не так ли? Если работа не приносит удовлетворения, пора подумать, не стоит ли поменять компанию. Если вы не удовлетворены тем, куда вас направляет работодатель, очевидно, что ваши цели различаются и настало время подумать о перемене. Неважно, какие иные факторы оказывают влияние.

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

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

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

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

Алекс Пейн (Alex Payne)

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

Системы интеллектуальной обработки данных реального времени

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

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

Модель Pull по­прежнему поддерживается в Ana­lysis 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. В зависимости от данных и целей выбираются различные алгоритмы, и каждый алгоритм может использоваться для различных задач.

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

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

•    Алгоритм деревьев принятия решений от Mic­ro­soft (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)-Сочетает анализ последовательности операций с кластеризацией для исследования данных и прогнозирования. Модель последовательной кластеризации чувствительна к последовательности возникновения событий. Кроме того, алгоритм кластеризации учитывает другие атрибуты при группировке строк по кластерам, что дает вам возможность создать модель, в которой есть корреляция между последовательной и непоследовательной информацией. Алгоритм последовательной кластеризации используется для анализа маршрута перемещения пользователя по страницам при изучении трафика веб­сайта, определения, какие страницы сайта больше всего связаны с продажей определенного товара, и прогнозирования, какие следующие страницы сайта будут посещены.

•    Алгоритм временных рядов от Microsoft (Microsoft Time Series)-Создает модели, которые могут использоваться для прогнозирования одной или нескольких постоянно изменяющихся переменных, таких как цена акции. Алгоритм при прогнозировании основывается исключительно на трендах, полученных из обучающих данных при создании модели. Алгоритм временных рядов использует методику AutoRegression Trees, очень прост в использовании и генерирует модели с высокой точностью прогнозирования. Существует целое направление статистического анализа, по­священное временным рядам. Большинство других продуктов добычи данных предоставляет множество методик, таких как ARMA, ARIMA и Box­Jen­kins, из которых статистик должен выбрать наиболее соответствующую модели. Корпорация Mic­ro­soft выбрала подход, который делает анализ временных рядов доступным широкой аудитории, с великолепными и точными результатами.

•    Алгоритм нейронной сети от 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 или любую другую среду разработки.

Большинство корпоративных клиентов разрабатывает клиентское приложение добычи данных в виде веб­ или 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.Ana­lysis­Services.Viewers.

Некоторые клиенты, особенно независимые по­ставщики программного обеспечения, могут захотеть создать приложение, которое генерирует модель добычи данных. Генерация модели в таком приложении заменит разработку модели добычи данных в Business Intelligence Development Studio, возможно, для определенной области, такой как веб­аналитика. В этом случае в ваш проект потребуется включить 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 и включает:

•    полный набор инструментов для создания, управления и просмотра отчетов;

•    движок для хранения и обработки отчетов;

•    расширяемую архитектуру и открытые интерфейсы для встраивания отчетов или интеграции решения в различные ИТ­среды;

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

Зачем нужно использовать Reporting Services?

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

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

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

•    Полноценная серверная платформа отчетности-Reporting Services поддерживает полный жизненный цикл отчета, от разработки до доставки и постоянного управления отчетами.

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

•    Масштабируемость-Модульный, веб­ориентированный дизайн Reporting Services легко масштабируется для поддержки сред с большими объемами данных. Вы можете создать ферму серверов отчетности (reporting server farm) с множеством серверов отчетности, получающих доступ к одним и тем же базовым отчетам и обслуживающих тысячи клиентов через Веб.

•    Интеграция с другими продуктами и инстру­мен­тами Microsoft-Reporting Services поставляется вместе с SQL Server и легко интегрируется с известными инструментами Microsoft, такими как Office и SharePoint Portal Server, без необходимости программирования и дополнительных на­строек.

•    Отчетность конечных пользователей-Re­porting Services представляет Report Builder, который может применяться конечными пользователями для создания и модификации их собственных отчетов. Report Builder предоставляет такую функциональность через представление структур данных в виде бизнес­моделей, которые конечные пользователи будут применять для создания от­четов.

Варианты использования Reporting Services

Reporting Services объединяет полноценную платформу отчетности и масштабируемую и расширяемую архитектуру, удовлетворяя широкому диапазону потребностей в отчетности.

•    Отчетность предприятия-Предприятия могут использовать Reporting Services для создания внутренней отчетности и приложений интеллектуальной обработки данных. Многие компании создают рынки или хранилища данных для агрегации оперативных данных. Используя Reporting Services, сотрудники ИТ­департамента компании могут разрабатывать множество типов отчетов и отправлять их получателям, используя сочетание доставки с помощью электронной почты и публикации отчетов на корпоративном портале. Reporting Services обеспечивает большие преимущества предприятию как полноценная система отчетности, интегрированная с платформой интеллектуальной обработки данных Microsoft.

•    Встроенные отчеты-Независимые поставщики программного обеспечения (Independent Software Vendors, ISVs) могут использовать Reporting Ser­vi­ces для доставки сформированных отчетов как часть составного приложения, работающего с Microsoft SQL Server. ИТ­отдел клиента может получать эти отчеты как есть или использовать Reporting Services для настройки отчетов или создания новых отчетов для определенных нужд бизнеса. Для независимых поставщиков программного обеспечения Reporting Services предлагает упрощенный подход для встраивания гибких интерактивных отчетов в приложение.

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

•    Отчетность конечных пользователей-Компании могут создавать представления структур данных (реляционных или OLAP) в виде бизнес­моделей. Конечным пользователям не обязательно знать об объединениях таблиц или сложном SQL­коде только для того, чтобы получить результат из их данных. Они могут просто просматривать бизнес­описания и создавать отчеты с помощью метода drag and drop.

Возможности Reporting Services

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

Создание отчетов

Reporting Services включает в себя все необходимое, чтобы начать создавать традиционные или интерактивные отчеты, в том числе графический дизайнер отчетов с мастерами дизайна отчетов (табл. 2).

Управление отчетами

Reporting Services включает веб­инструмент для управления отчетами — Report Server Web Ap­pli­cation. Администраторы могут использовать этот инструмент для определения прав доступа к отчетам с помощью ролей, создавать расписания выполнения и доставки отчетов и отслеживать историю выполнения и доставки отчетов. Также предприятие или независимый поставщик программного обеспечения могут использовать Reporting Services Web Services API для создания соб­ственных приложений управления отчетами.

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

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

Доставка отчетов

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

Заключение

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

•    больших, сложных хранилищ данных, к которым легко выполнять запросы и которые недороги с точки зрения поддержки;

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

•    систем с небольшой задержкой обновления данных, которые доставляют аналитические данные оперативным пользователям;

•    систем аналитики замкнутого цикла и систем добычи данных;

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

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

*-Алекс Пейн. Интеллектуальная обработка данных и хранилищ данных в SQL Server 2005. Часть 1 // SQL Server для профессионалов. 2007. № 4.

Табл. 1

Аналитическая задача

Примеры

Алгоритмы Microsoft

Классификация
Назначение событий заранее определенным классам, таким как Хороший или Плохой

•     Анализ кредитного риска

•     Анализ «текучести» клиентов (churn analysis)

•     Удержание клиентов (customer retention)

•     Деревья принятия решений

•     Na-ve Bayes

•     Нейронные сети

Сегментирование
Разработка системы для группирования одинаковых событий

•     Анализ профиля покупателей

•     Кампания почтовой рассылки

•     Кластеризация

•     Последовательная кластеризация

Ассоциирование
Глубокий поиск корреляций

•     Анализ набора приобретаемых товаров (market basket analysis)

•     Глубокое исследование данных

•     Деревья принятия решений

•     Ассоциативные правила

Прогнозирование временных рядов
Прогнозирование будущего

•     Прогнозирование продаж

•     Прогнозирование цен акций

•     Временные ряды

Прогнозирование
Прогнозирование значения для нового события (например, для нового покупателя) на основе значений для подобных событий (таких, как существующие покупатели)

•     Котировки страховых ставок

•     Прогнозирование прибыли от покупателей

•     Прогнозирование температуры

•     Все алгоритмы

Анализ отклонений
Определение, как событие или сегмент отличается от других

•     Обнаружение мошенничества по кредитным картам

•     Анализ несанкционированного подключения к сети

•     Все алгоритмы

 

Табл. 2

Возможности при создании отчетов

Инструменты

Большое количество поддерживаемых источников данных

•    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)

 

Табл. 3

Возможности
управления отчетами

Инструменты

Метаданные отчетов

•    Название

•    Описание

Управление источниками данных

•    Соединения

•    Информация о правах пользователя

Управление параметрами

•    Значения по умолчанию

•    Поля ввода значений

Расписания выполнения отчетов

Интегрированы с SQL Server Agent

Параметры выполнения

«Живой» отчет, кешированный отчет или отчет­снимок. Отчет­снимок в Reporting Services — это хранимая копия набора данных отчета — результата выполнения запроса при запуске отчета

История предыдущих выполнений отчета

Каталогизированный список отчетов­снимков, хранящихся для повторного использования при необходимости

Безопасность отчетности

Пользователи, группы и роли

Report Server Web Application

Веб­инструмент управления для:

•    Определения безопасности

•    Создания расписаний выполнения и доставки отчетов

•    Отслеживания истории выполнения и доставки отчетов

Гибкие API для управления

Web Service API

 

Табл. 3

Возможности доставки отчетов

Инструменты

Набор настроек рендеринга отчетов

•    Веб­форматы (HTML)

•    Форматы для печати (PDF, TIFF)

•    Данные (Excel, XML, CSV)

•    Другие форматы через открытые API

Гибкие настройки доставки

•    Доставки по расписанию

•    Доставки, управляемые событиями

•    Персональные подписки

•    Доставка отрендеренного отчета или ссылки

•    Подписки, управляемые данными

•    Другие интегрированные приложения

SharePoint Integration

•    Веб­средства управления отчетами

•    Веб­средства просмотра отчетов

 

Взламываем SQL Server. Часть 4*

Джоэль Скэмбрэй (Joel Scambray) и Стюарт Макклюр (Stuart McClure)

Взломы веб-серверов и замена домашних страниц изображениями полуобнаженных красоток и полными самолюбования колкостями — с этим приходится сталкиваться довольно часто, но что нам делать с хакерами, чьи намерения простираются дальше, чем изменение нескольких страниц? Рано или поздно вы столкнетесь с противником, желающим завладеть вашим самым ценным имуществом ради мате­риаль­ной выгоды или просто назло. Что может быть важнее информации, запертой глубоко в недрах вашей базы данных? Записи о служащих, счета покупателей, информация о кредитных картах — все это может быть похищено.

Атаки с внедрением SQL-кода

Вторжения, о которых пойдет речь, лучше всего описать как возможность внедрять SQL­команды, которые разработчик никогда не намеревался использовать в существующем приложении. Этот тип атак не ограничен только рамками SQL Server. Практически любая база данных, которая принимает команды SQL, может быть подвержена им в той или иной степени. Тем не менее мы обсудим особенности этой проблемы в отношении к SQL Server, а также меры, которые вы можете принять, чтобы закрыть эту серьезную брешь.

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

•    определить страницу со слабой проверкой вводимых данных;

•    изучить и позаимствовать существующий SQL­код;

•    сконструировать SQL­код для внедрения, чтобы он сочетался с существующим кодом.

*-Джоэль Скэмбрэй и Стюарт Макклюр. Взламываем SQL Ser­ver. Части 1–3 // SQL Server для профессионалов. 2006. № 10, 12. 2007. № 2.

SQL Server: практикум по курсорам

Робин Пейдж (Robyn Page)

Цель этой серии практических работ — заинтересовать вас возможностью изучения SQL Server на практике. Мой личный опыт говорит, что быстрее всего знания и навыки усваиваются в процессе решения реальных задач и проведения экспериментов. Поэтому я прошу вас не только запускать приведенные здесь примеры, но и вносить изменения в код и данные, искать мои ошибки, пытаться найти другие способы решения поставленной задачи. Не стесняйтесь критиковать то, что я говорю, не соглашаться со мной, если можете подтвердить свое мнение реальными фактами.

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

Для чего нужны курсоры?

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

У курсоров есть полезное свойство: они позволяют с минимальными затратами времени и усилий переходить от баз данных ISAM или KSAM (таких, как DBase) к SQL Server. Курсоры широко используются DBLIB и ODBC для «обмана» простых источников данных на основе файлов.

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

Файловый ввод/вывод в языке T-SQL

Йозеф Гама (Joseph Gama)

Начав изучать T-SQL, не задавались ли вы вопросом, почему в нем нет специальных команд для работы с файлами? Однако, если подумать, это имеет смысл. В конце концов, работа с файлами, ввод/вывод, чтение/запись являются задачей номер один для систем управления реляционными базами данных, которые не слишком благосклонны к вмешательству программиста. Однако это не означает, что программист отстранен от возможности манипулировать файлами. В этой статье Йозеф Гама описывает, как использовать FSO и ADODB, а также рассказывает о различиях между ними.

Чтение данных из файла, работа с ними, а затем сохранение в другой файл — в большинстве языков программирования все это тривиальные задачи. Так почему же в T­SQL нет ни одной команды для работы с файловым вводом/выводом? Ответ прост: системы управления реляционными базами данных, такие как SQL Server, были изобретены с целью оградить программиста от низкоуровневого ввода/вывода. Но что, если вы хотите сделать что­то вроде создания индивидуального журнала или читать данные прямо из файла?

(Возврат на основную страницу)

Hosted by uCoz