DeltaLoad mit Change Data Capture

In den meis­ten BI-Sys­te­men nimmt das Laden der Fak­ten­da­ten die meiste Zeit in Anspruch. Daher kommt man schnell auf die Idee, nicht immer alle Fak­ten­da­ten zu laden, son­dern nur die neuen und die geän­der­ten Daten­sätze. Dabei gibt es unter­schied­li­che Sze­na­rios in Bezug auf das Quell-Sys­tem:

  • Es wer­den nur neue Daten­sätze gela­den und es ist eine Spalte vor­han­den, mit­tels derer genau bestimmt wer­den kann, wel­che Daten­sätze zu laden sind. Dies könnte z. B. ein fort­lau­fen­der Daten­satz­zäh­ler sein.
  • Es kann ein über­lap­pen­des Zeit­fens­ter auf einer Datums­spalte bestimmt wer­den, in wel­chem sich Daten ändern kön­nen, z. B. das Buchungs­da­tum.
  • Es sind keine Infor­ma­tio­nen vor­han­den, mit Hilfe derer nur die geän­der­ten Daten selek­tiert wer­den kön­nen.

Der SQL Ser­ver bie­tet unter­schied­li­che Mög­lich­kei­ten, diese Pro­bleme zu lösen. Mit­tels selbst pro-gram­mier­tem T-SQL Code ist selbst­ver­ständ­lich alles mög­lich, jedoch ist das nicht immer die beste Lösung. Gerade für das dritte oben genannte Sze­na­rio wäre viel Auf­wand not­wen­dig. Bereits für den SQL Ser­ver 2008 hat Micro­soft eine Funk­tion mit dem Namen Change Data Cap­ture (CDC) ein­ge­führt. Mit dem SQL Ser­ver 2012 wurde die Funk­tion wei­ter aus­ge­baut, u. a. ist eine SSIS- Unter­stüt­zung hin­zu­ge­kom­men. In die­sem Bei­trag wird gezeigt, wie CDC für ein Delta Lade­vor­gang ver­wen­det wer­den kann.

Den gesam­ten Arti­kel kön­nen Sie hier abru­fen.

Schreibe einen Kommentar