среда, 14 января 2015 г.

Календарь для хранилища.

Создание календаря для Хранилища Данных. Или Date dimension. Или измерения времени.

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

Результаты поисков, все что нашлось поиском по интернету и сообщениям наших коллег с SQL.ru (спасибо им) представлены ниже.

Наибольшее количество ссылок применимо для MS SQL Server:

Календарь для хранилища данных на основе MS SQL.

DATE AND TIME DIMENSION TEMPLATE.

MS SQL запрос, формирующий список дат (порадовал наличием украинских и белорусских наименований для дней и сезонов).

SSAS - пример измерения времени.

Вьюха для календаря (с рекурсивным запросом).


Элегантный скрипт для БД PostgreSQL

PostgreSQL: Auto generate a sample Dataset.


Пример для Oracle DB.

Пример создания календаря (time dimension table)

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

CREATING A CALENDAR TABLE.

Второй пример для Вертики, использующий неизвестный мне ранее механизм TIMESERIES
Vertica - Creating a calendar table


И напоследок Teradata. Эта СУБД имеет стандартный календарь в виде представления SYS_CALENDAR.CALENDAR, хранящее даты с 1 января 1900 по 31 декабря 2100 года. По одной записи на каждый день.

System Calendar - SYS_CALENDAR.CALENDAR

Вот такой вот первый в этом году пост. С Новым Годом!


Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.