Extraction, Transformation & Loading (ETL)
Om data te onttrekken uit een operationele omgeving en deze op een informatieve wijze te hermodeleren in een fysisch gedelokaliseerde informatieomgeving, dient men een beroep te doen op speciale software: ETL-software.
ETL
Op een gegeven ogenblik ontstaat de behoefte om de centrale data te decentraliseren binnen een ODS of om deze onder te brengen in een data warehouse (zie artikel
Ad hoc desktop analysis ). Alvorens enige vorm van extractie het licht kan zien dient de decentralisatie zelf plaats te vinden. Hiervoor zal de onderneming een beroep doen op een zogenaamde
ETL-tool. ETL staat voor
Extraction, Transformation and Loading. Een ETL-proces bestaat dus in het extraheren van data vanaf een bronsysteem, de verrijking ervan met bepaalde logica en het opladen van de getransformeerde data in een nieuwe omgeving. Er zijn in feite nog twee processen die aan de definitie van ETL zouden kunnen toegevoegd worden, met name
Indexing – of indexeren - en
Analyzing – of analyseren. Aangezien de data zich al in de database bevindt op het ogenblik van het indexeren, wordt indexing meestal niet in de standaard definitie van ETL opgenomen. Ook het analyseren vindt plaats in een later stadium en wordt om dezelfde reden als een apart gegeven beschouwd. Deze vorm van analyseren heeft natuurlijk niets te maken met enige vorm van business analyse, maar is een strikt technisch proces dat enkel van toepassing is in een
cost-based DBMS omgeving.
Keuze
Bij de keuze van een ETL-tool is het van belang dat deze in staat is om de drie hoofdprocessen van het ETL-proces tot een goed einde te brengen. Het indexeren en analyseren is databasespecifiek en kan eventueel nadien gebeuren via zelfgeschreven scripts. Een eerste generatie van ETL-tools waren code generators, die aan de hand van zogenaamde metadata de nodige scripts genereerden die daarna via batchprocedures gestart werden. Vaak voorzagen dergelijke
verouderde tools in geen of weinig transformatie, waardoor de logica verlegd diende te worden naar het bronsysteem – bij extractie – of naar de data warehouse – bij rapportering. Een nieuwe generatie tools voorziet in de mogelijkheid om de meest complexe transformaties in het proces op te nemen met een minimum aan programmatie. Het volstaat om de logica te parametriseren, de effectieve afhandeling is volledig black box. Het black box principe vereenvoudigt dan misschien wel de definitie van de logica, men verliest er wel een zekere flexibiliteit door en men wordt ook in een grotere mate afhankelijk van de vendor.
Investering
ETL-tools zijn over het algemeen heel duur en de aankoop ervan wordt vaak voorafgegaan door lange evaluaties en vergelijkingen, vooral wanneer het kleinere data warehouse projecten betreft. Er zijn goedkopere oplossingen op de markt, vooral dan in de categorie der code generators, maar die vereisen meestal heel wat aanpassingen om binnen de ondernemingsstructuur opgenomen te kunnen worden. Voorbeelden van tools zijn Pervasive, Ascential DataStage, Ab Initio, Oracle Warehouse Builder en Informatica. Er zijn er echter nog veel meer op de markt en het is dan ook raadzaam om de nodige tijd te investeren in de voorstudie, en de tool te zoeken die het best past bij de eigen onderneming en het minst aanpassingen vraagt.
In-house ontwikkeling
De optie blijft natuurlijk open om alles binnen de eigen ICT-afdeling te programmeren, maar de kost van de extra werkkracht die hieruit voortvloeit, zal in de meeste gevallen hoger liggen dan die van om het even welke ETL-tool. De inspanning blijft niet beperkt tot de effectieve programmatie, maar wordt vaak voorafgegaan door heel wat voorstudie inzake het bestuderen van elk aspect van de ETL-flow. De beslissing om een tool te maken of te kopen – het beruchte make or buy principe - is volledig bedrijfsafhankelijk, maar berust toch op enkele basisaspecten. Eerst en vooral dient de complexiteit van de datatransformatie en de kwaliteit van de brondata in aanmerking genomen te worden. Die zullen de aard van de transformaties bepalen en dus meteen ook verduidelijken of een code generator al dan niet voldoende is. Een ander belangrijk aspect is het datavolume dat de ETL-flow zal passeren. Sommige software is gewoonweg te licht om de zogenaamde
bulk-loads aan te kunnen. Een speurtocht legt zich op.