Измерение с суррогатным ключом в себя (хранилище данных)

У меня есть измерение Employee, в котором я использую SCD и суррогатные ключи для отслеживания изменений во времени.

Ключ бизнес-системы сотрудника: EmployeeID

Суррогатный ключ сотрудника: EmployeeSCDKey

Я также хотел бы, чтобы информация о менеджере отслеживалась с течением времени. Менеджеры - это такие же сотрудники, как и все, и поэтому я думал о том, чтобы столбец ManagerSCDKey в моем измерении Employee был таким:

Пример:

пример

Это проблема, с которой я сталкиваюсь. Стрелка показывает границу от одного преобразования к другому. В случае, если Менеджер меняет задания (или какое-либо другое поле SCD типа 2) и для них создается новый суррогатный ключ, это изменение не будет распознано до следующей трансформации измерения.

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

Я думаю, это сводится к этому:

Есть ли способ заставить этот шаблон работать? (измерение с ключом в себя?)

Или есть лучший способ для выполнения той же задачи? Я бы предпочел не поддерживать измерение менеджера, которое очень похоже на измерение сотрудника, но если это лучшая практика, пусть будет так.

1 ответ

Вот хорошее обсуждение некоторых альтернатив, я уверен, что вы найдете что-то, что вам нужно: http://www.informationweek.com/software/information-management/kimball-university-five-alternatives-for-better-employee-dimension-modeling/d/d-id/1082326?page_number=1

Скорее всего, я бы выбрал какую-то таблицу "отчеты к мосту", возможно, с естественными ключами, а не суррогатными ключами, в зависимости от того, как вы хотите, чтобы он вел себя (и для решения вашей таблицы SCD типа 2). Вам не нужно иметь отдельно созданное измерение менеджера, только сотрудник должен указывать на таблицу моста дважды.

Другие вопросы по тегам