Методы априорной оценки степени агрегации и производительности запросов в хранилищах данных

УДК 330.43

А.А. Попкова, С.Г. Фомичева

МЕТОДЫ АПРИОРНОМ ОЦЕНКИ СТЕПЕНИ АГРЕГАЦИИ И ПРОИЗВОДИТЕЛЬНОСТИ ЗАПРОСОВ В ХРАНИЛИЩАХ ДАННЫХ

Многие предприятия и организации при управлении своими бизнес-процессами интенсивно используют системы поддержки принятия решений (СППР) на базе OLAP-технологий. Для СППР требуются хронологические данные: факты за определенные интервалы времени. При этом OLAP-системы (On-Line Analytical Processing) построены на двух базовых принципах: данные, необходимые для принятия решений, предварительно агрегированы на всех соответствующих уровнях и организованы так, чтобы обеспечить максимально быстрый доступ к ним; язык манипулирования данными основан на использовании бизнес-понятий.

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

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

Обоснование необходимости априорной оценки степени агрегации данных

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

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

Рис. 1. Единое хранилище (Data Warehouse) системы качества вуза

какую именно информацию и в каком виде захочет получить пользователь, работая с СППР, измерения, по которым проводится анализ, достаточно стабильны, что позволяет на этапе проектирования ХД выделить плановые аналитические запросы. Помимо этого, существуют и незапланированные формы отчетов на основе запросов с низкой избирательностью, на формирование которых уходит намного больше времени. Отметим, что оптимизация соответствующих группирующих запросов OLTP-систем к существенному улучшению производительности не приводит. На рис. 2 приведена сравнительная характеристика времени выполнения плановых запросов для формирования сводных отчетов с использованием оптимизированных OLTP-решений и OLAP-технологий. По времени выполнения запросов с различной избирательностью, наблюдается значительная экономия машинного времени при использовании специализированных аналитических инструментов на основе OLAP-технологии.

Одним из основных свойств систем оперативного анализа данных является способность формирования агрегатных значений показателей с целью минимизации времени отклика при построении динамических отчетов. При этом необходимо разрешить дилемму между производительностью и объемом, занимаемым агрегатными значениями. Большое количество измерений и уровней агрегации внутри них приводят к эффекту, характеризующемуся чудовищным ростом объема дискового пространства, необходимого для хранения агрегатных значений показателей. Заблаговременное формирование и сохранение агрегатов обеспечивает уменьшение времени отклика на пользовательский запрос и является основным свойством систем поддержки оперативного анализа. Данные вопросы уже затрагивались в работах таких авторов, как Е.В. Хрусталев [1], М.С. Заботнев [2], но не приводилась оценка степени агрегации данных на уровне гиперкуба, рассматриваемая в данной статье.

Оценка степени агрегации данных в гиперкубе

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

а

С'п

где а — ^ - реальное количество агреги-

f=l ^ ,-=1 „ * рованных значений показателей (мер); а - максимально возможное количество агрегатных значений исходных данных гиперкуба.

Пусть Б = а?2, ..., - множество измерений гиперкуба, где п - количество упорядоченных измерений гиперкуба, включая иерархические измерения. Зададим множество меток /-го измерения - =

{т, т„

т

} и / = 1, п, где к. - количество различных кортежей (меток) /-го измерения.

а -

Рис. 2. Сравнительные характеристики времени выполнения плановых запросов для формирования сводных отчетов за период, ч

Я) ОКГР-запросы; () OLAP-запросы

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

=Е

г=1

г'

1П*,

]=1 ¡=1

= П

1=1

¿=1

Для случая, когда для /-го измерения существует I* уровней иерархии, введем к. - количество меток в ]-м уровне /-го измерения. Количество агрегатов для иерархического измерения определяется как сумма меток по всем уровням

'Г

