Вычислить дату и время в таблице фактов, используя существующее поле даты и времени - PullRequest
0 голосов
/ 01 июня 2011

У меня есть поле даты и времени в таблице фактов в формате ММ / ДД / ГГ ЧЧ: ММ: СС (например, 24.02.2009 11:18:47), и у меня есть отдельное измерение даты и времени столы. Я хотел бы спросить, как я могу создать ключ даты и время в таблице фактов, используя поле даты и времени, чтобы я мог присоединиться к измерение даты и времени.

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

Я также слышал, что наличие поля даты и времени в таблице фактов имеет определенную выгоду. Если да, что бы вы порекомендовали, если бы у меня было все три (ключ даты, ключ времени и поле даты и времени) в таблице фактов. Ключ даты и время должны быть для меня, и я беспокоюсь о размере таблицы фактов, если у меня есть поле даты и времени также в таблице фактов.

Спасибо всем за любую помощь, которую вы можете оказать.

1 Ответ

4 голосов
/ 01 июня 2011

Что вам нужно сделать (если я правильно понимаю), это создать два поля в вашей таблице фактов: kTime, kDate.

Мы бы всегда предлагали использовать первичные ключи для DimTime и DimDate как имеющие значение (это особый случай, обычно у предварительных ключей таблиц Dim нет никакого значения). Так, например в DimDate у нас будет kDate в качестве первичного ключа со значениями, отформатированными как YYYYMMDD, так что вы можете упорядочить по kDate и расположить их в порядке дат. Затем создайте таблицу DimTime с первичным ключом kTime в форме ЧЧММ или ЧЧММСС (в зависимости от необходимого разрешения.

Лучше всего сохранять поле фактической даты и времени в таблице фактов, так как это позволяет SQL использовать свои встроенные функции даты / времени для выполнения поднабора, но если вы расширяете свои таблицы Dim полезными дополнительными столбцами: DimDate ( добавьте DayOfWeek, IsHoliday, DayNumber, MonthNumber, YearNumber и т. д.) и DimTime (HourNumber, MinuteNumber, IsWorkingTime), тогда вы сможете выполнять очень интересные запросы очень просто.

Итак, чтобы ответить на ваш вопрос, "как создать ключи даты и времени в таблице фактов с использованием существующего поля даты и времени?" ... при загрузке данных в таблицу фактов используйте встроенные функции даты / времени для создания отдельных полей даты и времени.

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

удачи!

...