Skip to main content
Scalefree Wissen Webinare Experten-Sessions dbt Talk Inkrementelle Microbatch-Modelle: Ein neuer Ansatz für große Datenmengen

Was ist Microbatch?

Microbatch ist eine innovative inkrementelle Strategie, die speziell für große Zeitreihendatensätze entwickelt wurde. Eingeführt in dbt Core Version 1.9 (derzeit in der Beta-Phase), ergänzt sie bestehende inkrementelle Strategien um eine strukturierte und effiziente Methode zur schrittweisen Datenverarbeitung in Batches.



Zu den wichtigsten Merkmalen von Microbatch gehören:

  • Verwendung einer Zeitspalte zur Definition von Batch-Bereichen.
  • Unterstützung bei der erneuten Verarbeitung fehlgeschlagener Batches.
  • Automatische Erkennung paralleler Batches.
  • Verzicht auf komplexe bedingte Logik für das Backfilling.

Diese Strategie eignet sich jedoch nicht für Datensätze, denen eine verlässliche Zeitspalte fehlt oder die eine besonders feinkörnige Kontrolle über die Verarbeitungslogik erfordern.

Wie Microbatches funktionieren

Microbatching funktioniert, indem die Modellverarbeitung auf Basis folgender Parameter in mehrere Abfragen (Batches) aufgeteilt wird:

  • event_time: Die Zeitspalte, die die Batch-Bereiche definiert.
  • batch_size: Das Zeitintervall für jeden Batch (hour, day [Standard], month, yea

Jeder Batch fungiert als unabhängige, atomare Einheit, was Folgendes bedeutet:

  • Batches können individuell verarbeitet, wiederholt oder ersetzt werden.
  • Die parallele Ausführung ermöglicht eine separate, idempotente Batch-Verarbeitung.

Die Strategien zum Ersetzen von Batches variieren je nach Datenbank-Adapter:

  • Postgres: Verwendet.merge
  • BigQuery und Spark: Verwenden insert_overwrite.
  • Databricks: Verwendet replace_where.
  • Redshift und Snowflake: Verwenden delete + insert.

Konfiguration von Microbatch-Modellen

Bei der Einrichtung eines Microbatch-Modells sind folgende Konfigurationen erforderlich:

  • event_time: Gibt die Zeitspalte in UTC an.
  • batch_size: Definiert die Batch-Granularität (hour, day, month, year).
  • begin: Legt den Startzeitpunkt für initiale Builds oder vollständige Aktualisierungen (Full Refreshes) fest.

Zu den optionalen Konfigurationen gehören:

  • lookback: Verarbeitet vorherige Batches erneut, um verspätet eintreffende Datensätze zu erfassen.
  • concurrent_batches: Steuert die parallele Ausführung (wird standardmäßig automatisch erkannt).

Parallele Ausführung von Batches

Die parallele Ausführung wird basierend auf den Batch-Bedingungen und der Adapter-Unterstützung automatisch erkannt. Sie können dieses Verhalten jedoch über die Einstellung concurrent_batches concurrent_batches manuell anpassen.

Eine parallele Ausführung ist möglich, wenn:

  • Der Batch weder der erste noch der letzte in der Reihenfolge ist,
  • Der jeweilige Datenbank-Adapter die parallele Ausführung unterstützt,
  • Die Modelllogik nicht von einer festgelegten Ausführungsreihenfolge abhängt.

Wie Sie Daten nachladen (Backfilling)

Backfilling ermöglicht die erneute Verarbeitung historischer Daten innerhalb eines festgelegten Zeitraums über folgenden Befehl:

dbt run --event-time-start "2025-02-01" --event-time-end "2025-02-03"

Dadurch wird sichergestellt, dass ausschließlich Batches innerhalb des definierten Zeitfensters unabhängig voneinander verarbeitet werden.

Microbatch im Vergleich zu anderen inkrementellen Strategien

Microbatch unterscheidet sich von traditionellen inkrementellen Strategien durch:

  • Die Verwendung voneinander unabhängiger Abfragen für zeitbasierte Batches,
  • Den Verzicht auf is_incremental() und komplexe SQL-Logik,
  • Die automatische Auswahl der effizientesten Operation (insert, update, replace) für die jeweilige Plattform.

Fazit

Microbatch ist ein leistungsstarker neuer Ansatz für die inkrementelle Datenverarbeitung in dbt Core. Indem große Datenmengen in überschaubare, parallelisierbare Einheiten unterteilt werden, vereinfacht dieser Ansatz die Datenmodellierung und steigert gleichzeitig die Effizienz sowie Skalierbarkeit. Vor der Implementierung sollten Sie jedoch genau prüfen, ob Microbatch den spezifischen Anforderungen Ihrer Datenpipeline entspricht.

Watch the Video

Leave a Reply