powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / как подобное смоделировать правильно
7 сообщений из 7, страница 1 из 1
как подобное смоделировать правильно
    #39628978
churupaha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть сущности Client, Contract.

- какждый клиент имеет несколько контрактов для различных продуктов
- каждый контракт имеет период действия: start_date, end_date, а также ряд коэффициэнтов, например c1 и c2
- есть транзакционные данные связанные с датой и клиентом, на их основе и на основе коэффициентов контракта валидного на дату транзакции надо что нибудь считать, например меру m = v * c1 - v * c2, где v - мера из таблицы фактов, а с1, с2 - коэффициенты из контракта.

Не могу понять как лучше такое смоделировать. Есть такая идея:

Dim Date (id_date, ...)
Dim Client (id_client, client_name)
Dim Contract (id_contract, contract_name, id_product)

Fact Contract Validity (id_date, id_client, id_contract, c1, c2, c3) - где c1, c2, c3 это коэффициенты валидные на дату date, т. е. диапазон start_date, end_date раскрывается в список дат попадающих в этот диапазон. Это bridge таблица между Dim Client и Dim Contract

Fact Some Data(id_date, id_client, id_product, m1, m2, m3)
...
Рейтинг: 0 / 0
как подобное смоделировать правильно
    #39628980
churupaha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
основной вопрос - что делать с интервалом валидности контракта и стоит ли его раскрывать в таблицу фактов или как-то проще можно?
...
Рейтинг: 0 / 0
как подобное смоделировать правильно
    #39628983
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почитай про scd2 и сделай контракт scd2.

можно в принципе и вынести шапку контракта в отдельный dim с scd1.

Но генерить ежедневные состояния это абсолютно излишнее.
Прекрасно работает функция between для джоина факта на нужную версию контракта
...
Рейтинг: 0 / 0
как подобное смоделировать правильно
    #39628989
churupaha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan Durak,

спасибо
...
Рейтинг: 0 / 0
как подобное смоделировать правильно
    #39628997
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
churupahaIvan Durak,

спасибо
используй 2 даты start_date, end_date. Не используй null значения для них - и between взлетит из коробки. Даже проиндексировать можно будет
...
Рейтинг: 0 / 0
как подобное смоделировать правильно
    #39629996
churupaha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan Durak,

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

не могу сообразить как мне формулы для метрик в таком случае писать

CREATE MEASURE CURRENTCUBE.[Measures].MyMeasure AS [Measures].M * (как по Dim Date выдрать коэффициенты из дименшна Dim Contract, проверив попадание между Start Date и End Date)

Можете пример на пальцах выделенного? Хочется научиться делать такое правильно и максимально просто. Спасибо!
...
Рейтинг: 0 / 0
как подобное смоделировать правильно
    #39630093
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
churupaha,

вы для начала погоняйте станд. куб Adv Works
Сдается мне там есть половина овтетов на ваши вопросы.
взяли куб - задеплоили как есть - потом проект открыли и стали править чуть под себя

А ссылок по M2M полно
http://www.jamesserra.com/archive/2011/11/many-to-many-dimensions/

The_Many-to-Many_Revolution_2.0.pdf
очень ТОЛКОВАЯ вещь - я так понимаю вы уже нашли
Many2Many_2.0_Demo.zip - так качните я постатьве себе для экспериментов
я честно осилил только 1-е 2 модели - думаю и вам их хватит.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / как подобное смоделировать правильно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]