Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы_БД_ХД.doc
Скачиваний:
14
Добавлен:
20.08.2019
Размер:
172.54 Кб
Скачать

2.4. Многоуровневые структуры для olap

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

Агрегированные данные – это объединение множества данных в единое целое. Результат агрегирования называют агрегатом. Например, агрегированными данными являются суммы продаж для разных стран, вычисленные по фактам продажи товаров отдельным заказчикам.

Средства OLAP дают возможность работать с многоуровневыми объединениями данных. Например, данные в таблице могут не являются первичными, они могут быть получены в результате суммирования других элементов данных. Год делится на кварталы, кварталы на месяцы и т.д. Страна состоит из регионов, а регионы – из населенных пунктов. Товары можно объединять в товарные группы и так далее.

В терминах OLAP такие многоуровневые объединения называются иерархиями. Вдоль каждой оси куба данные могут быть организованы в виде иерархии, представляющей различные уровни их детализации. Благодаря такой модели данных пользователи могут формулировать сложные запросы, генерировать отчеты, получать подмножества данных. Средства OLAP дают возможность в любой момент перейти на нужный уровень иерархии. Причем, как правило, для одних и тех же элементов данных поддерживается несколько видов иерархий: например день-неделя-месяц или день-декада-квартал. Исходные данные берутся из нижних уровней иерархий, а затем суммируются (агрегируются) для получения значений более высоких уровней. Для того чтобы ускорить процесс перехода, агрегированные значения для разных уровней хранятся в кубе. Таким образом, то, что со стороны пользователя выглядит одним кубом, на самом деле может состоять из множества более примитивных кубов.

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

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

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

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

Отметим, что сохранение всех агрегатных данных не всегда оправдано. Дело в том, что при добавлении новых измерений объем данных, составляющих куб, растет экспоненциально (иногда говорят о «взрывном росте» объема данных). Если говорить более точно, степень роста объема агрегатных данных зависит от количества измерений куба и членов измерений на различных уровнях иерархий этих измерений. В результате, куб OLAP может занимать в десятки, и даже сотни раз больше места, чем исходные данные. Для решения проблемы «взрывного роста» применяются разнообразные схемы, позволяющие при вычислении далеко не всех возможных агрегатных данных достичь приемлемой скорости выполнения запросов.

Как исходные, так и агрегатные данные могут храниться либо в исходных реляционных, либо в многомерных структурах. Поэтому в настоящее время применяются три способа хранения данных:

MOLAP (Multidimensional OLAP) – исходные и агрегатные данные хранятся в многомерной базе данных. В этом случае имеется программа, которая еще на этапе предварительной загрузки данных из источников выполняет предварительный расчёт агрегатов (например, по нескольким исходным значениям вычисляется «Итог за месяц»). Эти вычисленные данные сразу же сохраняются в специальную многомерную БД, обеспечивающую их быстрое извлечение в будущем;

ROLAP (Relational OLAP) – хранятся в реляционных БД, а агрегаты могут не существовать вообще или создаваться по первому запросу к системе;

HOLAP (Hybrid OLAP)  отличается от MOLAP тем, что сами исходные данные остаются в той же реляционной базе данных, где они изначально и находились, а вычисленные агрегатные данные хранятся в многомерной базе данных.