Медленно меняющееся измерение отношений SSAS

У меня есть эта структура в моем хранилище данных

DimCustomer
   -id  (pk)
   -Name
   -Country
   -datestart
   -dateend

FactBalance
   -idCustomer (pk) (fk [DimCustomer.id])
   -idTime (pk) (fk [DimDate.DateSK])
   -Balance

Измерение клиентов имеет несколько строк для изменения страны, а FactBalance содержит несколько строк для каждого дня в течение определенного периода времени.

Вот некоторые примеры данных:

DimCustomer

1  JoeBloggs England  2012-01-01   2012-01-04
2  JoeBloggs France   2012-01-05   NULL

FactBalance

1  20120101 12334.0
1  20120102 12334.0
1  20120103 12334.0
1  20120104 12334.0
2  20120105 12334.0
2  20120106 12334.0

Проблема, с которой я сталкиваюсь, заключается в том, что когда я просматриваю свой куб в браузере и использую DimCustomer.Country и FactBalance.Balance (для которого агрегация установлена ​​​​на LastNonNull), он показывает два результата.

 England  12334.0
 France   12334.0

Очевидно, что для каждой из этих записей о клиентах в SCD получается последнее ненулевое значение, но как мне настроить измерение, чтобы оно отображало только последнее для всего клиента?


person Christopher Townsend    schedule 01.05.2013    source источник
comment
Есть ли связь по внешнему ключу? Если да, то какое поле на что ссылается?   -  person Dan Bracuk    schedule 01.05.2013
comment
Извините, да есть. Я добавил их. Я понял, что поле idCustomer немного сбивает с толку, поэтому я изменил его на Имя.   -  person Christopher Townsend    schedule 01.05.2013


Ответы (1)


Я бы добавил бизнес-ключ (я думаю, что это имя в вашем примере) к факту (я бы добавил его как столбец в таблицу фактов, или вы могли бы перейти через представление SQL).

Затем я бы создал альтернативную версию измерения «Клиент», которая показывает только текущие записи и использует бизнес-ключ в качестве ключа.

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

person Mike Honey    schedule 02.05.2013