450 likes | 684 Views
Алексей Шуленин Microsoft Consulting Services. СРЕДСТВА Добычи данных в Microsoft SQL Server 2005. 2 -я серия Microsoft Office 2007 как аналитический клиент SQL Server. Краткое содержание предыдущей серии.
E N D
Алексей Шуленин MicrosoftConsulting Services СРЕДСТВА Добычи данных в MicrosoftSQLServer 2005 2-я серия MicrosoftOffice 2007 как аналитический клиент SQLServer
Краткое содержание предыдущей серии • См. доклад «Алгоритмы поиска закономерностей в составе аналитических служб SQLServer 2005» на конференции «Корпоративные базы данных-2006» • http://citforum.ru/seminars/cbd2006/ms_data_mining.ppt
Клиенты Data Mining • В предыдущий раз мы фокусировались на серверной стороне вопроса • по ходу дела упоминая о • том, как создать свои элементы управления, имплементировав интерфейс IMiningModelViewerControl • готовыхэлементах управления в составе Data Mining Web Controls Library (http://msdn2.microsoft.com/en-us/library/ms160727.aspx)* • покрывают 3 алгоритма: кластеры, деревья решений, наивный Байес • Сегодня мы остановимся на новых возможностях Office 2007 в качестве Data Mining-клиента для SQLServer 2005 *Последняя версия доступна в составе Feature Pack forMicrosoft SQL Server 2005 - February 2007 (см.далее)
Простота как доминирующий фактор эволюции методов доступа • Неуклонное движение в сторону упрощения • Как и в IT в целом • Если это можно назвать эволюцией • Но пользователь становится еще капризнее • И его инструмент переходит к разработчику • От окончательной деградации спасает непрерывно усложняющаяся серверная часть • 25 лет назад SQL тоже представлялся в качестве конечного клиентского инструмента • Одним из преимуществ реляционного подхода преподносилась эффективная работа пользователей в терминах наглядных понятий таблиц, строк, столбцов без необходимости знать, как в действительности организованы данные в памяти • Реляционная система скрывает от конечного пользователя последовательные просмотры таблиц, выполняя их наиболее эффективным образом (с) С.Д.Кузнецов «Введение в стандарты языка баз данных SQL»
Data Mining eXtensions (подразумевается - к классическому SQL) • Аналогичную историю можно рассказать про DMX • Появился в 1999 г., когда Microsoft объявила инициативу расширения стандартов OLEDB на область Data Mining • Впоследствии был поддержан Hyperion, SAS, Angoss, KXEN, Megaputer, ... • Вошел в состав SQLServer с версии 2000 • Жизненный цикл DM-приложения был стандартизован и описан в рамках реляционной модели • Создание модели = create table • Обучение = insert • Предсказание = select <гипотеза> prediction join <модель> • …
Создание drop mining structure Test; /* Создание структуры. Одна структура может содержать несколько моделей. */ create mining structure Test ([id] long key, Product long discrete, Customer long discrete); /* Добавляем к структуре модель. В модели уточняется, какие поля являютсяисходными, а какие будем предсказывать. Также задается алгоритм поиска закономерностей со своими специфичными параметрами. */ alter mining structure Test add mining model TestModel ([id], Product predict, Customer predict) using Microsoft_Clustering (Cluster_Count = 4, Modelling_Cardinality = 50, Stopping_Tolerance = 1, Clustering_Method = 3) with drillthrough;
Обучение и просмотр /* Натаскиваем модель - устраиваем конвергенцию кластеров. Для других алгоритмов, например, Decision Tree, insert значило бы обучение. [AdventureWorks DW] - это источник к реляционке, который должен быть прописан в Data Sources многомерной базы. */ insert into Test ([id], Product, Customer) openquery([Adventure Works DW], 'select row_number() over (order by ProductKey, CustomerKey) as ID, ProductKey, CustomerKey from dbo.FactInternetSales tablesample(1000 rows)'); /* Для просмотра модели она должна быть создана с опцией drillthrough */ select * from TestModel.Cases;
Обучение и просмотр /* Видим граф модели в виде таблицы. 1-я строка содержит описание модели в целом. Например, CHILDREN_CARDINALITY - это кол-во образовавшихся кластеров. Дальше следуют строки, соответствующие узлам описания этих кластеров. */ select * from TestModel.Content; /* То же самое, только результаты в виде плоского recordsetа (уплощаем NODE_DISTRIBUTION */ select flattened * from TestModel.Content; /* В запросе поля могут иметь тип "таблица" */ select node_name, node_type, node_caption, node_description, node_probability, (select attribute_name, attribute_value, [variance], attribute_value - [variance] as [С], attribute_value + [variance] as [По] from node_distribution where attribute_value <> 0) as t from TestModel.Content;
Предсказание /* Предсказание - это join. Можно предсказывать как одинарные значения */ select Cluster(), ClusterProbability() from TestModel natural prediction join (select 5 as X, 6 as Y) as t; /* так и наборы записей */ select t.Product, t.Customer, Cluster(), ClusterProbability() from TestModel natural prediction join openquery([Adventure Works DW], 'select top 3 ProductKey as Product, CustomerKey as Customer from dbo.FactInternetSales') as t;
О важности простого и наглядного клиента • Гигантское спасибо авторам DMX от разработчиков, потому что создавать DM-приложения на его основе стало не в пример удобнее и быстрее, отталкиваясь от привычной реляционной парадигмы • Подобно тому, как SQL пришел в свое время на смену системам на основе инвертированных списков, иерархическим, сетевым, ... • Однако всерьез представить себе, что какая-нибудь домохозяйка будет по-быстрому на нем ваять прогнозные модели, мягко говоря, трудно • Так же, как юзера, пишущего SQL-запросы • Бывают исключения, но не всегда на пользу • К тому же это не то, что мыслилось 20 лет назад: кто ж им щаз дасть права на ad hoc доступ к базе
О важности простого и наглядного клиента • Как донести до конечного пользователя плоды ваших серверных трудов? • Начальство едва ли возбудится, если ему показать скрипт на DMX • Потратить еще не меньше времени на написание красивого визуального клиента с бантиками? • Конечно, бывают ситуации, когда без написания собственного клиента не обойтись • Но, в целом, действует знаменитое правило 80:20 • В 80% случаях заказчику требуется некая штатная функциональность • Под которую достаточно иметь простого, но готового клиента
MicrosoftOffice как аналитический клиент • Начиная с появления OLAPServices в составе SQLServer 7.0, в MicrosoftExcel появилась возможность «цеплять» стандартную компоненту PivotTable к многомерному источнику данных • Оно и понятно – на двумерном экране сводная таблица служит идеальным инструментом представления многомерного куба • Одно или несколько измерений располагается по строкам / столбцам / фильтрам, в ячейках – одна или несколько мер • Поддерживаются операции slice (where) / dice (group by), rollup / drilldown, drillthrough, pivot, … • Применимы стандартные возможности Excel: графики, пользовательские вычисления, ...
Пример. Открываем соединение в Excel’e… • Либо новое, либо в Existing (если уже заводили)
Пример • В открывшейся панели Pivot Table Field List составляем сводную таблицу из объектов серверного куба • Форматирование – меню Design • Можно добавить связанный график • Меню Insert
MicrosoftOffice как аналитический клиент • С Analysis Services умели работать Office Web Components (OWC) – набор элементов управления для создания Web и Windows Forms-приложений • DataSource • Chart • Spreadsheet • PivotTable • OWC выпускались в версиях 2000, ХР, 2003 • 11-й выпуск стал последним • Окончание поддержки:
MicrosoftOffice как аналитический клиент • На смену OWC пришли Excel Services 2007 • Технология Microsoft Office SharePoint для совместного использования, управления, защиты и обеспечения целостности.xslx, xslb как интерактивных отчетовв масштабах предприятия • Основные компоненты Excel Services • Excel Calculation Services (ECS)- движок, который загружает книгу, вычисляет ячейки, обновляет внешние данные, управляет сессиями • Excel Web Access (EWA)– веб-часть, которая отображает книгу в браузере (ActiveX не используются, только DHTML и JavaScript); может быть связана с другими веб-частями • Excel Web Services (EWS)– веб-сервис, который хостится на сервере SharePoint и предоставляет интерфейсы для создания пользовательских приложений по управлению книгой
Excel Services и Excel 2007 • Таким образом, Office Excel 2007 может рассматриваться как authoring tool, а Excel Services как reporting tool • Пользователь разрабатывает книгу (workbook) и сохраняет ее в библиотеку документов • На основе опубликованной книги другие пользователи могут создавать отчеты, страницы веб-частей, дашборды и пр. • В опубликованной книге нельзя менять непосредственно значения ячеек – к ней нужно относится как к отчету • В опубликованной книге пользователи могут обновлять данные из внешних источников и пересчитывать результаты формул • Менять значения параметров • Выполнять сортировку и фильтрацию • ... • При наличии прав можно скопировать текущее состояние опубликованной книги с результатами работы в рамках текущей сессии (все вышеперечисленное) в клиентский Excel в виде книги или снимка
BI-возможности Office SharePoint Server 2007 • Report Center • Содержит специальные библиотеки документов для хранения отчетов, списков, веб-частей, шаблонов страниц веб-частей и .odc • Filter Web Parts и кнопка Apply Filter • Например, источник содержит продажи за много лет, по разным продуктам и регионам • При помощи этой возможности можно установить интересующий срез, который будет действовать одновременно сразу в нескольких веб-частях Excel Web Access • Office Shared Services Dashboards • Шаблон страницы из веб-частей в виде отчетов, графиков, метрик, отображающих статусы, тренды, проблемы, возможности, ... • Веб-части привязываются к различным источникам • KPI List Web Part • KPI – измеримая цель в динамике вместе с показателями своего достижения • Может собирать данные из списков SharePoint, книг Excel, SQL Server 2005 Analysis Services или с ручного ввода • Скоркарда содержит иерархический список KPI, как правило, в соответствии с организационной структурой предприятия
Управление KPI • Ведение KPI возможно в различных продуктах Microsoft : Report Center в Sharepoint 2007, Business Scorecard Manager 2005, … • Не стоит плодить число сущностей сверх необходимости, чтобы потом не запутаться • Имеет смысл определять KPI централизованно на уровне данных (читай, в кубе OLAP), используя все прочие инструменты в качестве отображения • Тем более, что все они находятся на более низких уровнях • Excel 2007, работая с кубом Analysis Services 2005, «понимает» эти KPI и позволяет отображать их в виде скоркарды
Пример: идем в Excel • Так же, как в примере со сводной таблицей, встать на пустую ячейку, выбрать меню Data и соединиться с кубом, открыв существующее соединение, либо создав новое • В уже знакомой панели Pivot Table Field List выбрать пункт KPIs, отметить нужные, выбрав для них интересующие характеристики: Value, Goal, Status, Trend • Повторить действия для остальных KPI
Пример • На самом деле, как мы видели из серверного слайда, статусное и трендовое выражения KPI возвращают число • Напр., 1, 0, -1 • Оно же присутствует в значении Excelной ячейки • Откуда там еще берется иконка? • Новая возможность в Excel 2007 под названием Conditional Formatting
Reporting Services 2005 и Office SharePoint Server 2007 • В состав SQLServerReporting Services, начиная с 2000 SP2, входят веб-части для размещения отчетов на портале SPS 2003 / WSS 2.0 • Report Explorer для навигации по отчетам • Report Viewer для просмотра отчета • Начиная с SQLServer 2005 SP2, Reporting Services могут функционировать в режиме интеграции с Sharepoint (SPS 2007/WSS 3.0) • Отчеты хранятся не в базе ReportServer, а в библиотеке документов Sharepoint, т.е. в его базе • Управление и просмотр отчетов консолидированы в среде Sharepoint • Выполнение отчетов по расписанию, кэширование и подписки оставлены за Report Server, т.к. библиотека документов Sharepointне имеет такой функциональности • Можно использовать стандартную функциональность Sharepoint: workflow, контроль версий, совместная работа
Data Mining возможности Office 2007 • Реализуются при помощи Microsoft SQL Server 2005 Data Mining Add-ins for Microsoft Office 2007 • Которые вышли в феврале 2007 г. как составная часть Feature Pack for Microsoft SQL Server 2005 - February 2007 • Feature Pack – выходящий на регулярной основе набор дополнений, средств соединения, административных утилит и других полезных вещей • В состав февральского пакета, кроме них, входят • SQL Server 2005 Compact Edition, ADOMD.NET, SNAC, MSXML 6.0, JDBC Driver к SQLServer 2005, .NET Data Provider for mySAP Business Suite, MS OLEDB Provider for DB2, SQL Server Mgmt Pack for MOM 2005,, Datamining Viewer Controls к SQLServer 2005, объектная модель .NET для подключения своих алгоритмов Data Mining и т.д.общим весом 348 МБ • Берется здесь: • http://www.microsoft.com/downloads/details.aspx?FamilyID=50b97994-8453-4998-8226-fa42ec403d17&DisplayLang=en
Microsoft SQL Server 2005 Data Mining Add-ins for Microsoft Office 2007 • Из всего этого богатства нас сегодня будет интересовать только subj • Не обязательно скачивать весь Feature Pack, если вас интересует отдельная компонента • Data Mining Add-ins берутся здесь: • http://www.microsoft.com/downloads/details.aspx?FamilyID=7c76e8df-8674-4c3b-a99b-55b17f3c4c51&DisplayLang=en • Дистрибутив занимает 13.8 МБ
Системные требования • ОС: • Windows 2000 SP4; Windows Server 2003 SP1; Windows Vista; Windows XP SP2 • Microsoft .NET Framework 2.0 • Microsoft Office 2007 with .NET Programmability Support • Редакции: Professional, Рrofessional Plus, Ultimate, Enterprise • Microsoft Viso Professional 2007 with .NET Programmability Support • Если ставим Data Mining Templates for Visio • 40 МБ места на диске • SQL Server 2005 Analysis Services • Enterprise Edition – SP1 и выше • Standard Edition – SP2 (и, видимо, выше)
Состав • Data Mining Templates for Visio • Поддерживается визульное отображение моделей в виде диаграмм Visio: • Decision Tree • Алгоритмы деревьев решений илирегрессионных моделей • Dependency Network • Алгоритмы Наивный Байес, деревья решений или ассоциации • Cluster • Алгоритмы кластеризации • Table Analysis Tools for Excel • Data Mining Client for Excel
Getting Started • Запускается автоматически при первом заходе в Excel после установки
Server Configuration • Выполняет следующие действия: • Запрашивает строку соединения с OLAP-сервером • Конфигурирует сервер для создания временных моделей • Спрашивает существующую БД для создания постоянных моделей или создает новую • Добавляет пользователей Add-In в роль администраторов этой БД
Что происходит на сервере?В общем, что и обещано <Alter AllowCreate="true" ObjectExpansion="ObjectProperties" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <Object/> <ObjectDefinition> <Server> <Name>localhost</Name> <ServerProperties> <ServerProperty> <Name>DataMining\AllowSessionMiningModels</Name> <Value>true</Value> </ServerProperty> </ServerProperties> </Server> </ObjectDefinition></Alter>
Что происходит на сервере?В общем, что и обещано <Createxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <ObjectDefinition> <Database> <ID>DMAddinsDB</ID> <Name>DMAddinsDB</Name> <DataSourceImpersonationInfo> <ImpersonationMode>ImpersonateCurrentUser</ImpersonationMode> </DataSourceImpersonationInfo> </Database> </ObjectDefinition></Create>
Что происходит на сервере?В общем, что и обещано • Создали роль: <Alter AllowCreate="true" ObjectExpansion="ObjectProperties" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <Object> <DatabaseID>DMAddinsDB</DatabaseID> <RoleID>DMc3774460-1d2d-44c1-becb-a8b27405dbb5</RoleID> </Object> <ObjectDefinition> <Role> <ID>DMc3774460-1d2d-44c1-becb-a8b27405dbb5</ID> <Name>ExcelAddins_Role_25-Apr-07 6_26_46</Name> <Description>Administrators have unrestricted access to the database (they can read, process, modify and delete objects).</Description> <Members> <Member> <Name>EUROPE\alexejs</Name> </Member> </Members> </Role> </ObjectDefinition></Alter> <PropertyListxmlns="urn:schemas-microsoft-com:xml-analysis"> <LocaleIdentifier>1033</LocaleIdentifier> <Format>Native</Format> </PropertyList>
Что происходит на сервере?В общем, что и обещано • Дали административные привилегии: <Alter AllowCreate="true" ObjectExpansion="ObjectProperties" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <Object> <DatabaseID>DMAddinsDB</DatabaseID> <DatabasePermissionID>DatabasePermission</DatabasePermissionID> </Object> <ObjectDefinition> <DatabasePermission> <ID>DatabasePermission</ID> <Name>DatabasePermission</Name> <RoleID>DMc3774460-1d2d-44c1-becb-a8b27405dbb5</RoleID> <Process>true</Process> <ReadDefinition>Allowed</ReadDefinition> <Administer>true</Administer> <Read>Allowed</Read> </DatabasePermission> </ObjectDefinition></Alter> <PropertyListxmlns="urn:schemas-microsoft-com:xml-analysis"> <LocaleIdentifier>1033</LocaleIdentifier> <Format>Native</Format> </PropertyList>
Далее по умолчанию открываются Sample Data из стартового меню • C:\Program Files\Microsoft SQL Server 2005 DM Add-Ins\DMAddins_SampleData.xlsx
Ресурсы: • Домашняя страница microsoft.com по технологиям Data Mining • http://www.microsoft.com/sql/technologies/dm/default.mspx • Страничка на microsoft.com, посвященная сегодняшней тематике • http://www.microsoft.com/sql/technologies/dm/addins.mspx • Там есть полезные tutorials по каждой компоненте • Whitepaper по вопросам интеграции Office 2007 с SQLServer 2005 • http://go.microsoft.com/fwlink/?LinkId=86356 • MSDNовский форум по Data Mining: • http://forums.microsoft.com/msdn/showforum.aspx?forumid=81&siteid=1
Спасибо за внимание • Вопросы?