Вход



Поиск по сайту
Google на mf.grsu.by

  
Главная страница >> Учебный процесс >> Букинист >> OLAP >> Средства аналитической обработки >> Анализ данных в корпоративных системах

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


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

OLAP - передовая технология анализа

Двенадцать определяющих принципов OLAP были сформулированы в 1993 году Е.Ф.Коддом, "изобретателем" реляционных баз данных. OLAP - это OnLine Analytical Processing, то есть оперативный анализ данных. Позже определение Кодда было переработано в так называемый тест FASMI (Fast Analysis of Shared Multidimensional Information - быстрый анализ разделяемой многомерной информации), который требует, чтобы OLAP-приложение предоставляло следующие возможности быстрого анализа разделяемой многомерной информации:

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

Многомерное представление. OLAP предоставляет организациям максимально удобные и быстрые средства доступа, просмотра и анализа деловой информации. Что наиболее важно - OLAP обеспечивает пользователя естественной, интуитивно понятной моделью данных, организуя их в виде многомерных кубов (Cubes). Осями [L1][L2](dimensions) многомерной системы координат служат основные атрибуты анализируемого бизнес-процесса. Например, для процесса продаж это может быть категория товара, регион, тип покупателя. Практически всегда в качестве одного из измерений используется время. Внутри куба находятся данные, количественно характеризующие процесс, - так называемые меры (Measures). Это могут быть объемы продаж в штуках или в денежном выражении, остатки на складе, издержки и т.п. Пользователь, анализирующий информацию, может "нарезать" куб по разным направлениям, получать сводные (например, по годам) или, наоборот, детальные (по неделям) данные и осуществлять прочие операции, которые необходимы ему для анализа.

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

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

 

1997 год   

1998 год   

Сумма   

Север   

20

50

70

Юг

30

80

110

Сумма

50

130

180

В итоге мы имеем 4 значения исходных данных и 5 значений агрегатов, то есть объем данных увеличился в 2,25 раза. Степень увеличения объема зависит от количества измерений и количества уровней суммирования. В одном из недавно опубликованных стандартных тестов полный подсчет агрегатов для 10 Мбайт исходных данных потребовал 2,4 Гбайт дисковой памяти.

Другой проблемой хранения OLAP-данных является разреженность многомерных данных. Например, если в 1997 году продаж на юге не было, то на пересечении соответствующих измерений куба не будет никакого значения. Если OLAP-сервер будет хранить в таком случае некое отсутствующее значение, то при значительной разреженности данных количество пустых ячеек (требующих, тем не менее, места для хранения) может во много раз превысить количество заполненных), и в результате общий объем неоправданно возрастет. Решения, предлагаемые для этого компанией Microsoft, приводятся ниже.

Разновидности OLAP. Для хранения OLAP-данных могут использоваться:

  • Специальные многомерные СУБД (OLAP-серверы). В этом случае говорят о MOLAP (Multidimensional OLAP). При выполнении сложных запросов, анализирующих данные в различных измерениях, многомерные СУБД обеспечивают большую производительность, чем реляционные. При этом скорость выполнения запроса не зависит от того, по какому измерению производится "срез" многомерного куба.
  • Традиционные реляционные СУБД - ROLAP (Relational OLAP). Применение специальных структур данных - схемы "звезды" (star) и "снежинки" (snowflake), а также хранение вычисленных агрегатов делают возможным многомерный анализ реляционных данных. Реляционные СУБД исторически более привычны, и в них сделаны значительные инвестиции, поэтому пока ROLAP более распространен.
  • Комбинированный вариант - HOLAP (Hybrid OLAP), совмещающий и тот и другой вид СУБД. Одним из вариантов совмещения двух типов СУБД является хранение агрегатов в многомерной СУБД, а детальных данных (имеющих наибольший объем) - в реляционной.

Средства OLAP-анализа, предлагаемые компанией Microsoft

