Реализация механизмов наследования для обеспечения ретроспективного OLAP-анализа
Автор: Жучков Дмитрий Викторович
Журнал: Сибирский аэрокосмический журнал @vestnik-sibsau
Рубрика: Математика, механика, информатика
Статья в выпуске: 5 (38), 2011 года.
Бесплатный доступ
Описан подход к обеспечению возможности ретроспективного OLAP-анализа путем реализации механиз- мов наследования для аналитических измерений многомерных OLAP-кубов. Предлагаемый подход основан на использовании полей периода действия, журналов изменений и ретроспективных представлений.
Olap-анализ, ретроспективный анализ, измерение, наследование, период действия
Короткий адрес: https://sciup.org/148176715
IDR: 148176715
Текст научной статьи Реализация механизмов наследования для обеспечения ретроспективного OLAP-анализа
Многомерная модель данных в технологии оперативной аналитической обработки (On-line Analytical Processing, OLAP) оперирует двумя базовыми понятиями: таблицами фактов и таблицами измерений. Таблицы фактов включают в себя описания некоторых событий реальной жизни (фактов) в разрезе показателей (Measures) и измерений (Dimensions), а таблицы измерений содержат шкалы, по которым анализируются показатели [1]. Как правило, таблицы измере- ний состоят из редко изменяемого набора значений, исчерпывающе описывающего отдельный признак исследуемого объекта предметной области. Частота модификации измерений при этом может меняться в широком диапазоне. Например, измерения «месяцы», «пол» не изменяются никогда, измерения «страны», «города» изменяются очень редко, измерения «подразделения», «виды деятельности» – довольно редко, а измерения «клиенты», «проекты» - сравнительно часто.
В тех случаях когда измерения подвержены периодическим изменениям, возникает задача представления таких измерений, чтобы обеспечить возможность ретроспективного анализа данных [2; 3]. Для решения этой задачи необходимо, чтобы все факты, относящиеся к разным периодам времени, при анализе ссылались именно на то состояние измерения, которое было на момент возникновения факта. Кроме того, нужно обеспечить возможность плавного перехода от одного периода времени к другому, с прозрачным для пользователя преобразованием изменяющихся во времени значений измерения.
В ходе решения этой задачи автором были разработаны методы и средства для поддержки темпоральной (временнόй) целостности и реализации механизмов наследования в справочниках и классификаторах, используемых в качестве аналитических OLAP-измерений для оперативной аналитической обработки больших объемов многомерных данных.
Суть методики поддержки темпоральной целостности состоит в следующем. В структуру справочника, представляющего таблицу измерения, вводятся поля периода действия (Validity Fields) и для каждого измерения создается журнал изменений (Log Table), отражающий полную историю модификации данных в измерении. С использованием журнала изменений строится специализированное ретроспективное представление (Retrospective View), отражающее состояние измерения в различных временных периодах. Это представление замещает собой оригинальное измерение при анализе данных, а механизмы аналитического OLAP-инструмента модифицируют запросы к данным таким образом, чтобы из представления выбирались записи, соответствующие заданному периоду времени.
Реализация механизмов наследования данных в аналитических измерениях основана на использовании идентифицирующих полей (Identity Fields), т. е. полей, изменение которых является достаточным условием для прекращения действия записи и создания на ее основе новой записи с установкой наследственной связи между этими двумя записями. Наследственные связи, возникающие между записями измерения в ходе модификаций, фиксируются в специальной таблице истории преобразования (History Table). Эта таблица также используется при создании ретроспективного представления для определения взаимосвязей между записями разных периодов времени и обеспечения прозрачного перехода между ними.
Поддержка темпоральной целостности. Для обеспечения временной целостности данных в структуру каждого аналитического измерения вводится семь служебных полей, отвечающих за хранение периода действия записи:
-
– дата и основание введения записи в действие;
-
– дата и основание прекращения действия записи;
-
– дата и основание последней модификации записи;
-
– дата фактического создания записи.
Средствами автоматизированной системы, отвечающей за управление измерениями, обеспечивается контроль заполнения этих полей соответствующими значениями в течение времени жизни записи. Все перечисленные поля, кроме полей прекращения действия, обязательны для заполнения в каждой записи. Дата и основание прекращения действия записи, как правило, остаются пустыми для действующих записей. Если же срок и основание прекращения действия записи становятся известными заранее, то они также могут быть указаны.
Введение в структуру измерения сведений о периоде действия записи позволяет отслеживать область видимости каждой записи на шкале времени. Благодаря этому становится возможной автоматическая фильтрация записей измерения в зависимости от установленной даты.
Для каждого измерения создается служебная таблица – журнал изменений, который предназначен для хранения сведений обо всех модификациях данных в измерении. Журнал изменений включает в себя все поля таблицы измерения, в том числе поля периода действия, а также содержит дополнительные поля: «Тип операции» и «Автор операции». В поле «Тип операции» фиксируется характер операции: Insert, Update, Delete. В поле «Автор операции» сохраняются данные о пользователе, которые выполнил указанную операцию. Фиксация данных в журнале изменений производится полностью автоматически с помощью соответствующих триггеров базы данных. В результате в журнале накапливается исчерпывающая информация обо всех изменениях аналитического измерения, начиная с момента его создания.
Система разделения прав доступа обеспечивает защиту журналов от любых операций, кроме вставки новых данных и чтения. Таким образом, данные, содержащиеся в журнале изменений, могут использоваться не только для ретроспективного анализа данных, но и для контроля и анализа изменений, производимых пользователями.
Наследование данных в измерениях. Вторым элементом рассматриваемой задачи является хранение информации о переходе одной записи в другую с течением времени, т. е. реализация механизмов наследования записей. В этом случае для записей аналитического измерения вводятся термины «потомок» и «предок». Запись считается потомком другой записи, если необходимо обеспечить наследственную преемственность анализируемых данных. Для этого должен быть зафиксирован факт наследственного перехода одной записи в другую.
Для одной записи измерения теоретически возможно существование разного числа предков и потомков в границах от 0 до N . Таким образом, в зависимости от условий перехода, т. е. от числа предков и числа потомков, насчитывается 32 = 9 вариантов наследственных переходов (см. таблицу и рис. 1).
Представленные варианты наследственных переходов являются исчерпывающим списком, и их реализация позволит обеспечить любые практические потребности наследования данных в аналитических измерениях.
Варианты наследственных переходов
№ п/п |
Число предков |
Число потомков |
Описание перехода |
1 |
0 |
0 |
Редактирование существующей записи |
2 |
0 |
1 |
Создание новой записи |
3 |
1 |
0 |
Прекращение действия записи без наследника |
4 |
0 |
N |
Создание нескольких новых записей |
5 |
1 |
1 |
Прямое наследование – прекращение действия записи с указанием потомка-наследника |
6 |
1 |
N |
Множественное наследование – прекращение действия записи с указанием нескольких наследников |
7 |
N |
0 |
Прекращение действие записей без наследников |
8 |
N |
1 |
Слияние записей – прекращение действия нескольких записей с указанием одного прямого наследника для всех записей |
9 |
N |
N |
Прекращение действия нескольких записей с указанием нескольких наследников для каждой записи |



