SSAS -> Просмотр / запрос куба -> Измерение с тремя связями с другим измерением, проблемы с получением данных - PullRequest
0 голосов
/ 20 января 2012

У меня есть факт [Заказы] и измерение клиента [Клиенты]. Между этими двумя существует три взаимосвязи, поскольку заказы могут иметь три типа клиентов. : грузоотправитель, грузополучатель, billto. Таким образом, в свою очередь, когда я пытаюсь просмотреть данные с помощью идентификатора и имени клиента из измерения клиента и пытаюсь получить атрибуты фактического заказа, куб не может определить, по какому из трех атрибутов он должен объединять данные.

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

1 Ответ

3 голосов
/ 27 января 2012

Существует несколько способов обработки отношений между DimCustomer и FactOrders, поэтому это зависит от того, как вы моделируете данные ...

Если FactOrders имеет 3 поля, каждое из которых ссылается на DimCustomer, как показано ниже..

FactOrder
  ShipperKey (FK)
  ConsigneeKey (FK)
  BillToKey (FK)

DimCustomer
  CustomerKey (PK)

... тогда вы получите 3 измерения для клиентов в вашей базе данных SSAS.Вы можете реализовать эти измерения через ролевую игру (1 измерение добавлено 3 раза к вашему кубу) или как 3 отдельных измерения.Последний допускает более удобные соглашения об именах.

С другой стороны, если ваша таблица FactOrders имеет только 1 поле, которое ссылается на DimCustomer, как показано ниже ...

FactOrder
  CustomerKey (FK)

DimCustomer
  CustomerKey (PK)

... затем вам нужно будет различать «Типы клиентов» (Грузоотправитель, Грузополучатель, BillTo), используя один из двух методов ...


Метод 1 : Создайте поле CustomerType в вашемDimCustomer и сделайте его атрибутом в измерении клиента в вашем проекте SSAS ...

FactOrder
  CustomerKey (FK)

DimCustomer
  CustomerKey (PK)
  CustomerType

Метод 2 : создайте новую таблицу измерений (DimCustomerType) и добавьте ее в свой куб...

FactOrder
  CustomerKey (FK)
  CustomerTypeKey (FK)

DimCustomer
  CustomerKey (PK)

DimCustomerType
  CustomerTypeKey (PK)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...