Caricare tabelle delle dimensioni temporali
Le tabelle delle dimensioni temporali archiviano un record per ogni intervallo di tempo in base al livello di granularità con il quale si desidera aggregare i dati nel tempo. Una tabella delle dimensioni temporali con granularità a livello di data contiene un record per ogni data compresa tra la data meno recente e quella più recente a cui fanno riferimento i dati nelle tabelle dei fatti correlate.
Nell'esempio di codice seguente viene illustrato come generare una sequenza di valori delle dimensioni temporali in base a una granularità a livello 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
Suggerimento
L'esecuzione di script in SQL potrebbe richiedere molto tempo in un pool SQL dedicato. Potrebbe risultare più efficiente preparare i dati in Microsoft Excel o uno script esterno e importarli usando l'istruzione COPY.
Dal momento che il data warehouse viene popolato in futuro con nuovi dati fattuali, è necessario estendere periodicamente l'intervallo di date relativo alle tabelle delle dimensioni temporali.