Аналитические способы оценки эффективности применения пространственных индексов в OLAP-системах

sign. [Текст]/ J. Rumbaugh. -N.J.:-Prentice Hall, Engle-wood Cliffs, 1991.

5. Shlaer, S. Object-Oriented Systems Analysis: Modeling The Real World in Data [Текст] / S. Shlaer, S.J. Mel-lor. -N.J.:Prentice Hall, Englewood Cliffs, 1988.

6. Warmer, J. Object Constraint Language, The Getting Your Models Ready for MDA [Текст] / J. Warmer,

A. Kleppe; 2 ed. -Addison Wesley, 2003. -240 c.

7. Kelly, S. Domain Specific Modeling. Enabling Full Code Generation [Текст] / S. Kelly, J-P. Tolvanen. -Wiley, 2008. -427 c.

8. Conallen, J. Building Web Applications with UML [Текст] / J. Connalen; 2 ed. -Addison Wesley, 2002. - 496 c.

УДК 004.651.4

А.М. Бородин, С.В. Поршнев

АНАЛИТИЧЕСКИЕ СПОСОБы ОцЕНКИ ЭФФЕКТИВНОСТИ ПРИМЕНЕНИЯ пространственных ИНДЕКСОВ В OLAP-СИСТЕМАХ

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

В статье изложено решение задачи создания аналитических способов оценки эффективности метода индексирования данных, разработанного в [1, 2], в т. ч. R*-дерева, Ra*-дерева и KDB-дерева.

Способ оценки ожидаемой эффективности R-дерева

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

координат (minimum bounding rectangle - MBR)*. MBR-параллелотоп описывается заданием координат его вершин.

Здесь и далее мы считаем, что исходный OLAP-куб отображен на единичный OLAP-куб с помощью преобразования

__ Х1> - хЦ

Л) - Л)

где i — номер измерения куба; к — номер отсче-

О —

минимальное значение

та в /-м измерении; х1иш

координат /-го вектора (измерения); х^х - максимальное значение координат /-го вектора (измерения). Использование единичного OLAP-куба, как очевидно, снимает проблему отличий в единицах измерения величин, расположенных в соответствующих измерениях исходного OLAP-куба.

Для получения аналитической оценки эффективности R-дерева докажем несколько промежуточных утверждений.