Рис. 1. Графическое представление наследственных переходов (кружками с прерывистой линией границы обозначены не существовавшие ранее записи, а также записи, прекратившие действие)

Механизмы наследования данных. Для хранения информации о наследственных переходах записей измерения создается еще одна служебная таблица – таблица истории преобразования, имеющая следующую структуру:
-
– ключевое поле;
-
– ссылка на предка;
-
– ссылка на потомка;
-
– дата создания записи в истории.
При необходимости таблица истории преобразования может быть расширена дополнительными атрибутивными полями. Средства автоматизированной системы, управляющей аналитическими измерениями, должны обеспечивать фиксацию в истории преобразования информации о наследственных переходах между записями.
Для автоматизации контроля наследственных переходов записей вводятся идентифицирующие поля . Как мы уже отмечали выше, идентифицирующим называется поле записи измерения, при изменении которого необходимо прекратить действие текущей записи, оставив значение поля неизмененным, и создать новую запись с новым значением поля. При этом вновь созданная запись назначается прямым потомком записи, прекратившей действие, т. е. в таблицу истории преобразования добавляется соответствующая запись.
Предлагаемая структура таблицы истории преобразования позволяет реализовать хранение данных о любом варианте наследственных переходов, описан- ных выше. При этом необходимо отметить, что варианты 6 и 9 со множественным наследованием представляют определенную сложность при аналитической обработке данных. При появлении таких вариантов следует тщательно контролировать результаты обработки данных.
Ретроспективное представление и его использование. Заключительным шагом методики поддержки темпоральной целостности данных является создание специализированного ретроспективного представления, отражающего все изменения записей измерения во времени. Главной задачей этого представления является замещение оригинального измерения при выполнении аналитических запросов к данным.
Для построения ретроспективного представления определяются ключевые точки в жизни каждой записи измерения. Это такие моменты, как создание записи, изменение неидентифицирующих полей и прекращение действия записи (как с объявлением наследника, так и без него).
В результате соединения основной таблицы измерения, журнала изменений и истории преобразования формируется выборка данных, в которой каждая из записей оригинального измерения представлена одной или несколькими строками в зависимости от количества ключевых точек (рис. 2). Для каждой строки в этом представлении обязательно заполняются поля «Дата начала действия» и «Дата окончания действия записи».
Измерение
Ключ |
Имя |
Дата создания |
Дата отмены |
100 |
А3 |
01.01.2010 |
--- |

Журнал изменений
Ключ |
Имя |
Дата изменения |
100 |
А1 |
01.01.2010 |
100 |
А2 |
01.05.2010 |
100 |
А2 |
01.01.2011 |
100 |
А3 |
01.04.2011 |

Ретроспективное представление
Ключ |
Имя |
Начало |
Окончание |
100 |
А1 |
01.01.2010 |
01.05.2010 |
100 |
А2 |
02.05.2010 |
01.04.2011 |
100 |
А3 |
02.04.2011 |
Рис. 2. Пример формирования ретроспективного представления
Таким образом, в результате проведенного исследования в аналитический OLAP-инструментарий добавлена возможность использовать данные о периоде действия записей для соединения данных таблиц фактов с соответствующими строками ретроспективного представления.
Плавность и прозрачность просмотра результатов анализа обеспечивается за счет использования информации о наследственных переходах между записями измерения.