載入時間維度資料表

已完成

時間維度資料表會根據您想要彙總一段時間資料的粒紋,來儲存每個時間間隔的記錄。 例如,具備「日期」精細度的時間維度資料表會包含相關事實資料表中資料所參考之最早和最新日期間每個日期的記錄。

下列程式碼範例示範如何根據日期粒紋產生一連串的時間維度值。

-- 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 集區中使用 SQL 編寫此指令碼可能很耗時,在 Microsoft Excel 或外部指令碼中準備資料,並使用 COPY 陳述式匯入資料可能更有效率。

未來使用新的事實資料填入資料倉儲時,您必須定期擴大日期相關時間維度資料表的範圍。