В комплект Microsoft SQL Server 7.0 входит полнофункциональный OLAP-сервер - SQL Server OLAP Services. Сервер, естественно, предназначен для обслуживания запросов клиентов, а для этого требуется некий протокол взаимодействия и язык запросов. Например, для взаимодействия клиента с серверной реляционной СУБД - SQL Server - используются протоколы ODBC или OLE DB и язык запросов SQL. Для доступа к OLAP-серверу компанией Microsoft был разработан протокол OLE DB for OLAP и язык запросов к многомерным данным - MDX (MultiDimensional eXpression). Аналогично тому, как для упрощения и удобства над OLE DB разработан слой объектов ADO (ActiveX Data Objects), над OLE DB for OLAP построен ADO MD (MultiDimensional ADO).

Спецификация OLE DB for OLAP, опубликованная еще до выхода Microsoft SQL Server 7.0, была широко поддержана независимыми производителями ПО. Целый ряд продуктов (как клиентских, так и серверных), совместимых с OLE DB for OLAP, уже появился на рынке.

Собирается ли Microsoft выпустить свой OLAP-клиент? Да, таким клиентом станет Microsoft Excel 2000. На рис. 5 представлена схема взаимодействия различных компонентов клиент-серверного OLAP-приложения, построенного по спецификациям Microsoft. Ниже основные компоненты этой схемы рассмотрены более подробно.

Microsoft SQL Server OLAP Services

OLAP-сервер функционирует как сервис Windows NT. Для его администрирования используется набор объектов Decision Support Objects (DSO) - аналог Distributed Management Objects (DMO) для SQL Server. Основное средство администрирования OLAP Services - OLAP Manager построено на базе DSO и является модулем расширения (snap-in) для MMC (Microsoft Management Console).

Построение кубов

При помощи OLAP Manager администратор создает базы данных и строит кубы (Cubes). В этом процессе ему может оказать большую помощь мастер Cube Wizard.

Несомненным достоинством Cube Wizard является легкость, с которой кубы строятся из реляционных баз данных, построенных по схеме "звезды" или "снежинки". Напомним, что эти схемы, традиционные для хранилищ данных, состоят из центральной таблицы, называемой таблицей фактов, и нескольких связанных с ней таблиц атрибутов (измерений). При данном построении таблица фактов (fact table) преобразуется в набор мер (measures), а таблицы атрибутов - в измерения (dimensions). Администратор указывает таблицы фактов и атрибутов, а также выбирает, какие именно поля будут использоваться в качестве мер и измерений.

Рис. 5. Соответствие реляционной схемы и куба
Рис. 5. Соответствие реляционной схемы и куба

Выбор технологии хранения

Для каждого куба администратор может выбрать любую из трех рассмотренных выше технологий хранения - MOLAP, ROLAP или HOLAP (рис. 6).

MOLAP рекомендуется использовать в том случае, когда требуется быстрый доступ к небольшому или среднему объему данных. Для работы с большими объемами данных, особенно в случае невысокой интенсивности запросов к ним (например, при работе с архивными данными), рекомендуется использовать ROLAP. HOLAP, как уже говорилось, сочетает в себе преимущества первых двух технологий.

Рис. 6. Выбор технологии хранения куба
Рис. 6. Выбор технологии хранения куба

При использовании любой из этих технологий Microsoft SQL Server OLAP Services не хранит пустых значений, то есть проблема разреженных данных решена.

Построение агрегатов

Как мы уже говорили, построение агрегатов ускоряет выполнение OLAP-запросов, но оно же приводит к "разбуханию" данных. Ранние OLAP-продукты требовали вычисления всех агрегатов, которые были так или иначе необходимы для анализа. Естественно, это вызывало лавинообразное возрастание объемов. OLAP Services позволяет решить эту проблему благодаря "интеллектуальному" агрегированию данных. При создании куба мастер Data Storage and Aggregation Wizard, пользуясь эвристическими методиками (основанными на известном принципе "20-80"), определяет, какие агрегаты нужно вычислить, чтобы достичь заданной производительности для большинства возможных запросов при минимальном объеме (рис. 7). Либо, наоборот, может быть ограничен объем данных, отводимый для хранения агрегатов, и мастер выбирает наиболее эффективную схему их построения. При этом он учитывает возможность построения одних агрегатов из других - например, имея данные о суммарных продажах за апрель, май и июнь, можно легко вычислить объем продаж за II квартал.

Рис. 7. Построение агрегатов
Рис. 7. Построение агрегатов

