Laden von Zeitdimensionstabellen
Zeitdimensionstabellen speichern einen Datensatz für jedes Zeitintervall auf Grundlage des Aggregationsintervalls, nach dem Sie Daten im Laufe der Zeit aggregieren möchten. Beispielsweise enthält eine Zeitdimensionstabelle mit dem Aggregationsintervall Datum einen Datensatz für jedes Datum zwischen dem frühesten und dem spätesten Datum, auf das die Daten in den zugehörigen Faktentabellen verweisen.
Das folgende Codebeispiel zeigt, wie Sie eine Sequenz von Zeitdimensionswerten auf Grundlage des Aggregationsintervalls date (Datum) erzeugen können.
-- 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
Tipp
Die Skripterstellung in SQL kann in einem dedizierten SQL-Pool zeitaufwändig sein. Es kann effizienter sein, die Daten in Microsoft Excel oder einem externen Skript aufzubereiten und mithilfe der COPY-Anweisung zu importieren.
Da das Data Warehouse in Zukunft mit neuen Faktendaten aufgefüllt wird, müssen Sie in regelmäßigen Abständen den Datumsbereich der entsprechenden Zeitdimensionstabellen erweitern.