иерархии, т. е.: к{ = ^ку. Следовательно, выра-М

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

\

< {

1=1

«*=П 5Л +1

м

¿=1

Отметим, что для поддержки механизма адресации к элементам многомерного массива типа MOLAP, в нем должны храниться все ячейки куба, в т. ч. и пустые. Это приводит к тому, что целиком заполненные данными и сколь угодно разреженные кубы занимают одинаковое дисковое пространство. ROLAP-хранилища не содержат «пустых» значений, т. к. записи в таблице фактов существуют только для заполненных ячеек куба. Но следует учитывать, что на каждое значение меры приходится несколько значений координат измерений, образующих внешний ключ в таблице фактов. Иначе говоря, каждая ячейка куба при использовании ROLAP-хранилища требует больше пространства памяти по сравнению с MOLAP [5].

Исходя из сказанного, можно предположить, что при высоких значениях степени агрегации данных куба многомерные хранилища требуют меньше внешней памяти, чем реляционные, а при низких - наоборот. Следовательно, существует некоторое пороговое значение степени агрегации аг, при превышении которого объем данных, занимаемый гиперкубом в случае его MOLAP-реализации, становится меньше по сравнению с ROLAP-реализацией. Выражение для расчета аг приведено в [5].

Найдем зависимость объема данных хранилища от плотности его заполнения. Для этого введем в рассмотрение следующие обозначения. Пусть 5 - размер одной ячейки куба в байтах; - размер ключевого атрибута в таблице фактов в байтах.

Тогда объем данных Бт для MOLAP-хранилища может быть вычислен по формуле:

5 = ¥-5.

т

Аналогичная формула для объема ROLAP-хранилища Бг с учетом хранения ключевых атрибутов в таблице факта имеет вид:

5 = + 5уп) = а-¥(5 + ¿уи).

Для нахождения пороговой степени агрегации приравняем правые части выражений (4) и (5). В результате получим:

акг = —^ .

кг 5 + 5, п к

Экспериментальным путем показано [6], что при а > акг MOLAP-реaлизaция данного куба будет более эффективной с точки зрения занимаемого пространства внешней памяти, чем ROLAP.

Для рассматриваемого примера, в AS-кубе информационно-библиотечного фонда (ИБФ) вуза (рис. 3) присутствуют следующие измерения: заглавие книги (^), дата издания (^2), тип литературы (^3), издательство (^4), город издания (^5), автор документа документ (^7), форма обучения (^ ), курс обучения (^ ), семестр обучения (^12) [3]. Указанным измерениям для частного случая Норильского индустриального института соответствуют следующие размерности множеств меток измерений: | = к1 = 18656, | = к2 = 92,

К! = к3 = 21, К1 =1 к4 = 1675, К1 =2 к5 = 202,

К|=к= 11752, к = к11 = 6 = к12 = 2.

В рассматриваемом кубе присутствуют измерения со вложенными иерархиями, к ним относятся: учебный план (^8): цикл дисциплин (^ ) - дисциплина (^ ); структурная единица вуза (^9): факультет (^94) - кафедра (^93) - специальность (^92) - группа (^91). При этом, количество уровней иерархии измерения учебный план (^8) равно двум, т. е. I* = 2, а количество уровней иерархии измерения структурная единица вуза (^9) равно четырем, т. е. I** = 4. Общее число меток измерения учебный план (^8) и структурная единица вуза (^9) равно, соответственно, | = к81 + к82 =

= 678 + 6 = к8 = 684 и М,| = к91 + к92 = к93 = к94 = к2 =

= 410.

Количество факультетов, кафедр, специальностей и групп в вузе равно, соответственно, к94 = 4, к93 = 17, к92 = 21 и к91 = 368 . Отметим, что в си-

= к7 = 26000, М,о| = к10 = 5,

Рис. 3. Логическая структура витрины данных «ИБФ вуза»

стеме оперативного управления ИБФ вуза выполняется многомерный анализ не только по общей структуре гиперкуба Ф, но и по отдельным AS-кубам: «Книжный фонд» Ф «Количество экземпляров книг - Дисциплины» Ф2, «Группы - Дисциплины» Ф3, «Контингент» Ф4 и «Обращаемость книги» Ф5. Поэтому после вычисления степеней

агрегации а1 ^ а5 по отдельным AS-кубaм Ф1-Ф5 определяется степень агрегации а по совокупному по гиперкубу Ф:

«,=^^ = 3,5.10-;

13 10й

а,

2,4 10

684 32031

20

210

-2 .

а.

а, =

810

= 5740 ~ 29706

= 210

,-2.

0,18 = 0,2;

Значения степени агрегации данных гиперкуба

Название куба Количество измерений куба и Размер одной ячейки куба!, байт Размер ключевого атрибута в таблице факта Як, байт Степень агрегации куба а Общее количество ячеек куба V Объем данных для режима МОЬАР 5т Объем данных для режима ЯОЬАР 5г Пороговая степень агрегации куба а^ Рекомендуемый тип OLAP

Куб (Ф1) 7 4 4 3.50Е-12 3,73Е+21 1.49Е+22 4Д7345Е+11 0,13 HOLAP

Куб (Ф2) 3 4 4 2.00Е-02 7291440000 2.92Е+10 2333260800 0,25 HOLAP

Куб (ФЗ) 2 4 4 2,00Е-02 280440 1Д2Е+06 67305,6 0,33 HOLAP

Куб (Ф4) 4 4 4 1.80Е-01 24600 9.84Е+04 88560 0,20 HOLAP

Куб (Ф5) 2 4 4 9.90Е-01 10660000 4.26Е+07 126640800 0,33 MOLAP

Гиперкуб (Ф) 12 4 4 5Д0Е-16 6,27001Е+28 2.51Е+29 1.66281Е+15 0,25 HOLAP

а, =

10660000 10686411

= 0,99 = 1,

Z««

а =

8,2-1012 _ дд. ю-16.

п 16-Ю27

В таблице показаны рассчитанные реальные значения степени агрегации и пороговой степени агрегации данных в кубах (Ф1, Ф2, Ф3, Ф4, Ф5) и в гиперкубе (Ф) рассматриваемого примера, что позволяет обосновать выбор типа OLAP-режима с учетом того, что детальные данные хранятся в OLTP-базах данных.

Методика оптимизации процедур формирования агрегатов

Методика оптимизации процедур формирования агрегатов основана на представлении гиперкуба в виде ориентированного графа G(V, E(V)),

т

где V = UG,- - множество узлов, каждый из кото-;=1

рых G. в свою очередь также является многомерным кубом; E(V) - соответствующее упорядочен-

т

ное множество направленных дуг E{v) — [J £(01).

>=i

Для оптимизации запросов следует последовательно решить задачи локальной оптимизации в виде определения минимальных критических путей в графах G,, а затем найти «глобальные» минимальные критические пути в графе G(V, E(V)).

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

1. Для i-го куба (i = 1, m) по каждому аналитическому измерению j (j = 1, ni) следует построить ориентированный граф G.(i), в котором множество агрегатов ассоциируется с вершинами ориентированного графа определенного уровня агрегации. Начальной вершиной такого графа является узел множества исходных данных, а конечной - узел полного агрегата (All). Ребра графа представляют собой аналог процедуры агрегации элементов определенного уровня и имеют соответствующий

вес (Pii). щ

2. Сформировать граф G, = ^.^G^, где X -

м

означает операцию соединения узлов подграфов G (j), которые представляют один и тот же факт и соответствуют элементам одного и того же уровня агрегации каждого из измерений j (j = 1, nt), использующихся для анализа факта.

3. Обозначим П. - упорядоченное множество всех маршрутов р. для всех узлов графа О.; р. - вес дуги I е Е

,(min):

РГ

-mmPi - min У Ра -тт 4,Д Л ).

де П, feE(C() i 1 "

tep

В

определяется следующим

образом:

t=1,

где А^ 11 - множество агрегатов, полученных агрегированием по всем элементам измерений (упорядоченным по номеру); п - количество измерений и 1.е {0,1}; А1 1 - где индексы во всех позициях равны единицы, является множеством исходных данных; А00 - где индексы равны нулю, содержит единственное значение полного агрегата. Упорядоченную последовательность ¡1, ..., I., ..., I , соответствующую множеству агрегатов А , будем называть состоянием агрегации.

'1...ч...'п

Очевидно, что разные состояния агрегации, а, следовательно, и множество агрегатов могут соответствовать одному и тому же уровню детализации, т. е. I = 11 + ... + I . + ... + ¡п. Обозначим количество агрегатов множества А^ ^ |, как а1 II = А ¡11. Количество агрегатов, получен-

1... I ... п I 1... ' . и

ных агрегированием по некоторым измерениям, равно произведению числа элементов всех остальных измерений, то есть

a = Ш,

k ...г,- ...;„ 11 <• i-1

В общем случае обозначим C(i

Ai1...«J„)

(1, А, , затраты на выполнение агрегирования множества А по .-му измерению.

1... ¡... п

В случае определения количества агрегатов

7 *

по .-му измерению с ¡. уровнями иерархии, необходимо использовать следующее утверждение. Количество элементарных операций суммирования значений показателя, соответствующих ¡.-му уровню, с целью получения агрегированных значений показателя нижнего ¡- 1-го уровня, равно к , - к для V/ = 1,1. .

ц-1 / .

Таким образом, при суммировании множеств

агрегатов по /-му измерению с 1.1-го уровня на

I. -й уровень необходимо для каждой комбинации

из элементов текущих уровней всех остальных

п - 1 измерений провести к - к.. элементарных опе-

. 1 . / \ раций суммирования, т. е. получаем С( /, А ) =

л 4 1...1... п

(=1, ш

4. Выполнить слияние О. и сформировать результирующий гиперкуб в виде графа О(У, Е(У)) =

т _

= С,- , где / = 1, т - количество объединяемых 1=1

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

5. Для О(У, Е(У)) необходимо найти вес ребер в соответствии с выражением (10). Учитывая, что одни факты могут быть вычислены только на основании других фактов, для получения оптимизированных запросов вычисления фактов, введем выражение для расчета вычислительных затрат на агрегирование данных в гиперкубе. При вычислении факта гиперкуба в разрезе некоторого измерения многомерного куба, для каждой результирующей строки ?-й таблицы фактов потре-

буется вычислять агрегатные значения по обозначенному /-му измерению, т. е.

С" = с{г,Аш\

<=1

где t - порядковый номер таблицы фактов Ф; гиперкуба «ИБФ вуза»; t = 1,т и т = 5 . Выражение С(/, А^ I 1) вычисляется по формуле (8). Минимальный критический путь в О( V, Е( V)) при этом будет соответствовать наименее затратному агрегированному запросу для формирования полного агрегата гиперкуба.

Применим указанную методику для ориентированного графа, описывающего куб «Книжный фонд» (Ф1), изображенный на рис. 4. Он включает подграф аналитического измерения «Дата издания» (^2) с иерархиями «Месяц издания» (М2), «Год издания» (72) и «Весь период» (А2). Причем,

Ы = к21 = 12, = к22 = 80, ^ = К\ = к2 = 92.

Аналитическое измерение «Учебный план» (^8) с иерархиями «Дисциплина» (^81), «Цикл дисциплина» (^82) и «Различные направления квалификационной деятельности вуза» (А8) представлено на рис. 3. В том числе, \МА] = \МЛ \ = к8 = 684.

Граф, описывающий весь гиперкуб «ИБФ вуза» Ф в обобщенном виде приведен на рис. 5, где в качестве измерений выступают уже группы мер, построенные по вышеобозначенным фактам

Рис. 4. Ориентированный граф куба «Книжный фонд»

Рис. 5. Ориентированный граф гиперкуба «ИБФ вуза»

(Фр Ф2, Ф3, Ф4, Ф5), где |Фг| = кф1 = 26015,

= кф2 = 31629,

i 5 ф5

Для рассматриваемого примера существуют следующие множества агрегатов, соответствующие таблицам фактов: ^ ^ = {й1, й2, й3, d4, й5,

А2 = Ы й9, Р} , А 3 = К, с2„ Р}, А4 =

67 7 :о:г.г 77 8 97 ' 7 ххх 8 97 ' 7 дго-

= ^ ^ Е} и =

89

й9, Т}. Воспользуемся введенными обозначениями для расчета вычислительных затрат на агрегирование данных (9) по факту «Книжный фонд». Определим вычислительные затраты, связанные с вычислением факта объем фонда по вузу (Аф) в разрезе «Месяц издания» (М2) временного измерения «Дата издания» (й2). Получение множества А0100000 = {йф' = 1, п }, которому соответствуют агрегированные данные по измерениям й. куба «Книжный фонд», где п = 7, возможно несколькими способами:

А10100000 = А1(1, А11100000) агрегирование множества А^100000 по измерению «Наименование книги» (й1), тогда затраты на данную операцию рав-

С (1,

1100000

= 18655 12 = 223860

) = (к1 - 1)к21 = (186556 - 1)12 =

= А1

0110000

агрегирование множества А1 по измерению «Тип литературы» (й3), тогда затраты на данную операцию равны

С (3 А10110000) = к21 (к3 - 1) = 12 (21 - 1) = 12-20 = 240;

А 0100000 = А1(4, А 0101000) агрегирование множества А1

0101000

по измерению «Издательство» (й4), тогда затраты на данную операцию равны

С (4 А10101000) = к21 (к4 - 1) = 12 (1675 - 1) = 12 • 1674 = = 20088;

А10100000 = А1(5, А10100100) агрегирование множества А1 по измерению «Город издания»

(й5), тогда затраты на данную операцию равны

СI5, А10100100) = к21 (к5 - 1) = 12 (202 - 1) = 12 • 201 = = 2412;

