Document 211832

advertisement
МЕТОД ОПРЕДЕЛЕНИЯ ПЕРИОДА ОБНОВЛЕНИЯ ДАННЫХ В OLAPСИСТЕМАХ
А.К.Дорожкин, В.А.Климанов
Санкт-Петербургский государственный университет информационных технологий,
механики и оптики
Тел.: (812) 325-25-53, e-mail: adorozhkin81@mail.ru, kva50@yandex.ru
Концепция OLAP-систем предполагает отражение изменений, произошедших в транзакционных
источниках, в определенные моменты времени. Частота синхронизации куба может колебаться в самых
широких пределах в зависимости от природы приложения, скорости обновления и объемов данных. Однако
существует ряд областей, в которых требуется выполнять обновление данных с предельной частотой
обновления. В данной работе мы предлагаем метод, позволяющий определить минимальный допустимый
интервал времени, позволяющий производить обновление данных в OLAP-системе, не приводящий к
наложению во времени двух последовательный операций обновления данных. Для этого необходимо
определить такую характеристику данного процесса, как частота обновления данных (ν).
Для того чтобы определить зависимость размера загружаемых данных от значения частоты обновления
необходимо ввести понятие скорости изменения данных (v), под которым будем понимать, количество
записей, изменяемых или добавляемых в таблицу в единицу времени. При наличии сведений о среднем
размере записи переход от байтов к записям и наоборот осуществляется достаточно прозрачно. Исходя из
определения скорости измерения данных, можно вывести значения размера модифицированных данных
через частоту обновления.
v
C inc  
(1)
В данной работе мы рассматриваем случай, когда происходит загрузка только модифицированных
данных. Таким образом, чем больше частота обновления, тем меньший объем данных загружается в OLAPсистему.
Процесс обновления данных в OLAP-системе можно разделить на три этапа:
– извлечение данных из источника;
– передача данных по сети;
– агрегация данных.
Таким образом, для определения минимально допустимого интервала обновления OLAP-системы
необходимо, что бы суммарное время выполнения этих операций не превышало период обновления данных.
Потому что последний этап обновления данных в OLAP-системе не должен накладываться во времени во
избежание появления некорректных данных, а также значительному возрастанию времени выполнения
данных операций.
Так как при загрузке данных в OLAP-системах обычно используются относительно простые запросы, то
вполне можно использовать прямую зависимость времени извлечения данных от их размера. Аналогично,
определяется и время передачи данных по сети. Таки образом, для данных двух операций время их
выполнения можно записать как:
t

C inc 
s
v
 *s
(2), где s – скорость извлечения данных из источника
или пропускная способность сети, в зависимости от этапа обновления данных. Что же касается третьего
этапа, то вопрос определения времени выполнения агрегации данных является достаточно трудоемким, так
как здесь не все так тривиально, как с первыми двумя этапами.
Операция агрегирования хранимых значений является достаточно длительной операцией, обычно
затрагивающей сканирование всех детальных данных, хранимых в OLAP-системе. Существует целый ряд
работ, посвященных вопросам агрегации данных, поэтому, не вдаваясь в подробности вывода подобных
закономерностей, отметим, что время агрегации зависит от размеров всего многомерного куба. То есть:
t agg 
C cube (3), где C
s agg
cube
– размер многомерного куба, а sagg – скорость выполнения агрегации.
Таким образом, частота обновления данных должна быть выбрана такой, чтобы суммарное время
извлечения,
загрузки
данных
и
агрегации
было
меньше
периода
обновления
данных:
1
t net  t agg  t ext  v
=>
v
1
t net  t agg  t ext
максимально возможной частоты обновления данных
(4) и подставив выражения (2) и (3) получим значение

 1 1   s agg
v  1  v *    
 s p   C cube

(5)
Управляя таким параметром, как частота обновления данных, можно добиться высокой степени
актуальности данных, хранимых в OLAP-системе, при минимизации вероятности наложения двух
последовательных итерации во времени. Все современные OLAP-сервера предоставляют пользователям
возможности для задания расписания обновления многомерного куба. Однако всегда следует помнить, что со
временем происходит увеличение размеров многомерного куба, а значит, увеличивается и время выполнения
агрегации. Поэтому необходимо корректировать значение интервала обновления данных в зависимости от
изменения размеров многомерного куба. Однако скорость роста многомерного куба не имеет линейной
зависимости от скорости роста источников данных. В данном случае под источником данных мы понимаем
отдельную таблицу, определяющую измерение или показатель многомерного куба.
В этом случае необходимо учитывать характер использования плотных и разреженных измерений, а,
следовательно, скорость роста многомерного куба необходимо разделить на две части. Первая часть это
рост так называемых блоков данных, которые определяются исходя из числа членов плотных измерений.
Вторая часть – число пересечений разреженных измерений, для которых существуют данные, то есть не
пустые ячейки.
Очевидно, что скорость роста многомерного куба для одного показателя является многомерным
вектором, который можно описать как:
v
cube
 {v1 , v2 ,..., vn s , v
comp
},
где v1..vn-s – скорость роста таблиц размерностей (появление новых членов), соответствующих плотным
измерениям, vcomp – скорость роста пересечений разреженных измерений, соответствующая росту таблицы
фактов в плане появления пересечений по новым комбинациям разреженных измерений. Количество новых
ячеек можно определить как разница между новым размером куба и старым. Таким образом, общее значение
скорости роста многомерного куба можно определить как:
vcube 
 d  v   d
n  s ,comp
j 1
n  s ,comp
j
j
j 1
j
(6)
Отмеченная выше скорость роста многомерного куба относилась только к детальным данным, которые в
конечном итоге и нужны для выполнения агрегации.
Таким образом, мы определили основные факторы, влияющие на время выполнения одной операции
обновления данных, а значит позволяющие установить максимально допустимую частоту обновления данных
в OLAP-системах. Однако бывают случаи, когда нет возможности контролировать интервал обновления
данных. Это, так называемый, real-time OLAP, при котором новые данные из источника с помощью
специального триггера или системного процесса, автоматически загружаются в OLAP-систему. Специалисты
по OLAP рекомендуют использовать данную технологию очень осторожно, предпочитая устанавливать
минимальный интервал обновления данных, нежели прибегать к использованию push-тиражирования. В
данной работе мы не будем останавливаться на вопросах, относящихся к проектированию OLAP-систем, а
покажем возможность применения разработанного метода и для данной ситуации.
В real-time OLAP-системе также необходимо определить скорость изменения данных и по выражению (5)
определить максимально возможную частоту обновления данных. А, используя выражение (1), можно
определить размер данных, который соответствует данной скорости и частоте. После чего в архитектуре realtime OLAP системы необходимо ввести дополнительный уровень, накапливающий данные определенного
размера для последующего тиражирования их в многомерный куб данных. Таким образом в достаточной
мере сохранится принцип real-time OLAP при гарантированной надежности системы.
Download