Таблицы измерений нагрузки

Завершено

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

В следующем примере кода показано, как создать последовательность значений измерения времени на основе даты .

-- Create a temporary table for the dates we need
CREATE TABLE #TmpStageDate (DateVal DATE NOT NULL)

-- Populate the temp table with a range of dates
DECLARE @StartDate DATE
DECLARE @EndDate DATE
SET @StartDate = '2019-01-01'
SET @EndDate = '2023-12-31'
DECLARE @LoopDate = @StartDate
WHILE @LoopDate <= @EndDate
BEGIN
    INSERT INTO #TmpStageDate VALUES
    (
        @LoopDate
    )
    SET @LoopDate = DATEADD(dd, 1, @LoopDate)
END

-- Insert the dates and calculated attributes into the dimension table
INSERT INTO dbo.DimDate
SELECT CAST(CONVERT(VARCHAR(8), DateVal, 112) as INT), -- date key
    DateVal, --date alt key
    Day(DateVal) -- day number of month
    --,  other derived temporal fields as required
FROM #TmpStageDate
GO

--Drop temporary table
DROP TABLE #TmpStageDate

Подсказка

Написание скрипта на SQL в выделенном пуле может занять много времени – будет более эффективно подготовить данные в Microsoft Excel или с помощью внешнего скрипта, а затем импортировать их с помощью инструкции COPY.

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