А 0100000 = А1(6, А 0100010) агрегирование множества А1 по измерению «Автор документа»

(й5), тогда затраты на данную операцию равны

СI6, А10100010) = к21 (к6 - 1) = 12 (11752 - 1) = 12 • 11751 =

=141012;

А 0100000 = А1(7, А 0100001) агрегирование множества А1 по измерению «Документ» (й5), тогда

затраты на данную операцию равны С (7, А0100001) =

= к21 (к7 - 1) = 12 (26000 - 1) = 12 • 25999 = 311988.

Для вычисления факта в разрезе «Месяц издания» требование минимальных затрат на агрегирование данных выполняется в случае формирования множества агрегатов А10100000 по измерению «Тип литературы». Очевидно, что данный вывод

Рис. 6. Наименьший критический путь в ориентированном графе куба ф1

Рис. 7. Ориентированный граф факта «ИБф вуза» с обозначенными фактами хранения в режиме МОЬАР

¡2 'се'

£ 5

£

й 3 щ '

§ I * -8-

3 ? ш 3

3.06Е+08

3,1Е+08

Р,06Е+08 2,1 Е+07

9.7Е+12

3.8Е+10

6

3,40Е-|-0£| 4.6Е+08

п 1.5Е+08 4]6Е+07

1.5Е+10