Назовем отрезок 5 = [50,равномерно распределенным, если 50,е [0,1], 50 < 51,= 50 + | 5 | и 50 — случайное число с равномерным законом распределения на интервале [0,1 - 5].

Лемма 1. Вероятность р пересечения отрез- за-

ков 5 = [50,51]ид = [д0,таких, что 5 данные числа, 5 и д - равномерно распределенные отрезки, и |д| + 5 < 1. Тогдар вычисляется по формуле:

* Отметим, что аббревиатура MBR в ряде статей используется также и для обозначения набора MBR-параллелотопов.

p( q А s) =

\s\+\q\ - MM -\s\2 - kl2

Доказательство. Рассмотрим рис. 1, на котором изображено множество всех допустимых значений при которых искомые отрезки д,

и имеют общие точки (многоугольник А).

Из рисунка видно, что площадь многоугольника А можно вычислить по формуле

площадь прямоугольника В, соответствующая множеству всех возможных значений (^до), можно вычислить по формуле

В = (1 - \д\) (1 -| ).

Стоит отметить, что приведенное построение верно, только если |д| + |и| < 1. Иначе р = 1, т. к. такие отрезки гарантированно пересекаются.

Тогда вероятность р пересечения отрезков можно вычислить как

р( д ,| н)=А=и+1д-№1-1и1 2-1д 2.

Отметим, что ранее, в [3, 4], соответственно, были предложены упрощенные аналоги (1):

р

И +1д

Однако тесты, проведенные на модельных данных, показали, что в отличие от результатов вычислений по формуле (1), оценки вероятности р, вычисляемые по формуле (2), и, соответствен-

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

Лемма 2. Дано множество взаимно непересекающихся отрезков S = {sj, s2, ..., sN], где Sj = [so j, sj j ], sj - равномерно распределенный отрезок, j = 1, 2, ..., n, средняя длина которых равняется ~. Пусть U = {Uj, и2, ..., un} - множество, составленное из непересекающихся отрезков, таких, что каждый отрезок и. включает в среднем f отрезков из множества S (и. является выпуклой оболочкой нескольких sj). При этом n = N/f а N - достаточно велико, чтобы можно было не учитывать, что интервалов между отрезками на 1 больше чем N (если не кратноf, f = int(N/ f) +1, здесь int - функция, возвращающая значение целой части числа). Тогда средняя длина отрезков, принадлежащих множеству U, ~ равна f -1

и =

N

+ s.

Доказательство. Пусть и - средний интервал между отрезками из 51

_ 1 ~ и =--и.

ж

Пусть и - средний интервал между сгруппированными отрезками. При группировке по f отрезков останется не занятым один из f интервалов

_ _ 1 ~ и = и =--и.

ж

Тогда

~ f - f -1 ~ и = —- и = --+ s

N N

Рис. 1. К доказательству леммы 1

Справедливость леммы 2 была также подтверждена результатами компьютерного моделирования.

Полученный результат можно обобщить для случая группировки Щ-мерного OLAP-куба между уровнями R*-дерева с фактором ветвления Е. Действительно, принимая во внимание, что при построении дерева стремятся минимизировать пересечения между узлами на одном уровне, т. е. выполняемая группировка совпадает с требованиями группировки по каждому измерению,

для дальнейших оценок можно полагать, что .

Следует также отметить, что алгоритмы R*-дерева и VAM-split дополнительно уменьшают объема группирующих параллелотопов при помощи группировки параллелотопов с одинаковыми длинами ребер. Это, в свою очередь, обеспечивает уменьшение средней длины незанятого пространства по каждому измерению также в ЩЕ раз на каждом этапе группировки.

Для дальнейшего анализа определим функцию средней длины ребра параллелотопа по определенному измерению

I I ЩЕ-1 , ,

W(х + 1, 5 ) = + W (X, 5 ) ,

DNx)

где x - номер уровня группировки; s - средняя длина ребра узла по рассматриваемому измере-

ЪТ, ч N

нию N (x) =-.

Fx

Количество уровней в индексе h (высоты дерева) зависит от фактора ветвления F и общего количества индексируемых данных:

h = 1 + [log fN ],

где [ ] - операция взятия целой части числа.

Теорема 1. Количество узлов R*-дерева, затронутых запросом q, может быть вычислено по следующей формуле:

[logFN] N D lili

DA = 1 + Z — П P

x=i F j=i

Доказательство. Для того чтобы окно запроса и параллелотоп узла дерева пересекались, они должны пересекаться по каждому из D измерений, поэтому вероятность пересечения узла S с длинами ребер s s ..., sD c элементами множества Q = {q¡,q2, ..., qD}(окном запроса) можно вычислить следующим образом:

Так как при расчете агрегирующего запроса Q на каждом уровне x необходимо рассмотреть L узлов дерева

N D I I I I

L = — П P(W(x, s}\),\q\), F j=1 1 j| 1 j|

то для h уровней общее количество рассмотренных узлов

1+[log f N] N D lili

DA = E — П P(W(x,\Sj ),\qj). (6) x=i F j=1 1,11,1

Отметим, что в (6) не учтен нулевой уровень - уровень данных, поскольку минимальная единица группировки - страница памяти, и именно количество обращений к страницам памяти является целевым показателем эффективности. В то же время детальное рассмотрение индекса корневого уровня позволяет сделать вывод о том, что корневой узел всегда один и его придется рассмотреть в любом случае. Следовательно, необходимо добавить к левой части (6) единицу. Таким образом, получаем искомое равенство (4).

Требуется отметить, что фактор ветвления дерева F может не быть постоянной величиной, но некоторой функцией от номера уровня x. Наиболее часто встречающейся причиной возникновения зависимости фактора ветвления дерева от номера уровня x является отличие размера записи во внутреннем узле дерева от размера записи в узле данных. Другая причина обусловлена использованием внутристраничного индексирования. В этом случае для предсказания количества обращений к страницам памяти оказывается достаточным заменить F на F(x) и считать, что высота дерева равна минимальному целому h, такому, что nh=i F(x) > N .

Способ оценки ожидаемой эффективности Ra*-дерева

