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:
- Ga naar de Google Cloud Functions pagina
- Klik op ‘Functie Maken’.
- Geef je functie een naam.
- In het ‘Trigger’-veld kies je ‘HTTP’
- In dit voorbeeld gebruiken we als Runtime, ‘Python 3.7’
- 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.