Tabelas de dimensão de tempo de carregamento

Concluído

As tabelas de dimensão de tempo armazenam um registro para cada intervalo de tempo com base no grão pelo qual você deseja agregar dados ao longo do tempo. Por exemplo, uma tabela de dimensão de tempo no grão de data contém um registro para cada data entre as datas mais antigas e mais recentes referenciadas pelos dados em tabelas de fatos relacionadas.

O exemplo de código a seguir mostra como você pode gerar uma sequência de valores de dimensão de tempo com base em um grão de data .

-- 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

Gorjeta

Criar scripts em SQL pode ser demorado em um pool SQL dedicado – pode ser mais eficiente preparar os dados no Microsoft Excel ou em um script externo e importá-los usando a instrução COPY.

À medida que o data warehouse é preenchido no futuro com novos dados de fatos, você precisa periodicamente estender o intervalo de tabelas de dimensões de tempo relacionadas a datas.