mark 1920 thMit dem inkrementellem Laden in dbt werden nicht alle Datensätze sondern nur neue Datensätze geladen, wodurch der Zeit- und Ressourcenaufwand für Ihre Datentransformationen erheblich reduziert wird.



Auf dieser Seite erhalten Sie einen kurzen Überblick über inkrementelle Modelle, ihre Bedeutung bei Datentransformationen und die Kernkonzepte inkrementeller Materialisierungen in dbt.


Grundsätzliches über inkrementelles Modell
Mit inkrementellen Modellen können Sie die Ladezeit erheblich verkürzen, indem Sie nur neue Datensätze transformieren. Dies ist besonders nützlich bei großen Datenmengen, bei denen die Kosten für die Bewirtschaftung der gesamten Datenmenge hoch sind.
Inkrementelle Modelle erfordern eine zusätzliche Konfiguration und stellen eine erweiterte Nutzung von dbt dar. 

Wann sollte ein inkrementelles Modell verwendet werden?
Die Erstellung von Modellen als Tabellen in Ihrem Data Warehouse wird oft bevorzugt, um die Abfrageleistung zu verbessern. Die Verwendung von Tabellen kann jedoch sehr rechenintensiv sein, insbesondere wenn

- Die Quelldaten Millionen oder Milliarden von Zeilen enthalten.
- Datentransformationen an den Quelldaten rechenintensiv (lange Ausführungszeit) und komplex sind, z.B. bei Verwendung von Regex oder UDFs.

Inkrementelle Modelle bieten einen Kompromiss zwischen Komplexität und verbesserter Performance im Vergleich zu View- und Tabellen-Materialisierungen.
Zusätzlich zu diesen Überlegungen zu inkrementellen Modellen ist es wichtig, ihre Grenzen und Herausforderungen zu verstehen, insbesondere bei großen Datensätzen. 

Wie kann ich ein inkremelles Modell konfigurieren
Die Konfiguration kann so erstellt werden, dass es für alle Modelle gilt oder aber modellabhängig. Wir betrachten den Fall, wo es modellabhängig erfolgt.

In diesem Fall wird es im config-Bereich des Modell definiert.

{{
config(
materialized='incremental'
)
}}

Mit dieser Konfiguration werden alle Datensätze, die durch das Modell selektiert werden in die Tabelle geschrieben (auch identische Datensätze).

Erweiterung 1: Unique Key
Mit einem Unique Key wird/werden Felder definiert, anhand deren identifiziert wird, ob der Datensatz vorhanden ist oder nicht.
Ist der Datensatz vorhanden, wird es überschrieben. Sonst wird es neu hinzugefügt.
{{
config(
materialized='incremental',
unique_key='Feld_1'   oder unique_key=['Feld_1', 'Feld_2']
)
}}

Erweiterung 2: is_incremental() macro
Mit dem Macro is_incremental() kann geprüft werden, ob das Modell inkrementel geladen wird. In diesem Fall kann z.B. eine Bendingung hinzugefügt werden, so dass nur die Datensätze der letzten fünf Tage geladen werden
Select ...
from   ...
{
% if is_incremental() %}
   where load_date >= dateadd(day, -5, current_date)
{% endif %}
Das Macro liefert den Wert true, wenn

BI-Logix Blog

dbt - Wie lade ich inkrementell in dbt

mark 1920 thMit dem inkrementellem Laden in dbt werden nicht alle Datensätze sondern nur neue Datensätze geladen, wodurch der Zeit- und Ressourcenaufwand für Ihre Datentransformationen erheblich reduziert wird.

metaLogix zur Auswertung von SAP BusinessObjects Metadaten

maple metaLogix bietet Funktionen für die Auswertung von Business-Intelligence Daten. Auf der Basis der Metadaten von SAP Business Objects werden Erkenntnisse über Ihre gesamten Berichtswesen sowie der Attribute gewonnen.

DataVault - neues Data Warehouse-Konzept

mark 1920 thFür ein zentrales Data Warehouse, welches umfangreiche Datenmodellierungsprozesse mit vielen Quellsystemen, großen Datenmengen oder sich stetig weiterentwickelnde Geschäftslogik hat, bietet das Data Vault-Konzept eine zuverlässige und flexible Lösung an.