Een ETL Pipeline ontwikkelen aan de hand van Google Cloud Platform

Je hebt klantendata op je CRM staan maar je weet niet goed hoe je deze beter kan bekijken en analyseren? Deze blog zal je uitleggen hoe je je data automatisch naar je datawarehouse kan uploaden.

De data die we gaan gebruiken zal afkomstig zijn van Teamleader, een software service die klantenbeheer, projectmanagement en facturatie mogelijk maakt aan de hand van één tool.

Wat is ETL?

ETL staat voor ‘Extract, Transform, Load’ waarmee de algemene procedure voor het overzetten van data, afkomstig van één of meer databronnen, naar een bepaalde bestemming wordt bedoeld.

In dit geval zal onze databron een API (Application Programming Interface) zijn en onze bestemming Google Bigquery. De ETL tool die wij zullen gebruiken is Google Cloud Functions, een serverloos platform waarop men code kan laten uitvoeren aan de hand van bepaalde ‘triggers’.


Architectuur

De klantendata staat bij ons op Teamleader, aan de hand van de API kunnen we deze makkelijk verkrijgen in een JSON formaat. We sturen een post request naar de Teamleader API aan de hand van een Google Cloud Function en we slaan vervolgens de verkregen data op in Google Cloud Storage. Met Google Cloud Scheduler kan je een cronjob maken die ervoor zorgt dat de Google Cloud Function automatisch uitgevoerd wordt op een bepaald tijdstip. Vervolgens gebruiken we een nieuwe Google Cloud Function om de data van de Google Cloud Storage te verzenden naar Google BigQuery. Google BigQuery laat toe om data makkelijk op te slaan, te bekijken en te verbinden.

Hoe maak je een Google Cloud Function?


Een Google Cloud Functions opstellen doe je zo:

  1. Ga naar de Google Cloud Functions pagina
  2. Klik op ‘Functie Maken’.
  3. Geef je functie een naam.
  4. In het ‘Trigger’-veld kies je ‘HTTP’
  5. In dit voorbeeld gebruiken we als Runtime, ‘Python 3.7’
  6. Vervolgens klik je op ‘Omgevingsvariabelen, Netwerken, Time-Outs en Meer'. Hier kan je zien welk service account de functie zal uitvoeren, dit is belangrijk voor de latere stappen.

Een Google Cloud Function bestaat uit twee bestanden, namelijk een main.py en een requirements.txt bestand. Het Python bestand bevat al je code en het text bestand bevat al je dependencies.

Extract

Voordat je klantdata via een API toegankelijk is, zal je deze eerst nog moeten activeren. Dit is voor elke API anders, maar staat altijd goed gedocumenteerd bij de API zelf.

Deze code zal alle bedrijven van Teamleader opvragen door gebruik te maken van de API.
We krijgen de data in JSON formaat en vervolgens worden deze opgeslagen als .csv files in Google Cloud Storage. De ‘main’ functie is de functie die zal uitgevoerd worden wanneer de Google Cloud Function een trigger krijgt.


Transform


In dit voorbeeld pas ik geen transformaties toe, aangezien wij dat in deze tabel niet nodig hebben. De klantdata die wij momenteel hebben is voldoende compleet dus we hebben geen extra attributen nodig en we moeten niets aanvullen. Zou je toch je data willen transformeren, dan kan je dit toevoegen in één van de twee Google Cloud Functions.


Load


Voor we het Load gedeelte kunnen uitvoeren moeten we eerst een bestemmingstabel aanmaken in Google BigQuery. Hiervoor moet je een dataset aanmaken, waarin je vervolgens je bestemmingstabel aanmaakt. Deze tabel moet ook de juiste attributen bevatten, zodat deze overeenkomen met je .csv bestand.

Vervolgens maken we een nieuwe Google Cloud Function die de data van de Google Cloud Storage overzet naar Google Bigquery.


Automatiseren


Het automatiseren van heel het proces doen we aan de hand van Google Cloud Scheduler. Hierbij maken we een nieuwe Cloud Scheduler die een functie kan oproepen. Dit wordt ook wel een cronjob genoemd. Beide scripts gaan we laten uitvoeren door verschillende cronjobs.


Wanneer je terugkijkt naar de eerste afbeelding zie je bij de functie een url staan, dit geef je in als URL wanneer je een nieuwe Cloud Scheduler aanmaakt en dan zal deze gecontacteerd worden op basis van de frequentie die je bovenaan meegeeft. Het ingesteld tijdstip dat ik gebruik is voor één van de cronjobs is  ‘* 0 */1 * *’,  wat betekent dat dit elke dag om twaalf uur ‘s nachts zal uitgevoerd worden. Nu krijgen we elke dag de teamleader data binnen en wordt deze automatisch opgeslagen in onze Google Cloud Storage en vervolgens Google Bigquery.

We geloven met ons team sterk in het koppelen van de Google Cloud met het Google Marketing Platform. Door data uit verschillende marketing tools te halen en te centraliseren in een Data Warehouse zoals BigQuery creëer je veel meer mogelijkheden:

  • 360 beeld van je eindklant
  • betere segmentatie
  • hogere ROI van advertentiebudgetten
  • betere digitale ervaring voor eindklant
  • je organisatie wordt nog meer datagedreven


Wil je op de hoogte blijven van alle tips en tricks? Aarzel dan niet en schrijf je in voor onze wekelijkse nieuwsbrief.


Relevante artikels

Wat is het verschil tussen Google Analytics en App + Web?

Je wil jouw website data beter analyseren maar je hebt geen idee wat het verschil nu is tussen Google Analytics en App + Web? Ontdek hier de verschillen of bekijk de video die jou alle instructies geeft bij het installeren van de tool voor jouw website!

Hoe gebruik ik Google Optimize?

Google Optimize: de ideale tool voor het personaliseren van jouw advertentiecampagnes. En personalisatie is belangrijk zodat jouw boodschap aankomt bij de juiste persoon, op het juiste moment. Lees alles over de verschillende tests die je kan uitvoeren.

Beheer al je klanten data in één handige tool: Segment

Lees hoe alle wegen leiden naar één Customer Data Platform: Segment. Zo wordt klantendata verzamelen een stuk eenvoudiger.