Расширение хранилища данных SQL с дополнительной информацией

У меня есть измерение core.DimAd, которое содержит рекламную информацию. то есть

PK AdKey  AdvertiserID  CampaignID 
1         Ad company 1  Campaign 1
2         Ad company 2  Campaign 2
3         Ad company 4  Campaign 3

Затем я хочу создать новую таблицу расширений, например AdChannelExtension.

PK ChannelExtensionKey  Adkey  Channel
   1                    1      Sales
   2                    1      Production
   3                    2      Sales

Затем я хочу создать представление

VWDimAd

который объединяет две таблицы по ключу объявления и используется в качестве измерения в службах SSAS. Однако когда он объединяет строки, он не уникален и не будет обрабатываться из-за повторяющихся ключей. Как вы справляетесь с этим сценарием? Я не могу изменить исходную таблицу. Спасибо!


person jhowe    schedule 12.01.2017    source источник
comment
Нельзя ли просто создать составной ключ из PK AdKey и PK Channel ExtensionKey?   -  person iamdave    schedule 12.01.2017
comment
Скорее всего, это другое измерение, если только вы никогда не собираетесь проводить кампанию по нескольким каналам.   -  person Panagiotis Kanavos    schedule 12.01.2017
comment
Разве это не просто измерение «многие ко многим»? Я бы погуглил и почитал дальше, а не пихал каналы в рекламное измерение.   -  person GregGalloway    schedule 12.01.2017


Ответы (1)


Создайте составной ключ в своем представлении и используйте его в SSAS:

select cast(a.AdKey as nvarchar(20))
         + '-'
         + cast(e.ChannelExtensionKey as nvarchar(20)) as AdAdChannelCompKey
      ,a.AdvertiserID
      ,a.CampaignID
      ,e.Channel
from DimAd a
    inner join DimAdChannelExtension e
        on(a.AdKey = e.AdKey)
person iamdave    schedule 12.01.2017