top of page
  • Foto van schrijverAdrian Ariese

ETL - uitgelegd

Met een datawarehouse (vaak afgekort tot DWH) heb je een gedegen basis in huis om serieus met je data aan de slag te gaan. Dit biedt je een gekaderde en geïntegreerde oplossing voor je data-vraagstukken. Laten we echter niet vergeten dat een DWH minder makkelijk benaderbaar is dan een enkelvoudige database.


Is dat erg? Nee hoor, zolang je het ETL (extract, transform en load) proces maar goed ingericht hebt. Want in een datawarehouse kunnen gegevens niet aangepast worden in de systemen zelf. Het is dus een STP-proces (straight-through-proces) waarbij of de ETL aangepast moet worden of het bronsysteem. Alleen in een dergelijke procesgang kan je voor de gebruikers de output veranderen.

Kortom: Een gecontroleerde output, rust in de tent en een allesomvattend proces om dit mogelijk te maken en te borgen.


ETL

Wel zul je dus met het ETL-proces aan de slag moeten.

Wij helpen je daar graag pragmatisch mee. Laten we beginnen met een goede uitleg in dit stuk.

Het zijn dus een drietal processen die gebruikt worden om gegevens uit verschillende gestructureerde databases te verenigen in een andere database, veelal een datawarehouse of datalake.


De drie opvolgende processen:

  • Extract: Data gaan we uit een bron ophalen of uit meerdere bronnen. Dit kan in allerlei vormen.

  • Transform: We gaan opgehaalde data omzetten volgens regels en opzoektabellen of combinaties maken van data uit verschillende bronnen om dit om te zetten.

  • Load: De data gaan we als laatste wegschrijven op een andere plaats.


Zoals de afkorting ETL laaangeeft, bestaat het uit drie processen: extract, transform en load. Deze processen gaan als volgt te werk:


Extract

Het eerste deel van een ETL-proces haalt de data uit de bronsystemen. De meeste datawarehouse-projecten gebruiken data van verschillende bronsystemen en elk apart systeem kan ook een verschillend formaat of conventie gebruiken. Binnen DAAT is dit veelal openbare data (zoals bij het CBS) voor gemeenten. Maar ook halen we data op uit relationele databases van bijvoorbeeld een EPD bij de zorg.

Het extraheren vormt de data om naar een formaat voor het proces van transformatie. We gaan dan allereerst de data ontleden. Dan gaan we controleren en in de juiste structuur zetten. Daarmee is er dus ook een data-tolgate gecreerd. Is de data niet goed bevonden dan wordt deze ook niet toegelaten. Veel mensen herkennen dit dan ook als het opschonen van data. Iedereen heeft daarbij een beeld. Dat maakt het echter niet makkelijk of eenvoudig.


Transform

Bij het omvormen van de data passen we een serie van regels of functies toe op de geëxtraheerde data van de bron om de data af te leiden om geladen te worden naar het einddoel. Sommige databronnen zijn al schoon en kunnen met weinig aanpassingen/manipulatie opgepakt en omgezet worden. In andere gevallen zullen er één of meer transformatietypes toegepast moeten worden om aan de voor de klant gedefinieerde benodigdheden van het einddoel te beantwoorden. Wil je daar een gevoel bij hebben? Hieronder wat voorbeelden:

  • Waarden hercoderen of vertalen ( het bronsysteem gebruikt dan vaak andere waarden dan het warehouse voor bepaalde delen)

  • Omzetten van data (bijvoorbeeld waarde "Vrouw" naar V en "Meneer" naar M mappen)

  • Data van verschillende bronsystemen samenvoegen

  • Verschillende rijen samenvatten naar één rij

  • Kolommen opsplitsen in meerdere kolommen

  • Het toepassen van complexe datavalidatie

  • En voor gevorderden: pivoteren of transponeren


Load

Als laatste wordt de data in het einddoel geladen. In dit geval dus het datalake of datawarehouse. Hierin zijn best veel verschillende vormen te ontdekken. Je kunt data eenvoudigweg periodiek overschrijven. Maar er zijn ook goede redenen om dit in een tijdstabel te plaatsen en de data in de tijd weg te zetten. Soms "laad" je vaak. Soms alleen op interval-basis. Hoe dan ook zullen we kijken naar het doel van je handelen en daarmee wordt data vervangen op strategisch gekozen momenten, vooral naar behoefte van het bedrijf. Wij zijn er voorstander van om in de wat complexere systemen de geschiedenis bij te houden en een audit-trail (de broodkruimels van Hans en Grietje) aan te leggen met de aanpassingen in de data, die geladen was in het datawarehouse.




Waarom wil je ETL?

ETL heeft een aantal grote voordelen. Allereerst is het ingericht om grote datasets in bulk te kopiëren vanuit gestructureerde gegevensbronnen op een reguliere basis... Daarnaast is ETL ideaal voor complexe, multi-pass datatransformatie en het opschonen van data.

Als laatste kun je er historische waarde en veranderingen mee "meten". Je ziet de veranderingen in datarecords daarmee bouw je analytische waarde op over een dataset in de loop van de tijd.


Is dan alles fantastisch?

Nee hoor. Ook ETL heeft mindere punten. Als er iets verandert in de oorspronkelijke bron. Dan zul je moeten aanpassen in alle daarop volgende stappen. En je snapt dat des te groter de organisatie en datasets hoe meer je hieraan aandacht moet besteden. Complex en best tijdrovend. Het is echter onze mening dat dit een onderdeel is van je data-management. Dus als je er veel tijd aan kwijt bent....dan is het ook nodig.




52 weergaven0 opmerkingen
bottom of page