Ra*-дерево представляет собой R*-дерево, каждый узел которого содержит кэшированное агрегатное значение атрибута, на котором вычисляется агрегатная функция [5].

Для построения модели эффективности Ra*-дерева нам потребуется приведенные ниже лемма 3 и теорема 2.

Лемма 3. Вероятность Inc того, что отрезок q = [q0, q1] полностью включает отрезок s = [s0, s1], где |s|, |q| - заданные числа, s, q e [0,1), s0 - случайное число с равномерным законом рас-

Рис. 2. К доказательству леммы 3

пределения на интервале [0,1 - |и|], д0 - случайное число с равномерным законом распределения на интервале [0,1 - |д| ], вычисляется по формуле:

-, есямЫ >Ы,

I (I д\,1 и) =

Доказательство. Аналогично доказательству леммы 1. Рассмотрим рис. 2, на котором представлено множество допустимых значений и0, д0, при которых искомые отрезки д, и попадают в [0,1) (четырехугольник А), и множество всех возможных значений и0, д0, (прямоугольник В).

Из рисунка видно, что площадь четырехугольника А, соответствующего множеству всех допустимых значений (и0,д0), можно вычислить по формуле

А = (1-1 д 1)(1 д I -1 и ^ .

Площадь прямоугольника В, соответствующего множеству всех возможных значений (и0, д0), можно вычислить по формуле

В = (1-1 и |)(1-1 д |) .

В случае, если |д| < |и|, фигура А не существует, т. к. не существует точек, в которых выполняется условие леммы.

Тогда искомую вероятность полного включения отрезком д = [д0, д1] отрезка и = [и0, и1] можно вычислить как отношение площадей четырехугольника А и прямоугольника В:

I д I -1 и | 1-I и| .

Теорема 2. Количество узлов Ra*-дерева, затронутых запросом д, может быть вычислено по следующей формуле:

1

й-1

МА* = 1 + N 2-

х=1 Т (х)Х

М , , , , ^

-п 1пс(Г (х, и} ), д} ) .

1 =1 V

Доказательство. Используя лемму 3, можно получить оценку количества страниц на каждом уровне Ra*-дерева, которые полностью попадают в запрос, поэтому при выполнении запроса их анализ не потребуется:

ЕА = П 1пе^(х\и1 \\\д11). (9) * (х) 1=1

Из (9) видно, что вероятность включения параллелотопа в область параллелотопа запроса равна произведению соответствующих вероятностей по каждому измерению параллелотопа запроса. Вероятное количество полностью включенных в запрос элементов на уровне х находится умножением вероятности включения на количество элементов. При этом чтение всего дочернего поддерева не требуется. Однако необходимо помнить, что всё дочернее поддерево будет учтено в Ека других уровней. Таким образом, получаем искомое равенство.

Оценка ожидаемой эффективности KDB-дерева

Для предсказания эффективности KDB-дерева можно выбрать модель, отличающуюся от описанной выше модели, используя следующую функцию средней длины ребра параллелотопа по определенному измерению:

^КПБ (х) = "

пЮВД •

Физический смысл этого выражения состоит в том, что KDB-узлы КЭВ-дерева на каждом уровне индексирования заполняют все индексируемое пространство.

Теорема 3. Количество узлов КБВ-дерева, затронутых запросом д, может быть вычислено по следующей формуле:

h-1

DAkdb = 1 + N Z ^ ч

x=1 F

N Up(WKDB (x),\g, I).

X

j=1

Доказательство аналогично доказательству теоремы 1.

Анализ полученных моделей на примере R*-дерева. Расчет различных агрегирующих запросов требует различных вычислительных затрат, которые описанные выше модели позволяют оценить, однако для анализа эффективности индекса целесообразно ввести новый показатель. В качестве такового логично использовать отношение количества узлов Ra*-дерева, затронутых запросом д, вычисляемое в соответствии с (8), к ожидаемому количеству элементов, участвующих в расчете результирующего агрегатного значения:

T = N п P(W (0, | Sj |),\д} |),

DA'

1+ N Z X

F

-

N П D-J

Из (11) видно, что ЮЛ* имеет сложность O(NlogN). Логарифм в данном случае появляется вследствие сложения границ от 1 до И. Линейная зависимость ЮЛ* от N обусловлена линейной зависимостью Т, вычисляемой в соответствие с (9), от N. Таким образом, можно говорить о том, И А*

