Вопросы отчетности хранилища данных - PullRequest
0 голосов
/ 15 июня 2009

Я только начал погружаться в хранилище данных, и у меня есть один вопрос, который я просто не могу понять.

У меня есть бизнес, в котором есть десять магазинов, в каждом из которых есть определенные сотрудники. В моем хранилище данных у меня есть измерение, представляющее магазин. Измерение сотрудника - это SCD ​​со столбцом для начала / конца и хранилищем, в котором работает сотрудник.

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

То, что я хочу сделать, - это создать отчет, показывающий отношение количества предложений к числу сотрудников в конкретном году. Поскольку количество сотрудников периодически меняется, я просто не могу сделать простой запрос на общее количество сотрудников.

К сожалению, я довольно долго искал в Интернете, пытаясь найти решение, но большинство примеров - это розничные продажи, которые отличаются от того, что я пытаюсь сделать.

Любая помощь будет оценена. У меня на компьютере установлена ​​программа AdventureWorksDW, поэтому я могу использовать ее в качестве ориентира, если кто-либо предложит использовать это предложение.

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 15 июня 2009

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

Редактировать: Если в вашей таблице транзакций (предложение) указана дата, то должно быть определенное количество сотрудников, сгруппированных по вычисленной функции даты предложения (например, datepart (yy, s.SuggestionDate)) и бизнес-единицы. Это. Вам не нужно беспокоиться о дате в измерении сотрудника, так как соответствующая строка должна присоединиться непосредственно к таблице транзакций.

0 голосов
/ 27 октября 2009

Добавьте еще одну таблицу фактов для количества сотрудников в каждом магазине за каждый месяц - вы можете использовать максимальное число за месяц. Затем в среднем по месяцам за год используйте это как «количество работников в год».

Загружайте новую таблицу фактов в конце каждого месяца. Новая таблица будет выглядеть так:

таблица фактов: EmployeeCount

KeyEmployeeCount int - суррогатный ключ

KeyDate int - измерение от FK до даты, указание на последний день месяца

KeyStore int - FK для хранения измерения

NumberOfEmployes int - (max) количество сотрудников за месяц в данном магазине

Если вам нужно более точное разрешение, используйте «в неделю» или даже «в день». Основная идея заключается в усреднении показателя NumberOfEmployes для данного магазина за год.

...