De kracht van BW/4HANA
Introductie
Ondanks dat transformaties via HANA script al lang een optie zijn in BW for HANA is het een ondergeschoven kindje in de BW wereld. Met BW/4HANA geeft SAP deze transformaties een dominantere rol in BW. Hopelijk leidt dit tot het volledig benutten van het potentieel dat HANA te bieden heeft. In deze blog zullen wij uitleggen wat HANA script is en doet in BW. Vervolgens zullen wij de verschillende transformatie opties bespreken en deze aan de hand van voorbeelden concreet maken. Afsluitend bespreken we wat praktijkvoorbeelden en de conclusie.
Wat is HANA Script?
HANA script is het SQL script dat gebruikt kan worden in de HANA database. Met behulp van een ABAP Managed Database Procedure (AMDP) kan een BW’er de transformatie logica terugduwen naar de HANA database. Met als gevolg veel snellere en simpelere data transformaties in BW.
Hoe werkt het?
Een klassieke ABAP transformatie laadt de data van de bron naar het werkgeheugen van de applicatieserver. Vervolgens wordt de ABAP logica uitgevoerd over deze data. Na de transformatie wordt de data teruggestuurd naar de database waar het wordt opgeslagen. Met andere woorden, de data wordt twee keer getransporteerd tussen de database en applicatie server. Dit wordt geïllustreerd aan de linkerkant van afbeelding 1 ‘Transformatie Verwerking’.
Aan de rechterkant van afbeelding 1 zien we de HANA transformatie. Een HANA transformatie wordt geregeld via een zogeheten ‘Calculation Scenario’, die zit ingebakken in een ‘Column View’.
Het Data Transfer Proces creëert een SQL SELECT statement gebaseerd op deze ‘Column View’. Waardoor de logica van de transformatie wordt uitgevoerd over de data van de bron. Hierdoor wordt de data direct van de bron naar het doel gestuurd in één stap. Technisch gezien wordt er een INSERT AS SELECT uitgevoerd over de ‘Column View’. Dankzij deze manier van werken wordt er dus geen data meer getransporteerd tussen de database en applicatieserver. Met een veel snellere transformatie tot gevolg.
Nu lijken al deze termen, ABAP Managed Database Procedure, Calculation Scenario’s, Column Views, INSERT AS SELECT et cetera misschien meer op zijn plaats bij een Database administrator dan bij een BW’er. Maar gelukkig maakt SAP het gebruik van HANA Script gemakkelijk en kun je al die termen met een gerust hart vergeten. Alles wordt namelijk voor je geregeld. Het enige wat je hoeft te doen is het schrijven van HANA script, BW/4HANA regelt de rest. Mooi toch! Maar hoe beginnen we er mee en…
…welke transformatie opties zijn er?
Simpel gezegd, alle opties die je gewend bent. Dus de Start, Regel, Eind en Expert routine zijn allemaal beschikbaar. Echter, om de kracht van HANA volledig te benutten kun je het beste gebruik maken van een Expert routine. Buiten deze opties is de ABAP transformatie ook nog steeds beschikbaar. Laten we daarom even kort de opties doorlopen. Beginnend bij snel, naar sneller, snelst en HANA.
Nu denk je wellicht, “Wacht even, bedoelen jullie niet van langzaam naar snel?” Waarop het antwoord is, nee. We zullen hieronder uitleggen waarom en om het nog interessanter te maken stellen wij dat, hoewel HANA het allersnelst is, de optie ‘snel’ ABAP is!
ABAP
Verassend niet waar? Een blog over de kracht van HANA en dan stellen wij dat de snelle optie ABAP is. Maar, dat is gewoon zo. Een ABAP transformatie in BW/4HANA maakt ook gebruik van HANA. Dus vergeleken met de ABAP transformatie op AnyDB is het ontzettend snel. Dit zullen we in het voorbeeld duidelijk maken.
Een voordeel van het gebruik van ABAP is dat het bekend is, er is veel documentatie over en de debugging tool is uitstekend. Daardoor vindt men het over het algemeen ook gemakkelijk te beheren. Nadelen zijn dat in BW/4HANA bij het gebruik van ABAP de STRICT MODE gebruikt moet worden. Onze ervaring is dat verreweg de meeste ABAP code in het ‘ouderwetse’ ABAP is geschreven. Dus je zult jouw ABAP code moeten converteren tijdens de migratie. Een ander nadeel is dat data naar de applicatieserver gehaald wordt voor de transformatie. Daarnaast blijft er gewerkt worden met de ABAP methodiek.
Maar wat is de ABAP methodiek? Met de ABAP methodiek bedoelen we het opsplitsen van de transformatie in een begin stadium, regel stadium en eind stadium zoals we dat al jaren doen. Het gevolg hiervan is dat de ABAP applicatie server de transformatie door deze drie stadia managet wat de transformatie vertraagd waardoor er niet optimaal gebruik gemaakt wordt van HANA.
Regel routine
De regel routine beschouwen wij als een gemakkelijke manier om te leren werken met HANA script. De transformatie ziet er grotendeels nog hetzelfde uit omdat de ABAP methodiek gebruikt blijft worden en het HANA script blijft beperkt tot een regel. Helaas is dat ook gelijk het grootste nadeel omdat door deze methodiek HANA dus niet volledig benut wordt. Ook is het niet mogelijk om alle SQL functies te gebruiken die binnen HANA beschikbaar zijn. Desondanks is de Regel routine in HANA script sneller dan ABAP, wat het de ‘sneller’ optie maakt.
Start/Eind routine
De Start en Eind routine hebben in ABAP een klassieke rol met een doel. Deze rol is met HANA script te negeren. Beide routines kunnen gebruikt worden met hetzelfde doel. Het maakt niet uit of dit in de start of in de eind routine plaatsvindt. Een voordeel van deze routines is dat hier alle SQL functies gebruikt kunnen worden. Een nadeel is dat ze minder onderhoudsvriendelijk zijn dan de regelroutines. Let wel op! Minder betekent in dit geval niet moeilijker maar dat het iets meer tijd kost. Een ander nadeel is dat er nog steeds gewerkt wordt met de ABAP methodiek. Deze routines zijn sneller dan de regelroutine, helemaal naar gelang het aantal regelroutines toeneemt. Dat maakt ze de ‘snelste’ optie. Maar wat is sneller dan snelst? Juist! HANA.
Expert routine
Door het gebruik van HANA script in de expert routine komen we voor het eerst in het domein van de HANA methodiek. Alles wordt op kolom basis geregeld in één fase. Alle SQL functies zijn beschikbaar en de mogelijkheden van HANA worden hiermee volledig benut. Net als bij de Start en Eind routine is het minder onderhoudsvriendelijk dan de ABAP en Regel routine. Maar, dit is het allersnelst.
In afbeelding 2 hebben we alles op een rijtje gezet.
Zover de theorie. Hoeveel sneller is de HANA methodiek dan? Laten we ons richten op het voorbeeld.
Voorbeeld
De data
Wij hebben via de site van de RDW de dataset van alle Gekentekende Voertuigen geüpload in ons BW/4HANA demo systeem. Deze data set bevat in totaal 14,1 miljoen rijen met 64 kolommen. Daarnaast hebben we de data set van Voertuigen Brandstof geüpload met 13,3 miljoen rijen en 19 kolommen. En tot slot hebben we de Geconstateerde Gebreken geüpload met 22,1 miljoen rijen en 7 kolommen. Al deze data is publieke en gratis beschikbaar.
De logica
Het doel is om deze drie datasets te combineren in een ADSO. Om deze blog een beetje overzichtelijk te houden zullen wij ons alleen focussen op de ABAP transformatie en de HANA script transformatie via een expert routine. Wij zullen een aantal velden van de Gekentekende voertuigen transporteren naar het doel terwijl wij daaraan een aantal velden toevoegen vanuit de andere twee datasets. Wat je gelijk zal opvallen is hoe simpel het HANA script is ten opzichte van ABAP.
ABAP
In afbeelding 3 zie je hoe de logica er in Strict Mode ABAP uit ziet.
HANA script
In afbeelding 4 zie je hoe dit er in HANA script uit ziet.
De tijden
Zoals gezegd focussen we ons in deze blog alleen op de ABAP routine en de HANA script transformatie via een expert routine. De tijden van de Regel, Sart en Eind routine vallen tussen de tijden van deze twee in.
Nulmeting
Om een idee te krijgen van hoe snel de transformaties zijn hebben we eerst een nulmeting gedaan. Deze nulmeting bevat geen logica en is een 1-op-1 transformatie van bron naar doel via HANA. In totaal zijn er zo’n 21 miljoen records verplaatst. Dit heeft in totaal 1 minuut en 50 seconden geduurd. Zie afbeelding 5 Nulmeting.
ABAP transformatie
In afbeelding 6 zien we de ABAP transformatie die er 11 minuten en 13 seconden over heeft gedaan om de data te transformeren en door te zetten naar het doel. In totaal gaat het dus om bijna 21 miljoen records. Dit is echt ontzettend snel vergeleken met wat we gewend zijn van oudere BW systemen. Daarom vinden wij dit de optie ‘snel’ in BW/4HANA.
HANA Script transformatie
Maar dan de HANA optie! In afbeelding 7 zie u dat dezelfde transformatie er slechts 1 minuut en 59 seconden over doet. De nulmeting was 1 minuut en 50 seconden. Dit betekent dat HANA er slechts 9 seconden over gedaan heeft om de volledige logica toe te passen over de data tijdens het transport! Dat is 63 keer zo snel dan de ABAP transformatie. Een gigantisch verschil! En sneller dan snelst.
Praktijkvoorbeelden
Sommige mensen denken wellicht op dit moment, “Clemens, Noud klinkt goed allemaal, maar wat maakt het uit? Zo’n BW transformatie is gepland en het maakt niet uit of het een uur duurt of vijf minuten!” Klinkt heel aannemelijk inderdaad. Maar toch zijn wij van mening dat het wel belangrijk is. En wel om de volgende redenen.
De steeds grotere vraag naar data
In BW zien we steeds meer data opslag en steeds meer vraag naar grotere hoeveelheden data. Door deze stijging zal de hoeveelheid data die door de transformatie heen gaat ook steeds meer toenemen. Met het gevolg dat de transformatie er langer over gaat doen. Een transformatie van een uur kan er twee uur over gaan doen of misschien zelfs langer. En hoewel dat op dit moment geen probleem hoeft te zijn kan het wel een probleem worden als dit binnen meerdere datamodellen gebeurt. Nu al zien wij bij klanten complexe schema’s van proces-ketens die alles in goede banen moeten leiden. Vaak is er maar beperkt ruimte in deze schema’s met het gevolg dat deze schema’s problemen gaan krijgen als transformaties er langer over gaan doen. Dus door HANA script te gebruiken en veel snellere transformaties te hebben voorkomt u dit potentiële probleem.
De roep om (near-)real time data
De business wordt steeds veeleisender en roept steeds vaker om real-time data. En hoewel hybride en virtuele modellen steeds beter en sneller worden ontkomen we er soms niet aan dat data toch getransformeerd opgeslagen moet worden. Door gebruik te maken van HANA Script kan men toch near-real time rapporteren. Bij een van onze klanten vereiste de Finance afdeling dat er complexe transformaties werden uitgevoerd over bepaalde data. Deze logica was met behulp van ABAP gemaakt en duurde doorgaans zo’n 55 minuten om uit te voeren. Tijdens de maandafsluiting hadden zij de mogelijkheid om de transformatie handmatig te starten zodat zij al hun correcties konden controleren uit ECC. Dat betekende dus dat zij iedere keer 55 minuten moesten wachten totdat zij verder konden met hun werk. Zonde van hun tijd! Wij hebben daar de transformatie vertaald naar HANA script. Het resultaat was dat de transformatie er nu nog 2,5 minuut over deed! Een wereld van verschil waar deze afdeling enorm mee geholpen was.
Conclusie
HANA script biedt jouw bedrijf ongekende mogelijkheden in snelheid van het transformeren van jouw data. Hoewel het even wennen zal zijn voor de BW gemeenschap is het gemakkelijk te leren. Het maakt de transformaties daarnaast een stuk simpeler te lezen en te begrijpen zoals in het voorbeeld hiervoor duidelijk te zien is. Gelet op het feit dat ieder BW systeem in de toekomst toch overgaat naar een BW/4HANA systeem en daarbij alle oude ABAP logica sowieso omgezet moet worden naar ABAP strict mode zijn wij van mening dat het de moeite waard is gelijk te kijken naar HANA script en je oude ABAP logica daarnaar toe om te zetten.
Hiervan zijn wij overtuigd, daarom zijn wij ook benieuwd naar jouw visie. In hoeverre heb je al nagedacht over HANA script in jouw BW architectuur? En in hoeverre ben je al bezig met een toekomstige migratie/update naar BW/4HANA? Wij vernemen het graag!
Heb je nog vragen over de mogelijkheden van HANA script in BW en/of hoe dit past binnen jouw architectuur? Of heb je andere vragen over BW/4HANA en wil je wellicht een live demo? Je mag altijd contact met Rob Huisman opnemen via 06 – 24 66 42 32 of per mail via info@interdobs.nl.