Разумеется, реальные запросы могут отличаться от тех, которые рассматривались при начальном построении агрегатов. Для того чтобы оптимизировать производительность исходя из реального использования, OLAP Services может записывать запросы пользователей в специальный журнал. Затем этот журнал используется мастером Usage Based Optimization Wizard для создания новой, более совершенной схемы агрегирования.

Использование разделов (Partitions)

В рамках одного логического куба администратор может организовать несколько физических разделов (partitions). Разделы могут иметь различную структуру хранения (MOLAP, ROLAP, HOLAP) и разную "степень агрегированности". В варианте SQL Server Enterprise Edition разделы могут физически располагаться на разных серверах.

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

Цель использования разделов - оптимизация скорости доступа к данным в зависимости от частоты их использования. Например, для часто используемых данных текущего года администратор может задать хранение типа MOLAP и высокую степень агрегированности, а для архивных данных - ROLAP и минимум агрегатов. При использовании Enterprise Edition разделы позволяют организовать эффективное распределение нагрузки между серверами.

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

Обновление данных

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

  • Process - это полное обновление как структуры куба, так и всех его данных;
  • Incremental update - "подкачка" новых данных с обновлением агрегатов;
  • Refresh Data - полное обновление данных и агрегатов без измен

Права доступа

Служба OLAP Services позволяет управлять правами доступа пользователей к кубам. Пользователи в соответствии с их именами идентифицируются в Windows NT. Права выдаются на куб целиком и могут быть трех видов: "чтение", "чтение-запись" и "администрирование". Управление правами возможно только в том случае, если кубы хранятся на диске с файловой системой NTFS.

Расширенные возможности

Служба OLAP Services обеспечивает также ряд продвинутых возможностей OLAP-анализа. К ним относятся:

  • Виртуальные кубы. Они подобны представлениям (View) в реляционных базах и позволяют организовать новое представление данных, логически связав несколько кубов по общим измерениям. Виртуальные кубы не занимают дополнительного дискового пространства.
  • Свойства измерений (member properties). Позволяют описать дополнительные атрибуты для каждого значения некоторого измерения. Например, для каждого магазина можно ввести атрибут, хранящий фамилию менеджера, управляющего этим магазином. Это дает возможность внести дополнительный атрибут в данные и в дальнейшем визуализировать его и использовать при отборе данных.
  • Виртуальные измерения. Свойства измерений также позволяют организовать виртуальные измерения, которые подобны обычным измерениям, но не требуют места для хранения. Агрегаты по виртуальным измерениям не хранятся и всегда вычисляются "на лету".
  • Возможность модификации куба (write back). Данные в куб попадают из хранилища и в дальнейшем не меняются, так как это, по сути, исторические данные. Тем не менее пользователи OLAP Services имеют возможность приписывать изменения к данным в кубе. Это может пригодиться при проведении анализа по принципу "Что если" - аналитик модифицирует исходные данные и отслеживает изменение целевых показателей.

PivotTable Services

Служба PivotTable Services (PTS) выступает в качестве поставщика OLE DB for OLAP, который обеспечивает выполнение запроса любого клиента OLE DB for OLAP. При этом PTS содержит ряд расширений относительно стандарта OLE DB - таких как кэширование запросов на клиенте и работа с локальными кубами. Эти его свойства обеспечивают уникальные возможности для клиентских OLAP-инструментов.

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

Наиболее ценной возможностью PTS является сохранение результатов запросов к OLAP-серверу в виде локальных кубов, которые затем можно анализировать, вообще не обращаясь к серверу! PTS содержит часть программного кода OLAP Services, благодаря чему обеспечивает выполнение OLAP-запросов как к локальным кубам, так и к реляционным источникам данных. Фактически PTS является настольным OLAP-сервером, лишенным, однако, возможности сохранять агрегаты. Поэтому его быстродействие обратно пропорционально объему данных.

При помощи PTS локальный куб может быть создан OLAP-клиентом не только в результате запроса к OLAP-серверу, но и на основе запроса к реляционным данным, как к серверным, так и к локальным.

И, наконец, PTS позволяет встраивать средства OLAP-анализа в Web-страницы, которые обращаются к PTS через набор объектов ADO MD.

