Смешивание данных на разных уровнях
Я отредактировал, чтобы перефразировать этот вопрос:
Мы хотим хранить данные о торговле и суб-торговле. Таким образом, чтобы дать представление о данных, у нас есть такие данные:
Торговые данные (реляционный магазин)
| TradeKey1 | TradeLevelMeasure1 |
| TradeKey2 | TradeLevelMeasure2 |
Данные субторговли
| TradeKey1 | SubTradeId1 | Measure2 | Measure3 |
| TradeKey1 | SubTradeId2 | Measure2 | Measure3 |
| TradeKey2 | SubTradeId1 | Measure2 | Measure3 |
Любой, мы ищем лучшее решение для моделирования этого в AP.
Если мы используем реляционные хранилища для создания 2 хранилищ с таким же макетом, как указано выше (с хранилищем Sub-Trade, являющимся основным хранилищем ACTIVE_PIVOT), и присоединяемся к ним на основе TradeKey, то мы в конечном итоге неправильно агрегируем по показателям Trade-Level, так сделка копируется в куб для каждой записи дополнительной сделки. (Например, TradeLevelMeasure1 имеет двойное правильное значение, поскольку оно существует в кубе для обеих записей суб-торговли)
Решение, которое мы придумали, состоит в том, чтобы использовать один магазин и добавить новое измерение, чтобы указать уровень торговли (Trade или SubTrade). Итак, мы получаем что-то вроде этого:
| Trade | TradeKey1 | TradeLevelMeasure1 | | | |
| SubTrade | TradeKey1 | | SubTradeId1 | Measure2 | Measure3 |
| SubTrade | TradeKey1 | | SubTradeId2 | Measure2 | Measure3 |
| Trade | TradeKey2 | TradeLevelMeasure2 | | | |
| SubTrade | TradeKey2 | | SubTradeId1 | Measure2 | Measure3 |
Таким образом, мы сможем правильно агрегировать, а затем расширять суб-торговые меры, когда это необходимо.
Похоже ли это на жизнеспособное решение или есть лучший способ добиться этого?
1 ответ
Ваш набор данных содержит меры, которые не имеют одинаковую размерность и, следовательно, не принадлежат одному кубу и его фиксированной топологии.
Меры, определенные на уровне торговли, агрегируют только среди сделок, в то время как меры суб-торговли имеют смысл только в контексте суб-сделок.
Распределенная архитектура ActivePivot предлагает элегантный способ объединения разнородных кубов на лету: Полиморфное распределение ActivePivot.
Вкратце, вы определите два простых куба, один на уровне торговли, с мерами торговли, а другой на уровне субторговли, который объединяет только меры субторговли. Полиморфное распределение ActivePivot объединит их на лету в виртуальный куб, объединяя общие измерения, а также делая доступными уникальные меры в каждом кубе.
Презентацию распределенной архитектуры ActivePivot вы найдете в Quartet FS User Group 2012 по адресу http://www.youtube.com/watch?v=VnZoelJulM4. Для документации вы можете начать с http://support.quartetfs.com/confluence/display/AP4/ActivePivot+Distributed+Architecture.