Data Vault generator voor Informatica Powercenter

De Data Vault modelleringswijze is een gestandaardiseerde manier om een data warehouse te modelleren. Het biedt een aantal voordelen over andere wijzen zoals stermodellering.

Een veel gehoorde klacht is echter dat het veel werk is om alle benodigde ETL te bouwen. Voor elk Data Vault object dient namelijk een aparte laadstroom gebouwd te worden.

Het voordeel van de Data Vault laadstromen is dat ze allemaal op dezelfde manier werken en dus gegenereerd kunnen worden.

Nu ken ik een aantal generatoren voor verschillende ETL systemen (Oracle, SQL server, Java) maar bij mijn weten was er geen generator voor Informatica Powercenter. Daarom heb ik zelf een generator gebouwd waarmee Powercenter mappings en workflows gegenereerd kunnen worden op basis van metadata die in de Powercenter repository opgeslagen is.

Hieronder beschrijf ik hoe de generator werkt en benoem ik de voor- en nadelen van deze oplossing.

Normale laadstrategie

Dit is de standaard manier om een Data Vault te laden.

In bovenstaande afbeelding staat een normale laadstrategie voor het laden van data in een Data Vault data warehouse.

Over het algemeen wordt een kopie gemaakt van de brontabellen in een staginglaag (ETL 1). Daarna wordt data gecombineerd en geladen in de Data Vault (ETL 2). In dit proces zijn de kopieer- en laadprocessen standaard maar omdat het laadproces met het combineerproces samengevoegd zijn, is het lastig te genereren.

Daarom splits ik deze twee processen en wordt het mogelijk om het laadproces ook te genereren.

Nieuwe laadstrategie

Dit is de manier waarop ik data in de Data Vault laad.

In bovenstaande strategie is een pré Data Vault laag toegevoegd. In deze laag is alle brondata gecombineerd zodat er geen business logica in de Data Vault mappingen meer nodig is.

Kenmerken van de pré Data Vault laag

Dit zijn enkele kenmerken van de pré Data Vault laag:

Kenmerken van de generator

Dit zijn enkele kenmerken van de generator:

Voor- en nadelen

Het grootste nadeel van deze oplossing is dat er een extra laag geïntroduceerd wordt. Extra tabellen verhoogt de beheerlast aan de database- en modelleringskant. Daar bovenop moeten er soms extra tabellen gemaakt worden omdat de generator die nodig heeft. Zonder de generator zouden er bijvoorbeeld twee hubs geladen kunnen worden uit één tabel. De generator heeft echter een aparte tabel per hub nodig.

Deze nadelen wegen echter niet op tegen de voordelen van de generator: