Мы начинаем проектировать строительные блоки витрины / хранилища данных, и мы должны иметь возможность поддерживать все часовые пояса (наши клиенты со всего мира). Из чтения дискуссий в Интернете (и в книгах), похоже, общим решением является отдельное измерение даты и времени, а также временная метка в таблицах фактов.
Тем не менее, вопрос, на который мне трудно ответить, заключается в том, насколько полезны измерения даты и времени для меня, учитывая мои требования к динамическому часовому поясу? Измерение времени имеет немного больше смысла, но я испытываю трудности с измерением даты. Общий подход к проектированию для измерения даты обычно включает такие свойства, как название дня, день недели, название месяца и т. Д. Проблема, с которой я сталкиваюсь, заключается в том, что 23:00 во вторник, 31 декабря 2013 г. в UTC, - среда 1 января 2014 г. во всех часовых поясах после UTC + 2.
Поэтому, если мне придется выполнять все эти преобразования часовых поясов для каждого запроса (и отчета), то какой смысл иметь и хранить эти свойства, которые я, вероятно, никогда не буду использовать (кажется, что)? Некоторые люди предлагают иметь ряды фактов для каждого часового пояса, но это кажется мне смешным. Мы должны иметь возможность хранить миллионы записей каждый месяц.
Другие предлагают иметь таблицу моста часового пояса, которая хотя и имеет некоторый смысл, но также кажется дополнительной сложностью и дополнительными объединениями для выполнения чего-то, что мои клиентские приложения и отчеты должны легко вычислять по дате (отчеты будут в основном основаны на веб-технологиях). где есть множество библиотек, чтобы помочь в преобразовании, отображении и форматировании дат).
Единственное, о чем я могу думать, - это простота и, возможно, производительность группировки по дате и часу, но насколько плохой практикой является группирование по дате (мы используем MS SQL, но мы будем запрашивать миллионы строк), или мы должны рассмотреть просто чрезвычайно простые измерения даты и времени, по большей части не более чем числа часов, дней, месяцев и годов, поскольку большинство литералов, таких как понедельник, не будут иметь большого значения, когда в игру вступят часовые пояса?