Создание календаря для Хранилища Данных. Или 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
Вот такой вот первый в этом году пост. С Новым Годом!
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.