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 - Если вы сохраняете агрегаты на уровне базы данных, это экономит время и обеспечивает оптимизацию производительности.