что соотношение--1ояЫ. Иными словами,

Т

сложность эффективности расчета запроса с фиксированным размером результирующей выборки при использовании пространственных индексов с ростом N растет логарифмически.

Уточнение модели эффективности. Предложенная модель эффективности R-дерева опирается на предположение о средней длине ребра параллелотопа W, вычисление которой базируется на лемме 2, в которой в неявном виде предполагается, что в каждой из рассматриваемых групп имеется достаточное количество группируемых элементов. В одномерном случае это означает, что ^х)/^(х) > 4.

В многомерном случае это требование можно записать в виде:

DNx)/DF(x) > 4.

Из (12) видно, что при достаточно больших значениях D (—10—15) данное условие труднодостижимо, как следствие, результат оценки W может быть далек от своего фактического значения. Высказанное предположение было подтверждено при анализе тестовых данных, подробно описанных ниже, результаты которого показали, что большинство оцениваемых средних значений W близки к фактическим, в то же время в ряде случаев были получены оценки, идентифицированные, как существенные отклонения. Однако устранение данной проблемы не вызывает трудностей. Для этого достаточно вести статистику средней длины ребра параллелотопа не только на уровне данных, но и на каждом уровне внутренних узлов параллелотопа. Динамическое поддержание актуальности накопленных значений W(x, |s|) с технической точки зрения является тривиальной задачей. Действительно, объем данных для поддержания такой статистики относительно невелик: при хранении значения средней длины параллелотопа в 64-битном формате double, количества параллелотопов в 32-битном integer, для 8-мерного индекса высотой в 8 уровней требуется 8  8  8 + 8  4 = 544 байта.

Экспериментальная оценка точности предложенной модели эффективности

Тестирование модели производительности, разработанной в рамках настоящей работы производилось на данных налоговых поступлений базы САПФИР [2], представляющей собой OLAP-систему, реализующую модель данных «звездного» соединения.

Данные были классифицированы по восьми измерениям (Муниципальное образование; Классификация доходов бюджета; Вид статей налоговой отчетности; Экономическая классификация; Элемент дохода; Программа доходов; Дата; Общероссийский классификатор видов экономической деятельности), общий объем данных составлял 1,96 млн записей. По составленному индексу данных рассчитывались запросы со случайными границами агрегации и агрегирующей функцией расчета количества записей. При этом был использован следующий выбор случайных границ запроса. Иерархия каждого измерения разворачивалась в множество элементов без учета иерархических связей. Так, например, множество значений классификатора «Дата» одновременно содержало элементы, соответствующие дням, месяцам и годам. Далее каждому элементу был присвоен соответствующий вес: вес листовых элементов иерархии был равен единице, а вес нелистовых элементов — количеству его дочерних элементов. Из этого множества случайным образом выбирался один элемент, при этом вероятность его выбора была пропорциональна его весу. Данная операция производилась для каждого измерения данных.

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

[ xmmin, xmax ], он отбрасывался как несущественный. Описанная методика предсказания определяла сложность данного запроса как одно обращение к узлу графа индекса, поскольку реальный расчет этого запроса требовал чтения только корневого узла графа индекса. Например, если в данных по четырем измерениям использовалась только половина диапазона, то в 93 % случаев мы имели абсолютно точное соответствие предсказанного и реального значений. Однако это идеально точные предсказания нерелевантного случая, и интереса они не представляют.

Запросы, признанные значимыми, далее передавались для расчета в индекс данных. При этом для каждого расчета запроса подсчитывалось количество узлов, рассмотренных при выполнении запроса.

Далее рассчитывался целевой показатель E -отношение предсказанной сложности выполнения запроса к фактической:

ЯД,, сдсказаннос =-,

актическое

представляющий собой некоторую совокупность, состоящую из 1000 случайных чисел, со средним значением E = 1,027 и среднеквадратическим отклонением 0,520. Гистограмма распределения случайной последовательности Е представлена на рис. 3.

