Geautomatiseerd en modelgedreven datawarehousing met SAP PowerDesigner

Als ontwikkelaar kom je regelmatig in aanraking met datamodellen. Denk daarbij aan fysieke datamodellen van een database maar ook logische datamodellen die ergens worden vastgelegd, vaak bedoeld om te communiceren met de business of voor documentatie doeleinden. Dat laatste wordt door ontwikkelaars vaak als overhead gezien. Het fysieke model is toch voldoende zou je zeggen. Waarom tijd steken in het bijhouden van een logisch model?

Diverse data modeling tools

Voor het bijhouden van modellen zijn er allerlei tools beschikbaar, zoals Erwin Data Modeler, ER/Studio, Enterprise Architect van Sparx, SAP PowerDesigner en nog veel meer. Deze tools worden veelal ingezet om de modellen vast te leggen en een DDL-script van te genereren om de database mee op te bouwen. Wat regelmatig over het hoofd gezien wordt is het feit dat de modelleertools zelf ook uitgebreid kunnen worden met extra functionaliteit. Je kan er op deze manier voor zorgen dat er veel taken geautomatiseerd kunnen worden.

PowerDesigner als ontwikkelomgeving

Een product als PowerDesigner zou je ook kunnen aanduiden als een ontwikkelomgeving waarmee je kan modelleren. Als je het product zo gaat bekijken, gaat er een wereld aan mogelijkheden voor je open. Je kan namelijk zo’n beetje elke taak die je in PowerDesigner uitvoert verbeteren met behulp van VBScript.

Presentatie over PowerDesigner bij BI-United

Onlangs gaf Rob Vonkeen presentatie over de mogelijkheden van PowerDesigner. Rob heeft bij een bank in Nederland veel weten te automatiseren en standaardiseren rondom het centrale datawarehouse door PowerDesigner uit te breiden met eigen programmatuur. Ze gebruikten al PowerDesigner maar enkel met de standaard mogelijkheden. Door PowerDesigner uit te breiden met extra functionaliteit, zijn er ineens veel meer mogelijkheden met het logische model. Je mag daarbij denken aan het automatiseren van controles op het datamodel, het aanmaken van nieuwe objecten in het model en ook de output genereren voor de fysieke implementatie van de database en de ETL.

Kun je macro’s schrijven in Excel? Dan kan je dit ook in PowerDesigner

De kennis die nodig is om dit voor elkaar te krijgen is waarschijnlijk beter beschikbaar dan je in eerste instantie zou denken. Het automatiseren in PowerDesigner werkt met behulp van VBScript. Mocht je dus veel ervaring hebben met automatiseren van taken in Microsoft Office (VBA schrijven in Excel bijvoorbeeld) dan is de kans groot dat je ook ver gaat komen in PowerDesigner. Houdt rekening met een behoorlijke leercurve. Helaas is er weinig online hulp beschikbaar rondom het ontwikkelen voor PowerDesigner en is debuggen lastig. Begin dus met iets makkelijks als een zoek en vervang functie. Dat zijn betrekkelijk weinig regels code en kan een mooi begin zijn.

DataVault

Rob heeft een aantal interessante functies laten zien, specifiek voor DataVault. Zo kan hij met behulp van een aantal extra contextmenu’s in PowerDesigner eenvoudig een DataVault opzetten. Daarbij wordt met een paar klikken een hub, satelliet en link gemaakt met alle bijbehorende velden en relaties in het model. Vervolgens worden de controles gestart en als deze verder geen aanleiding geven tot verandering, kan de DDL en ETL gegenereerd worden. Daarbij komen we op nog een belangrijk voordeel van redeneren vanuit het logische model. Je maakt jezelf los van de fysieke implementatie. Dus je bent veel vrijer in het kiezen van de onderliggende techniek (database server, ETL-product et cetera.). Mocht je namelijk willen overstappen, dan ligt de kennis vast in het logische datamodel en je past enkel de generator nog aan.

Verandering in het BI werk

Al lange tijd ben ik groot voorstander en ook bezig met het genereren van software op basis van logische datamodellen. De reacties hierop zijn verschillend en is afhankelijk van de rol die men heeft in een BI-project. Zo ook tijdens deze presentatie de vraag of dit het werk van de ontwikkelaar gaat vervangen of significant gaat verminderen. Persoonlijk denk ik dat de vraag wat meer gaat verschuiven naar mensen die kunnen modelleren en die in staat zijn om producten als PowerDesigner uit te breiden (2 verschillende rollen wat mij betreft). De hoeveelheid en de complexiteit van onze dataomgeving zie ik alleen maar toenemen en we moeten dus wel automatiseren. Elke oplevering zorgt enkel voor nieuwe vragen vanuit de business. Dus ja rollen gaan veranderen en het lijkt me goed om na te denken over je positionering t.o.v. van een modelgedreven aanpak. Denk daarbij ook eens aan de rol van generator ontwikkelaar of juist informatieanalist.

Conclusie

Als je het logische datamodel tot zijn recht wilt laten komen bij de fysieke implementatie, dan zijn er met PowerDesigner mogelijkheden om dit te doen. Naast PowerDesigner bieden andere tools deze mogelijkheid vaak ook. Wil je het maximale eruit halen, dan is het uitbreiden van de modelleertool een goed idee. Kijk eens naar de mogelijkheden van je bestaande modelleertool. Zorg ervoor dat het logische datamodel niet langer alleen voor documentatie gebruikt wordt. Als je PowerDesigner durft te zien als een ontwikkelomgeving waarbij als voorbeeld applicatie een modelleertool is meegeleverd, heb je een belangrijke stap gemaakt in het denkproces om de voordelen te gaan gebruiken. Het uitbreiden van de modelleertool biedt een aantal voordelen zoals eenvoudiger ontwikkelen, kortere doorlooptijd en sneller leveren, verhogen van de kwaliteit van de software en het verbeteren van de communicatie tussen ICT en de business.