3.4Е+09

1.5Е+10

1356

*,07Ен 04

ГО"

И

' ,0

)Е+00

9,2 Е+07

241

8.00Е нО1

12

5 6 7

Сводный отчёт

10

11

Рис. 8. Вычислительные затраты, связанные с формированием множества агрегатов в режимах хранения данных HOLAP и MOLAP () HOLAP; () MOLAP

подтвердится и при вычислении факта в разрезах «Год издания» (72) и «Весь период» (А2). Соответственно, наименьшие критические пути в ориентированном графе для выполнения запроса по факту «Книжный фонд» (Ф1) будут иметь вид, представленный на рис. 6.

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

Поэтому в данном случае принимаем решение: факты Ф2, Ф4 и Ф5 хранить в режиме МОЬАГ (рис. 7), тогда затраты на агрегирование данных в оперативном режиме будут минимальными, а выигрыш в вычислительном эффекте составит несколько порядков (рис. 8).

При этом объем дискового пространства, требуемый для хранения агрегированных МОЬАГ

значений составляет 0,127 Гб, (0,008 % от объема детализированных данных).

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

СПИСОК ЛИТЕРАТУРЫ

1. Хрусталев, Е.В. Агрегация данных в OLAP-кубах [Электронный ресурс]/Е.В. Хрусталев//Алеф Консалтинг & Софт, 2003.-http://www.iteam.ш/ puЫicatюns/it/sectюn_92/article_1759.pdf

