|
| ||||||||||||
| ||||||||||||
|
2008 г.
Обзор алгоритмов MOLAPЮрий Кудрявцев, факультет ВМиК МГУ Подразделы
Алгоритм DWARFАлгоритм DWARF (карлик) (см. [21]) назван так с намеком на звезды карликового типа, которые имеют небольшой объем, но огромную массу. Это синтаксический алгоритм, распознающий два типа избыточности хранения данных и устраняющий их во время создания и поддержки куба. Ключевыми понятиями алгоритма являются префиксная избыточность и суффиксная избыточность (см. определения). В пользу практического использования алгоритма DWARF говорит автоматическое нахождение префиксных и суффиксных избыточностей, не требующее каких-либо знаний о распределении данных, типов, значений. При этом эффективность сжатия одинаково высока как и для ''разреженных'', так и для ''плотных'' кубов. В большинстве случаев даже для очень плотных кубов размер результирующего DWARF куба меньше размера базовой таблицы. Если для ''плотных'' кубов улучшения происходят за счет префиксной избыточности, то, по мере того как кубы становятся ''разреженнее'', возрастает доля суффиксной избыточности. Не менее важным является сокращение времени создания и расчетов. Каждый избыточный суффикс идентифицируется до его вычисления, что ведет к существенным уменьшениям времени создания. Более того, вследствие уменьшения общего размера куба пропорционально падает и время обработки запросов. Виды избыточностей структуры куба
Определение 2.1
Префиксная избыточность.
Пусть имеется есть куб с измерениями a, b и с. Каждое значение
измерения a участвует в четырех группировках (a, ab, ac,
abc) и, возможно, много раз в каждой из сгруппированных
таблиц.
DWARF успешно распознает подобный тип изыбыточности и устраняет его за счет хранения каждого префикса лишь один раз.
Определение 2.2
Суффиксная избыточность
возникает, если 2 или более сгруппированные таблицы разделяют однаковый суффикс
(например, abc и bc).
Рассмотрим значение Структура кубаПример куба
Для начала приведем пример структуры куба, а в дальнейшем дадим формальное определение. Рисунок 2.1 показывает структуру куба для таблицы 1.1, в качестве агрегирующей функции используется SUM.
Вершины пронумерованы в порядке их создания. Высота куба равна числу измерений, каждое из которых относится к одному из уровней, как показано на рисунке. Корневая вершина содержит ячейки вида {ключ, указатель} для каждого значения первого измерения. Указатель каждой ячейки направлен к лежащей ниже вершине, которая содержит все различные значения следующего измерения, ассоциированные с ключом ячейки. Каждая вершина содержит специальную ячейку ALL, изображенную серой областью справа от вершины, содержащую указатель и отвечающую всем значениям вершины. Каждый лист L имеет форму {ключ, агрегирующее значение} и содержит агрегирующее значение всех кортежей, которые удовлетворяют пути (паттерну) от корня к L. Каждый лист содержит и ALL ячейку, которая содержит агрегирующее значение всех ячеек вершины. На рисунке 2.1 все вершины, к которым идет более одного указателя, поглощают несколько путей (возможных вершин). Свойства DWARF-куба
Выполнение различных типов запросов
СложностьНесмотря на то, что показана NP-полнота общей задачи выбора представлений для материализации [10], в работе [22] были даны новые оценки сложности алгоритма DWARF. Большая часть этих результатов вошла в данный раздел. При этом хотелось бы в очередной раз подчеркнуть, что DWARF — алгоритм полной материализации (materialize-all). Также хотелось бы отметить, что оценки в работе [22] были получены при наложении определенных условий на начальные данные.С помощью приведенной ниже модели можно показать, что вычислительная сложность алгоритма и объем результирующего куба равны:
Приведем некие трактовки данного результата.
Виды сжатияСжатие разреженностиВведем категории сжатия разреженности. Хвостовое сжатие (Tail Coalescing) происходит на всех группировках, имеющих префикс
Левое сжатие (Left Coalescing) происходит на всех группировках,
имеющих общий префикс
Сжатие связанностиСжатие разреженности работает только на тех областях куба, где существует только один фактический кортеж. В свою очередь, сжатие связанности расширяет данный метод путем сжатия на подкубах. Например, для таблицы 1.1 из введения продукт ''еда'' продается только осенью. Сжатие связанности, таким образом, представляет собой расширение понятия левого сжатия на случай наличия связей (implications) между значениями измерений. Подобные связи часто наблюдаются в реальных базах данных. Доказательство
Авторы опускают необходимую при
создании DWARF-куба лексикографическую сортировку начальной
таблицы (во время создания куба появление нового префикса
означает необходимость создания новой вершины на уровне, где различаются
префиксы). Сортировка всей фактической таблицы —
Пусть существует таблица фактических данных с Лемма 1
Если из набора равномерно распределенных
Равномерность — еще одно ограничение на входные фактические данные. В общем случае:
Коротко укажем дальнейшие пункты доказательства.
Применяя лемму 1 к группам Лемма 2
В общем случае в
В случае неравномерного распределения кортежей, данная сумма будет отличаться от результатов [22], и это повлечет изменение всех дальнейших оценок в леммах. Лемма 3
Число дубликатных ключей в вершине, на которую указывает ячейка группы Основываясь на введенных выше понятиях левого и хвостового сжатий, можно показать, что
и
Здесь Из последней формулы получим следующее соотношение для числа ячеек куба:
А поскольку при устранении суффиксной избыточности DWARF, в отличие от других алгоритмов, проверяет каждую ячейку только один раз (автору неизвестны алгоритмы, которые для устранения суффиксной избыточности не проверяли бы каждую ячейку экспоненциальное число раз), получаем ту же оценку и для сложности работы алгоритма. ВыводПри использовании этого алгоритма структура куба сжимается синтаксически. Префиксная и суффиксная избыточности устраняются за счет создания лучшей системы адресации и хранения ячеек. Алгоритмы, предложенные для создания и модификации кубов с использованием данной структуры, являются наилучшими из всех синтаксических решений на данный момент. Таким образом, если не рассматривать различные эвристические алгоритмы или более глубоких семантические изменения, то в настояющее время этот синтаксический алгоритм или его различные (правда уже частично эвристические) модификации являются оптимальными для хранения и адресации OLAP — данных. |
|
CITForum © 1997–2025