HR Data Mart Советы по дизайну - PullRequest
0 голосов
/ 12 июня 2019

Я работаю над дизайном витрины данных HR, используя подход Kimball, описанный в «Набор инструментов хранилища данных».

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

Проблема, с которой я столкнулся, заключается в том, что в некоторых случаях наши сотрудники могут быть назначены на несколько ролей / заданий, и каждое из них должно отслеживаться отдельно (т.е. структура моих фактов должна быть на уровне работы, а не уровень сотрудника).

Как проект Кимбалла может быть адаптирован к сценарию, в котором сотрудник и роль / работа образуют иерархию, подобную этой? В идеале я хочу избежать дублирования данных профиля сотрудника (адрес, демография и т. Д.) Для каждой роли / работы, на которую назначен сотрудник, но означает ли это, что мне нужно засорять измерение?

Варианты, которые я рассматривал, включают в себя следующие - меня будут интересовать любые мысли или предложения сообщества по этому поводу, поэтому любые отзывы приветствуются!

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

2) (см. Вложение, схема 2) Комбинированное измерение «Сотрудник / Роль», где у каждого сотрудника есть запись для каждой назначенной роли, но только одна из них помечена как «Основная роль». Запросы на определенный момент времени для измерения можно выполнить, ограничив флаг «Первичная роль».

enter image description here

1 Ответ

1 голос
/ 12 июня 2019

Все, что произошло, является событием и может быть фактом. Когда вы смотрите на отношения между данными, вам также нужно спросить, описывает ли значение данных сущность (тусклость) или что-то, что произошло с / с сущностью (факт). Все может быть неясным или фактическим. (Иногда оба)

Работа описывает событие, которое произошло с работником. У вас должна быть фактическая работа сотрудника, которая относится к сотруднику Dim и работе Dim (а также к вашим датам). Это позволит вам разбить отсутствие по сотрудникам и работе. Ваша темная работа на самом деле будет просто названием должности, оценками и т. Д. Факт будет содержать даты вступления в силу. Исследуйте таблицы фактов без фактов.

Обратите внимание, что ваша ссылка на вакансию будет частью отдельного факта (когда / где вы ее опубликовали, сколько соискателей представляют измеримые факты о вакансии). Это также может быть примером вырожденного измерения.

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

...