Mit 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.
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.
Die Erstellung von Modellen als Tabellen in Ihrem Data Warehouse wird oft bevorzugt, um die Abfrageleistung zu verbessern.
Ein inkrementelles Modell sollte verwendet werden, wenn:
Inkrementelle Modelle bieten einen Kompromiss zwischen Komplexität und verbesserter Performance im Vergleich zu View- und Tabellen-Materialisierungen.
Die Konfiguration kann so erstellt werden, dass es für alle Modelle gilt oder aber modellabhängig.
{{ config(
materialized='incremental'
) }}
Mit dieser Konfiguration werden alle Datensätze, die durch das Modell selektiert werden in die Tabelle geschrieben (auch identische Datensätze).
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 mit mehreren Feldern:
{{ config(
materialized='incremental',
unique_key=['Feld_1', 'Feld_2']
) }}
Mit dem Macro is_incremental() kann geprüft werden, ob das Modell inkrementell geladen wird.
Select ...
from ...
{% if is_incremental() %}
where load_date >= dateadd(day, -5, current_date)
{% endif %}
Das Macro liefert den Wert true, wenn:
materialized='incremental' enthalten ist.$ dbt run --full-refresh --mein_modelCopyright © 2025 BI-Logix Consulting GmbH - All rights reserved