#modeling
#моделирование
Вопрос:
Я создаю классическую звездообразную схему в хранилище данных для отчетности.
Моя мера — это данные (МБ) на номер телефона в месяц.
Мои измерения — это время, продукт, клиент и поставщик.
Моя проблема в том, что некоторые клиенты покупают более одного продукта на номер телефона в течение некоторого месяца.
Есть идеи о том, как реализовать это в классической схеме «звезда»?
Добавление этих столбцов в мою таблицу фактов?
- PRODUCT_1_FK
- PRODUCT_2_FK
- PRODUCT_3_FK
С уважением,
Кристиан
Комментарии:
1. Вы должны строго различать подписку на продукт и использование продукта . Первый вариант более или менее тривиален, и с несколькими продуктами проблем нет, поскольку вы находитесь на уровне клиента . Последнее является более сложным; типичный обходной путь — выбрать какой-либо основной продукт и добавить его в таблицу фактов или, если это невозможно, просто отключить его и позволить запросам создавать свою собственную картину, комбинируя таблицы использования и подписки . По сути, вам нужно воспроизвести логику процесса выставления счетов, где обычно для каждого использования выбирается только один продукт для оценки .
2. Как вы вычисляете показатель данных (МБ)?
3. Представьте, что клиент покупал 20 продуктов в месяц? Очевидно, что у вас нет фиксированного количества столбцов, которые вам нужны, чтобы затем денормализовать его, создав отдельную запись в вашей таблице фактов для каждой транзакции
Ответ №1:
Давайте представим этот сценарий :
- Клиент с ID = 101 купил продукт с ID = 100 по телефону 25 января 2021 года
- Тот же клиент с ID = 101 купил другой продукт с ID = 120 по телефону 28 января 2021 года
Как будет выглядеть ваша таблица фактов?
CustomerSK ProductSK SupplierSK TimeSK
101 100 122 25-01-2021 09:00:30
101 120 189 28-01-2021 16:08:11
Комментарии:
1. Большое вам спасибо. Я вижу, что мне также придется расширить гранулярность до строки для каждого продукта (как показано в вашем примере данных).
2. @ChristianHoffmann Как вы вычисляете показатель данных (МБ)?
Ответ №2:
если ваша мера равна «Данные (МБ) на номер телефона в месяц», то вы не можете включить продукт в качестве измерения, поскольку это изменит масштаб вашей меры.
Если вы хотите, чтобы масштаб вашей меры составлял «Данные (МБ) на продукт на номер телефона в месяц», тогда вам нужно будет добавить продукт к вашему факту, и у вас будет 1 запись факта на продукт