ETL komt vanuit datawarehousing en staat voor Extract, Transform, Load. ETL dekt het proces van hoe data wordt geladen van een bronsysteem naar een datawarehouse. Een datawarehouse moet regelmatig opnieuw geladen worden, zodat het zijn doel voor business analyse goed kan dienen. Om dit te doen moet de data van een of meerdere operationele systemen onttrokken en gekopieerd worden naar een datawarehouse. De uitdaging in een datawarehouse omgeving is het integreren, herschikken en het consolideren van grotere hoeveelheden van data over verschillende systemen, waarbij een nieuwe, uniforme informatiebasis voor business intelligence ter beschikking gesteld moet worden. De methodologie van ETL bestaat al vele jaren en zijn niet specifiek voor datawarehouse omgevingen.
Extractie van data
Het extractie proces dekt de extractie van data van het bronsysteem en maakt het toegankelijk voor verdere verwerking. Het hoofddoel van de extractie is het ophalen van al de benodigde data van het bronsysteem met zo weinig mogelijk middelen. De extractie moet op zo een manier ontwikkeld worden dat het geen negatief effect heeft op de prestaties, de reactietijd of enige vorm van vergrendeling op het bronsysteem.
Er zijn verschillende manieren om de extractie uit te voeren:
- Update notificatie: Als het bronsysteem in staat is om een notificatie te verstrekken als een record veranderd is en de verandering kan beschrijven, dan is dit de makkelijkste manier om de data te verkrijgen.
- Incrementele extractie: Sommige systemen zijn niet in staat om een notificatie te verstrekken als er een aanpassing is geweest, maar zijn wel in staat om te identificeren welke records er zijn aangepast en geven een extractie van zulke records. Gedurende de volgende ETL stappen moet het systeem de veranderingen identificeren en verspreiden. Let op dat bij dagelijkse extractie het mogelijk is dat er niet goed omgegaan wordt met verwijderde records.
- Volledige extractie: Sommige systemen zijn helemaal niet in staat om te identificeren welke data is veranderd. Dan is een volledige extractie de enige manier om de data uit het systeem te krijgen. Bij een volledige extractie is het van belang dat er een kopie gehouden wordt van de vorige extractie in hetzelfde formaat om zo de veranderingen te identificeren. Een volledige extractie kan wel weer goed omgaan met het verwijderen van data.
Bij het gebruik van incrementele of volledige extractie is de frequentie van de extractie enorm belangrijk. Helemaal voor volledige extractie, aangezien de volumes van data heel erg groot kunnen zijn.
Opschonen van de data
Het opschonen is een belangrijk onderdeel voor de transformatie stap en is het belangrijkste om de kwaliteit van de data in de datawarehouse te kunnen garanderen.
Het opschonen moet basisdata unificatie regels uitvoeren, zoals:
- Het moet identificaties uniek maken, bijvoorbeeld data over geslacht komt binnen als man/vrouw/onbekend, M/V/null of man/vrouw/niet beschikbaar en moet omgezet worden naar man/vrouw/onbekend.
- Converteert null waardes naar gestandaardiseerde waardes zoals onbekend of niet beschikbaar.
- Converteert telefoonnummers en postcodes naar een gestandaardiseerde vorm.
- Valideert adresvelden en converteerd deze naar de goede benaming.
- Valideert adresvelden tegen elkaar.
Transformeren van de data
De transformatie stap past een set van regels toe om de brondata te transformeren voor het beoogde doel. Dit bevat het converteren van alle data naar dezelfde dimensie, door gebruik te maken van dezelfde eenheden zodat ze laten samengevoegd kunnen worden. Voor de transformatie is het ook nodig om:
- Data van verschillende bronnen samen te voegen
- Het genereren van aggregaten
- Het genereren van surrogaat sleutels
- Te sorteren
- De nieuw berekende waardes afleiden
- Het toepassen van geavanceerde validatieregels
Laden van de data
Gedurende de laad stap moet er verzekerd worden dat het laden van de data correct is verlopen en met zo weinig mogelijk middelen is gedaan. Het doel van het laadproces is vaak een database. Om het laden zo efficiënt mogelijk te maken is het handig om alle mogelijke beperkingen en indexen uit te schakelen voor het laden en deze pas weer in te schakelen als het laden klaar is. De referentiële integriteit moet door de ETL tool worden gehandhaafd om zo de consistentie te kunnen waarborgen.