OBIEE - Размерное моделирование

Размерное моделирование предоставляет набор методов и концепций, которые используются при проектировании DW. По словам консультанта DW Ральфа Кимбалла, размерное моделирование - это метод проектирования баз данных, предназначенный для поддержки запросов конечных пользователей в хранилище данных. Он ориентирован на понятность и производительность. По его словам, хотя транзакционно-ориентированная ER очень полезна для захвата транзакций, ее следует избегать для доставки конечным пользователям.

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

Таблица размеров

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

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

пример

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

Пользовательский ИД имя Пол Доход Образование Религия
1 Брайан Эдж M 2 3 4
2 Фред Смит M 3 5 1
3 Салли Джонс F 1 7 3

Таблицы фактов

Таблица фактов содержит числовые значения, известные как измерения. Таблица фактов имеет два типа столбцов - факты и внешний ключ к таблицам измерений.

Меры в таблице фактов бывают трех типов:

  • Additive - Меры, которые можно добавить по любому измерению.

  • Non-Additive - Меры, которые нельзя добавить ни по одному измерению.

  • Semi-Additive - Меры, которые можно добавлять по некоторым параметрам.

пример

ID времени идантификационный номер продукта Пользовательский ИД Единица продана
4 17 2 1
8 21 год 3 2
8 4 1 1

Эти таблицы фактов содержат внешние ключи для измерения времени, измерения продукта, измерения клиента и проданной единицы измерения стоимости.

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

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

Теперь, если мы рассмотрим приведенную выше таблицу фактов и измерение «Клиент», тогда также будут измерения «Продукт» и «Время». Учитывая эту таблицу фактов и эти три таблицы измерений, мы можем задать такие вопросы, как: Сколько часов было продано покупателям-мужчинам в 2010 году?

Разница между размером и таблицей фактов

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

Сводная таблица

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

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

Общие агрегатные функции включают в себя -

  • Average()
  • Count()
  • Maximum()
  • Median()
  • Minimum()
  • Mode()
  • Sum()

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

пример

Вы сохраняете таблицы с агрегированными данными, такими как годовой (1 строка), квартальный (4 строки), ежемесячный (12 строк), и теперь вам нужно провести сравнение данных, например, ежегодно будет обрабатываться только 1 строка. Однако в неагрегированной таблице все строки будут обработаны.

MIN Возвращает наименьшее значение в заданном столбце
МАКСИМУМ Возвращает наибольшее значение в заданном столбце
СУММ Возвращает сумму числовых значений в заданном столбце.
AVG Возвращает среднее значение данного столбца.
COUNT Возвращает общее количество значений в заданном столбце.
COUNT (*) Возвращает количество строк в таблице.

Выберите Avg (зарплата) для сотрудника, где title = 'developer'. Этот отчет вернет среднюю зарплату для всех сотрудников, чья должность равна «Разработчик».

Агрегации можно применять на уровне базы данных. Вы можете создавать агрегаты и сохранять их в таблицах агрегатов в базе данных или применять агрегаты на лету на уровне отчета.

Note - Если вы сохраняете агрегаты на уровне базы данных, это экономит время и обеспечивает оптимизацию производительности.