Data Strategie

WMCHealth: dbt-pijplijn van 72 minuten naar 5 minuten met omgevingsvariabele

dbt Blog
WMCHealth: dbt-pijplijn van 72 minuten naar 5 minuten met omgevingsvariabele

Samenvatting

WMCHealth brengt een dbt-pijplijn van 72 minuten naar vijf minuten met één omgevingsvariabele.

dbt-pijplijn met twee uitvoermodi

Analytics engineers Maksim Romanchuk en Paul Pedrozo van WMCHealth presenteerden tijdens dbt Summit een patroon voor operationele rapportage en historische analyses vanuit dezelfde bedrijfslogica. WMCHealth ondersteunt negen ziekenhuizen met versnipperde legacy-systemen en had daarom twee uitvoermodi nodig: een verversing om de vijf minuten voor actieve records en een nachtelijke verwerking van de volledige dataset.

De oplossing gebruikt één dbt-model en één codebase. De omgevingsvariabele `ENV_NRT` bepaalt de uitvoering. Bij de waarde 1 bouwt dbt een table-materialisatie op basis van actieve records. De mediane runtime bedraagt dan 278 seconden. Bij de standaardwaarde 0 draait hetzelfde model ’s nachts als incremental-materialisatie over de volledige dataset, met een mediane runtime van 4.340 seconden.

De live verversing ging daarmee van 72 minuten naar vijf minuten. Dat betekent een runtime-reductie van 93,6 procent en meer dan 99 procent minder verwerkte data per run in near-real-time-modus.

Waarom deze dbt-aanpak telt

WMCHealth verwierp drie voor de hand liggende oplossingen: het warehouse opschalen was te duur bij een verversing om de vijf minuten, twee dbt-projecten konden logica laten uiteenlopen en incremental-modellen bleken onvoldoende snel voor zeer grote tabellen.

De gekozen aanpak verplaatst het verschil naar de uitvoerconfiguratie, niet naar een tweede set modellen. Modellen die een versmalde ankertabel inner joinen, nemen de kleinere scope automatisch over. Andere modellen gebruiken een expliciete `WHERE`-filter met een `EXISTS`-clausule. Zo blijven de CI/CD-inrichting en codebasis gelijk, terwijl dashboards, meldingen en historische rapportages elk hun eigen verwerkingsbereik krijgen.

Concrete takeaway voor dbt

Test bij dubbele rapportagebehoeften eerst een gedeeld model met een omgevingsvariabele. Meet per modus de runtime en hoeveelheid verwerkte data, en controleer vervolgens hoe de filter via de DAG doorwerkt. Zo zie je snel of één codebasis beide processen aankan zonder parallelle logica.

Lees het volledige artikel
Meer over Data Strategie →