Een gestandaardiseerde manier van dataverwerking met behulp van dbt

Nederlandse webwinkel

  • Klantcase
  • Data Engineering
  • Dataconsultancy
  • Analytics Engineering
vrouw die online aan het shoppen is
Joachim-business-manager
Joachim van Biemen
Business Manager
5 min
18 Apr 2023

Een van de grootste webwinkels van Nederland wilde een gestandaardiseerde manier van dataverwerking ontwikkelen binnen een van de datateams. Alle data werd opgeslagen in het schaalbare cloud datawarehouse Google BigQuery. Binnen dit platform waren grote hoeveelheden data beschikbaar op het gebied van orders, producten, marketing, retouren, klantcases en partners.

Door gebruik te maken van Google BigQuery, was de data zeer toegankelijk voor de gehele organisatie. Data Analisten waren verantwoordelijk voor het modelleren van de data met behulp van SQL. De output van deze SQL-queries waren geaggregeerde tabellen die Business Analisten en Managers gebruikten om inzichten uit te halen.

Binnen het team had iedereen een eigen manier van werken in een geïsoleerde persoonlijke omgeving. Hierdoor was het lastig om een gestandaardiseerde werkwijze te creëren waarbij iedereen op dezelfde manier datatransformaties doorvoerde. De volgende uitdagingen ontstonden hierdoor:

  • Geen single source of truth: Het opvragen van cijfers bij Data Analist A gaf andere resultaten dan bij Data Analist B.
  • Geen versiebeheer: Het was onduidelijk wie, wanneer, en met welke code werkte.
  • Geen optimale samenwerking: Code die Data Analist A schreef, zou door Data Analist B hergebruikt kunnen worden. Aangezien er geen overzicht was, werd dit niet gedaan.

De webwinkel schakelde hiervoor onze hulp in. We stelden een team samen bestaande uit een Analytics Engineer en Data Engineer. De Analytics Engineer was verantwoordelijk voor het modeleren en standaardiseren van data, én het onderzoeken van de databehoeften van de business. De Data Engineer was verantwoordelijk voor het opzetten van de cloud omgeving en het inrichten van de CI/CD pipelines.

Aanpak

We kozen ervoor om de datatransformaties in BigQuery te realiseren met behulp van dbt (data build tool). Dit is een tool waarmee Data Analisten en -Engineers data in warehouses programmatisch en effectief kunnen transformeren. Daarbij biedt dbt de mogelijkheid om effectief, snel en op grote schaal testen op datamodellen toe te passen. Zo kun je controleren of de aannames die er zijn over de data kloppen.

Stap 1 – Inventarisatie: Onze Analytics Engineer onderzocht welke datatransformaties er op dat moment plaatsvonden. Vervolgens prioriteerden hij welke tabellen er als eerst via dbt gemoduleerd moesten worden, wat resulteerde in een roadmap.

Stap 2 – Opzetten cloud componenten: De Data Engineer zette een nieuwe Google Cloud omgeving op met daarbinnen een BigQuery component voor de dataopslag en -verwerking. Daarnaast implementeerde hij een Airflow instantie zodat de datatransformaties op geplande basis uitgevoerd werden. Daarbij richtte hij een GitLab omgeving in voor het samen ontwikkelen van de code. Hierin zette hij ook een CI/CD pipeline op voor het automatisch testen van de code. Denk hierbij aan checks op de aanwezigheid van documentatie en op fouten in de code-syntax.

Stap 3 – Inrichting en configuratie dbt: We zetten de inrichting en configuratie op aan de hand van de roadmap. We deelden de SQL-code in herbruikbare modules op zodat deze in meerdere vraagstukken gebruikt konden worden. Daarnaast implementeerden we automatische datatesten op de verschillende modellen. Zo identificeerden we problemen met de datakwaliteit op tijd.

Stap 4 – Team opleiden: Na de technische implementatie was het belangrijk om het team te trainen in het gebruik van de nieuwe tooling en mee te nemen in de nieuwe manier van werken. Daarvoor stelden we onder andere een document op met de exacte ‘nieuwe’ werkwijze. We trainden ze ook op de volgende onderwerpen:

  • Samenwerken in GitLab: Gitlab is een efficiënte manier om samen code ontwikkelen met versiebeheer. We pasten het 4-ogen principe toe voor het toevoegen van nieuwe code.
  • Leren werken met dbt: Dbt is een nieuwe tool voor de Data Analisten van de webwinkel. Het zorgt ervoor dat data efficiënt getransformeerd kan worden en het is daarom van belang dat het team weet hoe de tool werkt.

Door de medewerkers op bovenstaande onderwerpen te trainen, konden ze zelf aan de slag met de nieuwe modulaire manier van dataverwerking.

Data Architecture

Analytics Architecture

Resultaat

De Data Analisten van de webwinkel kunnen nu efficiënter met elkaar samenwerken en eenvoudiger werk aan elkaar overdragen. Doordat de SQL-code is opgedeeld in meerdere losse modules en deze automatisch getest worden, worden fouten in een eerder stadium opgelost.

Daarnaast zorgt het gebruik van GitLab ervoor dat er versiebeheer is. Het is hierdoor duidelijk wie, wanneer, met welke code werkt.

De datakwaliteit is sterk toegenomen. Doordat er nu een single source of truth is, hebben Business Analisten en Managers meer vertrouwen in de juistheid van de cijfers.

Meer weten?

Joachim gaat graag met je in gesprek over wat we als datapartner voor jou en je organisatie kunnen betekenen.

1x per maand data insights, praktijkcases en een kijkje achter de schermen ontvangen?

Meld je aan voor onze maillijst en blijf 'up to data':