2. Заботнев, М.С. Многомерная модель представления данных по образовательной статистике [Текст]/ М.С. Заботнев//Телемеханика-2003: Тр. X Всерос. НМК.-СПб, 2003.-С. 245-246.

3. Попкова, А.А. Коэффициент книгообеспечен-ности как критерий многомерного анализа обеспеченности учебного процесса [Текст]/А.А. Попкова, С.Г. Фомичева//Научно-технические ведомости СПбГПУ Сер. Информатика. Телекоммуникации. Управле-ние.-2009.-№ 6.-С. 206-220.

4. Висков, А.В. Средства описания многомерных моделей данных [Текст]/А.В. Висков, М.Б. Фомин//

Вестник РУДН. Сер. Прикладная и компьютерная математика. 2003.-Т.2. -№ 1.-С. 128-139.

5. Григорьев, Ю.А. Сравнение технологий хранения данных в OLAP-системaх [Электронный ресурс]/ Ю.А Григорьев/Организация баз данных.-2001. -№ 1.

www.amursu.ru/attachments/ics/N01_01.pdf

6. Zhao, Y.H. On the perfomance of an Array-Based ADT for OLAP Workloads [TeKCT]/Y.H. Zhao, K. Tufte, J.F. Naughton//Technical Report CS-TR-96-13-13, University of Wisconsin-Madison. CS Department, May 1996.