Анализ распределения изучаемой случайной последовательности позволил выдвинуть гипотезу о возможности ее описания гамма-распределением [6] с параметрами k = 5,39 и 0 = 0,2. Проверка данной гипотезы в соответствии с критерием согласия Пирсона [6] подтвердила ее истинность (экспериментальное значение X = 20,13 оказалось меньше соответствующего критического значения х2кр = 22,71, вычисленного для 22 интервалов, двух степеней свободы распределения и уровня статистической значимости 0,25). При этом математическое ожидание гамма-распределения с указанными параметрами (E ТЕОр = 1,08) оказалось несколько выше приведенной ранее оценки среднего значения анализируемой совокупности случайных чисел, в то время как СКО гамма-распределения с указанными параметрами, напротив, меньше соответствующей характеристики анализируемой совокупности случайных чисел (0,46 и 0,52 соответственно).

Таким образом, средняя точность предсказания в соответствии с описанной выше моделью составила 37 %. В сравнении с 20-процентной точностью, получаемой при использовании модели, описанной в [3], полученный результат следует признать удовлетворительным, тем более, принимая во внимание, что в [3] методика тестировалась на двумерных данных и использовались карты плотности данных. Применение карт плотности данных в нашем случае, напротив, не представлялось возможным ввиду высокой размерности данных. Напомним, что объем карты плотностей растет экспоненциально быстро при увеличении

Рис. 3. Частоты распределения E

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

Полученное значение Е = 1,027 свидетельствует о том, что созданная модель является пессимистической, однако, общий принцип, заложенный в ее основу, равно как и в основу остальных моделей, описанных в статье, верен. Следовательно, данные модели могут быть использованы для качественного сравнения производительности различных методов построения индексов в OLAP-системах.

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

Разработана методика предсказания эффективности R*-дерева, Ra*-дерева и КЭБ-дерева.

Результаты проведенного тестирования разработанной модели эффективности R*-дерева показали, что среднеквадратичная ошибка предсказания составляет 52 %, т. е. методика предсказания сложности аналитического запроса позволяет верно определить ее порядок.

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

Точность модели потенциально может быть повышена за счет использования карт плотности данных, однако, в случае высоких размерностей эти карты будут занимать очень большой объем памяти, в то время как большей точности оптимизатору запросов не требуется.

Математическое ожидание отношения предсказанной сложности выполнения запроса к фактической сложности запроса составляет Е = 1,027, что свидетельствует о правильности развиваемых подходов.

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

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

1. Бородин, А.М Использование пространственных индексов для обработки аналитических запросов и агрегирования многомерных данных в ИАС [Текст] / А.М Бородин, С.В. Поршнев, М.А. Сидоров // Изв.

Томск. политех. ун-та. -2008. -№ 5. -С. 64-86.

2. Бородин, А.М. Сравнительный анализ возможностей и скорости обработки многомерных данных программными средствами бизнес-аналитики на осно-

ве индексирующих структур основной памяти [Текст] / А.М. Бородин, С.В. Поршнев // Научно-технические ведомости СПбГПУ Сер. Информатика. Телекоммуникации. Управление. -2010. -№ 1. -С. 99-102.

3. Theodoridis, Y.A model for the prediction of R-tree performance [Текст] / Yannis Theodoridis, Timos Sellis // ACMSIGACT-SIGMOD-SIGART symp. on Principle soft database systems, 04.06.1996. -С.161-171

4. Бородин, А.М. Методы оценки эффективности R-tree индекса агрегирующих запросов в OLAP-

системах [Текст] / А.М. Бородин, М.А. Сидоров, С.В. Поршнев // Сб. науч. тр. Междунар. науч.-практ. конф. СВЯЗЬ - ПРОМ, 17.03.2009. -Екатеринбург: УрТИСИ ГОУ ВПО «СибГУТИ», 2009. -Т. 2. -С. 59-66.

5. Beckmann, N. The R*-tree: An Efficient and Robust Access Method for Points and Rectangles [Текст] / N. Beckmann, H.-P. Kriegel, R. Schneider [et al.] // Praktuche Informatik. -Universitaet Bremen, 1991. -С. 322-331.

6. Кендалл, М. Статистические выводы и связи [Текст] / М. Кендалл, А. Стьюарт ; Пер. Л.И. Гальчук, А.Т. Терёхин. -М.: Наука, 1973. -900 с.