|
||||||||
|
|
Анализ данных в корпоративных системах
В предыдущем разделе были подробно рассмотрены технологии хранилищ данных.
Теперь перейдем к следующему этапу. После того как данные получены, очищены, приведены
к единому виду и помещены в хранилище, их необходимо анализировать. Для этого
используется технология OLAP. OLAP - передовая технология анализа
Двенадцать определяющих принципов OLAP были сформулированы в 1993 году Е.Ф.Коддом, "изобретателем" реляционных баз
данных. OLAP - это OnLine Analytical
Processing, то есть оперативный анализ данных. Позже
определение Кодда было переработано в так называемый тест FASMI (Fast Analysis of
Shared Multidimensional Information - быстрый анализ разделяемой многомерной
информации), который требует, чтобы OLAP-приложение предоставляло следующие
возможности быстрого анализа разделяемой многомерной информации:
Многомерное представление. OLAP предоставляет организациям
максимально удобные и быстрые средства доступа, просмотра и анализа деловой
информации. Что наиболее важно - OLAP обеспечивает пользователя естественной,
интуитивно понятной моделью данных, организуя их в виде многомерных кубов (Cubes). Осями [L1][L2](dimensions)
многомерной системы координат служат основные атрибуты анализируемого
бизнес-процесса. Например, для процесса продаж это
может быть категория товара, регион, тип покупателя. Практически всегда в
качестве одного из измерений используется время. Внутри куба находятся данные,
количественно характеризующие процесс, - так называемые меры (Measures). Это могут быть объемы продаж в штуках или в
денежном выражении, остатки на складе, издержки и т.п. Пользователь,
анализирующий информацию, может "нарезать" куб по разным
направлениям, получать сводные (например, по годам) или, наоборот, детальные
(по неделям) данные и осуществлять прочие операции, которые необходимы ему для
анализа. Хранение данных OLAP. В первую очередь нужно сказать о том, что, поскольку
аналитик всегда оперирует некими суммарными (а не детальными) данными, в базах
данных OLAP практически всегда хранятся наряду с детальными данными и так
называемые агрегаты, то есть заранее вычисленные суммарные показатели.
Примерами агрегатов может служить суммарный объем продаж за год или средний
остаток товара на складе. Хранение заранее вычисленных агрегатов - это основной
способ повышения скорости выполнения OLAP-запросов. Однако построение агрегатов может привести к значительному увеличению объема
базы данных. Рассмотрим небольшой пример - куб, хранящий данные об объемах
продаж. В нем есть два измерения - период и регион. В каждом измерении
присутствует два значения. Мы хотим построить все возможные агрегаты:
В итоге мы имеем 4 значения исходных данных и 5 значений агрегатов, то есть
объем данных увеличился в 2,25 раза. Степень увеличения объема зависит от
количества измерений и количества уровней суммирования. В одном из недавно
опубликованных стандартных тестов полный подсчет агрегатов для 10 Мбайт
исходных данных потребовал 2,4 Гбайт дисковой памяти. Другой проблемой хранения OLAP-данных является разреженность многомерных
данных. Например, если в 1997 году продаж на юге не было, то на пересечении
соответствующих измерений куба не будет никакого значения. Если
OLAP-сервер будет хранить в таком случае некое отсутствующее значение, то при
значительной разреженности данных количество пустых ячеек (требующих, тем не
менее, места для хранения) может во много раз превысить количество
заполненных), и в результате общий объем неоправданно возрастет.
Решения, предлагаемые для этого компанией Microsoft,
приводятся ниже. Разновидности OLAP. Для хранения 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).
Администратор указывает таблицы фактов и атрибутов, а также выбирает, какие
именно поля будут использоваться в качестве мер и измерений.
Выбор технологии хранения
Для каждого куба администратор может выбрать любую из трех рассмотренных
выше технологий хранения - MOLAP, ROLAP или HOLAP (рис. 6). MOLAP рекомендуется использовать в том случае, когда требуется быстрый
доступ к небольшому или среднему объему данных. Для работы с большими объемами
данных, особенно в случае невысокой интенсивности запросов к ним (например, при
работе с архивными данными), рекомендуется использовать ROLAP. HOLAP, как уже
говорилось, сочетает в себе преимущества первых двух технологий.
При использовании любой из этих технологий Microsoft
SQL Server OLAP Services не
хранит пустых значений, то есть проблема разреженных данных решена. Построение агрегатов
Как мы уже говорили, построение агрегатов ускоряет выполнение OLAP-запросов,
но оно же приводит к "разбуханию" данных. Ранние OLAP-продукты
требовали вычисления всех агрегатов, которые были так
или иначе необходимы для анализа. Естественно, это вызывало лавинообразное
возрастание объемов. OLAP Services позволяет решить
эту проблему благодаря "интеллектуальному" агрегированию данных. При
создании куба мастер Data Storage
and Aggregation Wizard, пользуясь эвристическими методиками (основанными на
известном принципе "20-80"), определяет, какие агрегаты нужно
вычислить, чтобы достичь заданной производительности для большинства возможных
запросов при минимальном объеме (рис. 7). Либо,
наоборот, может быть ограничен объем данных, отводимый для хранения агрегатов,
и мастер выбирает наиболее эффективную схему их построения. При этом он
учитывает возможность построения одних агрегатов из других - например, имея
данные о суммарных продажах за апрель, май и июнь, можно легко вычислить объем
продаж за II квартал.
Разумеется, реальные запросы могут отличаться от тех, которые
рассматривались при начальном построении агрегатов. Для того чтобы
оптимизировать производительность исходя из реального
использования, OLAP Services может записывать
запросы пользователей в специальный журнал. Затем этот журнал используется
мастером Usage Based Optimization Wizard для создания
новой, более совершенной схемы агрегирования. Использование разделов (Partitions)
В рамках одного логического куба администратор может организовать несколько
физических разделов (partitions). Разделы могут иметь
различную структуру хранения (MOLAP, ROLAP, HOLAP) и разную "степень агрегированности". В варианте SQL Server
Enterprise Edition разделы
могут физически располагаться на разных серверах. При организации разделов администратор должен тщательно следить, чтобы
данные в разделах не пересекались и в то же время составляли полную картину, в
противном случае отчеты будут давать неверные результаты. Разделы могут
опираться на разные таблицы фактов в исходной реляционной БД либо использовать
одну таблицу фактов, разделенную на части условиями фильтрации. Цель использования разделов - оптимизация скорости доступа к данным в
зависимости от частоты их использования. Например, для часто используемых данных
текущего года администратор может задать хранение типа MOLAP и высокую степень агрегированности, а для архивных данных - ROLAP и минимум
агрегатов. При использовании Enterprise Edition разделы позволяют организовать эффективное
распределение нагрузки между серверами. При любой организации разделов их структура не видна конечному пользователю
- он видит логически единый куб. Обновление данных
При любой технологии организации куба данные в нем
требуется периодически обновлять. При использовании ROLAP или HOLAP нужно
только пересчитывать агрегаты (так как детальные данные обновляются
естественным путем при пополнении хранилища), а при использовании MOLAP
необходимо также обновить детальные данные. Обновление данных может
осуществляться одним из трех способов:
Права доступа
Служба OLAP Services позволяет управлять правами
доступа пользователей к кубам. Пользователи в соответствии с их именами
идентифицируются в Windows NT. Права выдаются на куб
целиком и могут быть трех видов: "чтение", "чтение-запись"
и "администрирование". Управление правами возможно только в том
случае, если кубы хранятся на диске с файловой системой NTFS. Расширенные возможности
Служба OLAP Services обеспечивает также ряд
продвинутых возможностей OLAP-анализа. К ним относятся:
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-сервере.
Использование возможностей OLAP дает пользователям Excel
следующие преимущества:
Использование OLAP-данных в сводных таблицах Excel
2000 (по сравнению с использованием реляционных данных) обладает в определенном
смысле меньшей гибкостью. То, что в кубе описано как измерение, не может стать
мерой, и наоборот. Нельзя вводить произвольные уровни суммирования -
используются только те, что определены в кубе. Если пользователям требуются
новые уровни суммирования или иные изменения структуры куба, то они должны
обратиться к администратору OLAP-сервера. Это, очевидно, является необходимой
платой за высокую скорость анализа больших объемов данных. Однако в дальнейших
выпусках Excel эти ограничения будут сниматься. Office 2000 Web Components
Microsoft Office 2000
содержит также набор ActiveX-компонентов, называемых Office
2000 Web Components,
которые позволяют организовать анализ OLAP-данных средствами просмотра Web. К ним относятся следующие четыре компонента:
При работе с OLAP-данными Web Components
обращаются к PivotTable Services.
Таким образом, благодаря включению в новую СУБД 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 |