Опубликован: 20.12.2010 | Уровень: специалист | Доступ: платный
Лекция 8:

Метод многомерного моделирования

Моделирование таблиц фактов

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

Выше мы рассмотрели таблицы фактов, которые содержат параметры (метрики) на самом низком уровне детализации ( гранулированности ), таком как уровень бизнес-операции организации, или мгновенной транзакции. Мгновенная транзакция предоставляет возможность зарегистрировать описание факта в определенный момент времени. Это есть транзакционные таблицы фактов. Пример такой таблицы приведен на рис. 9.3. Факты "Суммарная прибыль", "Количество продаж" и "Количество покупателей" фиксируются в таблице фактов на уровне операции продажи товара (мгновенной транзакции).

Обратим внимание на то обстоятельство, что такие таблицы фактов могут содержать тестовые атрибуты и неаддитивные числовые факты.

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

Обычно в ХД используют два типа таблиц агрегатов фактов, как было указано в этой лекции выше:

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

Агрегаты имеют большое значение для производительности запросов. Запрос будет выполнен гораздо быстрее на 10-ти заранее вычисленных строках таблицы фактов, чем на десяти тысячах строк более низкого уровня детализации.

Например, для схемы на рис. 9.6 можно построить агрегат "ежедневные продажи" по магазинам или регионам, можно построить агрегат "еженедельные продажи" по категориям товара.

Таблицей агрегатов фактов (Aggregate fact table) называется таблица фактов, которая содержит агрегаты некоторых фактов модели.

Проектировщик добавляет таблицы агрегатов фактов в многомерную модель данных и устанавливает ее связи с измерениями.

Построим таблицу агрегатов фактов "Продажи магазинов", содержащую агрегаты фактов по ежедневным продажам магазина, как показано на рис. 9.11. Эта таблица содержит итоговые суммы по ежедневным продажам каждого магазина.

  • Поле "Количество покупателей" указывает, как много покупателей сделали покупки.
  • Поле "Количество товаров" указывает, сколько единиц товара было продано.
  • Поле "Объем продаж" указывает количество товара, проданного за день.
Таблица агрегатов фактов "Продажи магазинов"

Рис. 9.11. Таблица агрегатов фактов "Продажи магазинов"

Это пример таблицы фактов периодических моментальных снимков.

На основе этой таблицы агрегатов фактов могут быть построены производные агрегаты, такие как среднее количество покупок, сделанное одним покупателем, или средняя сумма, затраченная одним покупателем на покупки товаров.

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

Таблица агрегатов фактов "Продажи магазинов"

увеличить изображение
Рис. 9.12. Таблица агрегатов фактов "Продажи магазинов"

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

Для таблицы фактов, связанной с 10-ю таблицами измерений, потенциально существует более трех миллионов таблиц агрегатов фактов. Какие таблицы агрегатов фактов должны быть построены в модели данных, зависит от поставленной цели проекта ХД и проектных решений проектировщика ХД.

При определении агрегатов полезно пользоваться принципом Парето: 20% возможных кандидатов в агрегаты будут действительно востребованы пользователями.

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

В качестве такой таблицы агрегатов рассмотрим компанию, которая занимается трудоустройством. Предположим, что ежедневно компания рекламирует в прессе более 10000 вакансий. Руководство компании хотело бы оценить эффективность своих сотрудников, которые нанимают людей на работу, а именно: сколько времени длится процесс трудоустройства кандидата, сколько времени тратится на ожидание поступлений резюме, сколько времени тратит менеджер компании на трудоустройство кандидата, который обратился за услугами в компанию.

В этой таблице фактов одна строка (факт) будет содержать три периода времени для каждого менеджера и для каждой вакансии. Пример схемы приведен на рис. 9.13.

Таблица агрегатов фактов "Трудоустройство"

увеличить изображение
Рис. 9.13. Таблица агрегатов фактов "Трудоустройство"

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

В табл. 9.2 приведено сопоставление основных видов таблиц фактов.

Таблица 9.2. Сравнение видов таблиц фактов
Транзакционная таблица фактов Таблица фактов периодических моментальных снимков Таблица фактов кумулятивных моментальных снимков
Определение гранулированности таблицы фактов Одна строка на бизнес-операцию Одна строка на период Одна строка для всего периода завершенного события
Измерения Используют факты на самом низком уровне детализации по измерению "дата/время" Используют факты на самом некотором уровне агрегации по измерению "дата/время" (по концу периода) Используют факты по нескольким измерениям "дата/время" для фиксации результатов в различных контрольных точках
Общее количество задействованных измерений Больше, чем в таблицах фактов периодических снимков Меньше, чем в транзакционных таблицах фактов Наибольшее количество измерений для таблиц фактов
Факты Факты связаны с операционной деятельностью Факты связаны с периодической деятельностью Факты связаны с деятельностью, которая имеет определенное время существования
Обновления Не допускаются Не допускаются Допускаются
Кардинальность таблицы фактов Растет быстро Растет медленнее, чем в транзакционных таблицах фактов Растет медленнее, чем в таблицах фактов периодических моментальных снимков

Теперь обратимся к изучению вопроса моделирования измерений.

Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Лариса Парфенова
Лариса Парфенова

1) Можно ли экстерном получить второе высшее образование "Программная инженерия" ?

2) Трудоустраиваете ли Вы выпускников?

3) Можно ли с Вашим дипломом поступить в аспирантуру?

 

Денис Сафронов
Денис Сафронов
Россия
жылдыз насырбекова
жылдыз насырбекова
Киргизия, бишкек