Tech talk: kan ETL in de cloud zonder programmeren? (deel 1)

Steeds meer dataoplossingen verhuizen van lokale infrastructuur naar de cloud. Een belangrijk argument is de mogelijke verlaging van de totale eigendomskosten. In deze 3-delige reeks Tech Talks over ETL bekijken we wat de datatools van twee grote cloudspelers kunnen: Amazon Web Services (AWS) en Azure.

Afbeelding van https://www.informatica.com/nl/resources/articles/what-is-etl.html
De basisvraag: wat is ETL?
ETL is een gangbaar patroon voor dataverplaatsing en staat voor Extract (ophalen uit een bron), Transform (de opgehaalde data transformeren) en Load (de getransformeerde data laden, meestal in een database, CSV, Excel-bestanden of een datalake). Doorgaans slaat u de opgehaalde data ook op in cloudopslag, zoals S3 of blobs. Het proces zou dus waarschijnlijk ELT of zelfs ELTL moeten heten, omdat u de data minstens tweemaal laadt of opslaat.
ETL en programmeren in de cloud
Wie een kort antwoord op de titelvraag zoekt: nee, ETL in de cloud kan niet zonder programmeren, op enkele eenvoudige scenario's na die u doorgaans buiten beschouwing zou laten.
Dat vraagt wat uitleg. Bij ETL haalt u niet gewoon twee tabellen uit één bron op om ze samen te voegen en de resulterende tabel in een database van uw favoriete leverancier te laden. U werkt met tientallen of honderden tabellen uit verschillende bronnen. Vervolgens maakt u complexe berekende velden of kolommen. Tot slot laadt u resultaten op verschillende manieren, zoals overschrijven of toevoegen. Er zijn dus bijna altijd meer combinaties van bewerkingen dan cloudleveranciers vooraf hebben voorzien en standaard aanbieden.
Mogelijke scenario's: met of zonder code?
Het proces telt drie fasen. Er zijn dus drie mogelijke bronnen van beperkingen en verschillende vragen:
Extract. Bestaat er een connector voor deze databron? Kunnen we grote hoeveelheden tegelijk ophalen? Niet alleen tabellen, maar ook views en materialized views scannen? Opslaan als parquet?
Transform. Welke transformaties en aggregaties zijn nodig? Kunnen we tijdens de ontwikkeling eenvoudig fouten opsporen en de data vooraf bekijken?
Load. Is er een connector voor de gewenste databestemming? Welke formaten worden aanvaard? Kunnen we in bulk laden? Kunnen we de laadmodus kiezen?
Als het antwoord op een van deze vragen nee is, moet u het proces aanpassen met eigen code. Populaire cloudtools zoals Azure Data Factory en AWS Glue bieden enkele basissjablonen voor eenvoudige scenario's. Er zijn dus grafische tools beschikbaar, maar programmeren maakt waarschijnlijk nog altijd 80% van elk ETL-project uit. De populairste programmeertalen voor ETL zijn Python, Scala en SQL.
Volgende ETL Tech Talks
In deel 2 en 3 beschrijven we twee cases waarin we Azure Data Factory en AWS Glue gebruikten om klanten te helpen hun ETL-processen en datawarehouses op te zetten.