У меня есть измерение клиента и таблица фактов, которая отслеживает сеансы с клиентами, в них есть следующие столбцы:
Код:
[DimClient]
----------
PK_ClientKey
ClientNumber
EmailAddress
Postcode
PostcodeLongitude
PostcodeLatitude
DateOfBirth
Gender *
Sexuality *
CulturalIdentity *
LanguageSpokenAtHome *
CountryOfBirth
UsualAccommodation *
LivingWith *
OccupationStatus *
HighestLevelOfSchooling *
RegistrationDate
LastLoginDate
Status
[FactSession]
-------------
PK_SessionKey
FK_ClientKey
...
Моим первым требованием было начать группировать возраст Клиентов на определенном сеансе (FactSession), лучший способ достичь этого - создать измерение возрастной группы и создать внешний ключ (FK_AgeGroupKey) в FactSession для DimAgeGroup измерение.
Теперь я думаю, что было бы хорошо отследить все столбцы с помощью * (выше). Они могут (пока не доказано) иметь высокую корреляцию с сессиями. Читая инструментарий DWH, кажется, что мини-измерение для размещения всех * столбцов вместе с возрастной группой подойдет лучше всего, поэтому я собрал следующую структуру:
Код:
[DimClient]
----------
PK_ClientKey
ClientNumber
...
Status
[DimDemographic]
-----------------
PK_DemographicKey
AgeGroup
Gender
Sexuality
...
HighestLevelOfSchooling
[FactSession]
-------------
PK_SessionKey
FK_ClientKey
FK_DemographicKey
В таблице DimDemographic потребуется использовать SCD типа 2, чтобы иметь возможность отслеживать изменения во времени. Будет ли это лучшим подходом к моим требованиям?
Кроме того, у меня есть столбцы RegistrationDate и LastLoginDate в моем измерении клиента, в случае, когда клиент регистрируется, но никогда не регистрируется, какое было бы наилучшее значение для поля LastLoginDate? Что-то вроде '1900-01-01' или NULL?
Извините за длинный пост, но, надеюсь, я предоставил достаточно информации Заранее спасибо!