Средства анализа данных в Microsoft Office 2000

Excel 2000

Microsoft Excel 2000 содержит новый механизм сводных таблиц - OLAP PivotTable (рис. 8), который заменил собой одноименный механизм предыдущих версий. Наряду с прежними возможностями анализа реляционных данных, механизм PivotTable теперь включает возможности анализа OLAP-данных, то есть выступает в качестве OLAP-клиента. В качестве сервера может использоваться Microsoft SQL Server 7.0, а также любой продукт, поддерживающий интерфейс OLE DB for OLAP. Механизм сводных таблиц Excel в полном объеме поддерживает возможности, предоставляемые описанным выше сервисом PivotTable Services (PTS). Таким образом, анализируемые OLAP-данные могут находиться как в локальных кубах, так и на OLAP-сервере.

Рис. 8. OLAP-анализ при помощи сводных таблиц Excel 9
Рис. 8. OLAP-анализ при помощи сводных таблиц Excel 9

Использование возможностей OLAP дает пользователям Excel следующие преимущества:

  • Значительно повышается скорость обработки аналитических запросов.
  • Модель данных OLAP проста и интуитивно понятна пользователю. В отличие от анализа реляционных таблиц пользователю не требуется понимания структуры базы данных, назначения таблиц и способов связи между ними. Он оперирует заранее созданными кубами, содержащими все нужные данные.
  • Механизм сводных таблиц в Excel 97 требовал загрузки всех анализируемых реляционных данных в кэш, организуемый в оперативной памяти клиентского компьютера. Это накладывало жесткие ограничения как на объем, так и на скорость обработки. Новые сводные таблицы могут работать в режиме "клиент-сервер" и при использовании OLAP-сервера скачивают с него только необходимые для показа данные. Зачастую требуемые сводные значения вычислены на сервере заранее, что резко повышает скорость выполнения запросов.

Использование OLAP-данных в сводных таблицах Excel 2000 (по сравнению с использованием реляционных данных) обладает в определенном смысле меньшей гибкостью. То, что в кубе описано как измерение, не может стать мерой, и наоборот. Нельзя вводить произвольные уровни суммирования - используются только те, что определены в кубе. Если пользователям требуются новые уровни суммирования или иные изменения структуры куба, то они должны обратиться к администратору OLAP-сервера. Это, очевидно, является необходимой платой за высокую скорость анализа больших объемов данных. Однако в дальнейших выпусках Excel эти ограничения будут сниматься.

Office 2000 Web Components

Microsoft Office 2000 содержит также набор ActiveX-компонентов, называемых Office 2000 Web Components, которые позволяют организовать анализ OLAP-данных средствами просмотра Web. К ним относятся следующие четыре компонента:

  • Spreadsheet - реализует ограниченную функциональность листа Excel.
  • PivotTable - "близнец" сводных таблиц Excel; может работать с данными OLAP Services (рис. 9).
  • Chart - позволяет строить диаграммы, основанные как на реляционных, так и на OLAP-данных.
  • Data Source - служебный компонент для привязки остальных компонентов к источнику данных.

При работе с OLAP-данными Web Components обращаются к PivotTable Services.

Рис. 9. OLAP-анализ при помощи Web-компонента PivotTable
Рис. 9. OLAP-анализ при помощи Web-компонента PivotTable

Таким образом, благодаря включению в новую СУБД SQL Server 7.0 ряда мощных возможностей, ориентированных на поддержку хранилищ данных, Microsoft выходит на ведущие позиции в этой отрасли. Основанные на архитектуре Microsoft Data Warehousing Framework продукты, такие как SQL Server OLAP Services, открывают путь к применению технологий хранилищ данных множеству организаций - за счет невысокой стоимости и простоты использования. С выходом Office 2000 пользователи получат законченный комплект продуктов, обеспечивающих анализ данных с применением OLAP-технологий. Широкая поддержка третьими фирмами стандартов, предложенных Microsoft, в первую очередь OLE DB for OLAP, обеспечит пользователям широкий выбор средств анализа данных, совместимых с OLAP Services.

Более подробную информацию о технологиях работы с данными вы найдете на http://www.microsoft.com/sql

 

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017