Moderne datawarehouse houdt rekening met veranderingen en kan vele soorten analyses aan

Oracle, Big Data en Datawarehousing
27 jun 2014 - Marti Koppelmans

Van oudsher heeft het datawarehouse duidelijke functies. Naast opslag van belangrijke gegevens afkomstig van bedrijfseigen databronnen zijn (analytische) bewerkingen van belang, met als doel afdelingen te ondersteunen, te voldoen aan wettelijke eisen met betrekking tot het leveren van overzichten en ook marketingacties te ondersteunen. In enkele gevallen wordt het datawarehouse ook gebruikt voor opslag en analyse van sensor-data.

Van oudsher heeft het datawarehouse duidelijke functies. Naast opslag van belangrijke gegevens afkomstig van bedrijfseigen databronnen zijn (analytische) bewerkingen van belang, met als doel afdelingen te ondersteunen, te voldoen aan wettelijke eisen met betrekking tot het leveren van overzichten en ook marketingacties te ondersteunen. In enkele gevallen wordt het datawarehouse ook gebruikt voor opslag en analyse van sensor-data. 

 
De wereld is veranderd. We werken anders, we denken anders. We bestellen bijvoorbeeld steeds meer via het web, communiceren vooral via sociale media en doen reserveringen via speciale app’s. Zo wordt er veel meer data geproduceerd. Dit betreft dan met name ongestructureerde informatie en is dan afkomstig uit sociale media, webapplicaties en sensor-data, tegenwoordig samengevat onder de noemer ‘Big Data’. Deze gegevens kun je nu ook weer gaan betrekken bij je analyses.

Bedrijven die daar rekening mee houden beschikken over betere informatie, krijgen meer inzicht, kunnen beter beslissen, beter functioneren en hebben commercieel meer succes.

 
.Boeing
Afbeelding 1: Een vliegtuig van Boeing in productie Nu nog op de grond. Tijdens testvluchten worden megahoeveelheden aan gegevens verzameld die uiteindelijk ook nog moeten worden geanalyseerd. Het gaat dan over 20 Terabyte per uur en in totaal 90 Petabyte aan opslag aan het einde van de testperiode.

 

Soms kunnen ze niet anders zoals bij het testen van een vliegtuig, waarbij het doel is betere producten te leveren. In andere gevallen moet men verder doordenken om het nut ervan in te zien. Uiteindelijk betreft ‘Big Data’ mijns inziens meer het ‘ Big Denken met Data’.

 

Big Data en de business case

Uiteindelijk staat het datawarehouse ten dienste van Business Intelligence en die weer ten dienste van de bedrijfsvoering. Je gaat niet zomaar nieuwe datastromen betrekken bij je datawarehouse. Zeker niet als je je realiseert dat er vaak nog een aantal bewerkingen nodig zijn om de relevante gegevens uit de datastromen te onttrekken via een speciaal platform.

Voor het bepalen en implementeren van die speciale Big Data-datastroom zijn drie aspecten van belang:

1) het bepalen van de business case

2) het maken van een keuze uit de verschillende datastromen

3) het bepalen van de opzet van de technische infrastructuur

 

De business case zal heel verschillend zijn en varieert van ‘overleven ‘ in de bestaande markt (eigenlijke aspect: hoe kan ik me aanpassen aan de veranderingen in mijn brache), via uitbreiding van diensten en een betere naamsbekendheid, tot sneller en beter gebruik maken van de eigen testresultaten om producten te verbeteren en/of sneller op de markt te brengen. Afhankelijk hiervan zullen een of meerdere datastromen worden gebruikt. Uiteindelijk zal moeten worden nagedacht over de technische infrastructuur die flexibel bronnen moet kunnen accepteren.

N.B. De rol/taken/invloed van een data scientist: van meerwaarde uit de datastroom komen tot invulling van de business case.

 

De algemene insteek van Oracle

Informatie uit de sociale media, het internet en sensor-data opnemen en verwerken met als doel de uiteindelijke informatievoorziening van het bedrijf uit te breiden. Bedrijven die dat doen hebben een betere overlevingskans doordat zij op basis van meer betrouwbare gegevens beter geinformeerd zijn en daardoor meer gerichte beslissingen kunnen nemen. Zij kunnen ook beter inspelen op veranderingen in de markt.

Oracle heeft hiervoor een technische infrastructuur opgezet die bestaat uit een aantal hardware- en software-componenten. Zie afbeelding 2. Hierna zal met name worden ingegaan op de aanwezige softwarecomponenten binnen de infrastructuur.

 

 

Afbeelding 2. Big Data en Datawarehousing: De technische infrastructuur gebaseerd op Oracle componenten.

 

De technische infrastructuur van Oracle om het ‘nieuwe type’ Datawarehouse te vullen

Het rechterdeel van afbeelding 2 vertegenwoordigt de basissituatie met de vergaarde gegevens in de verschillende componenten van het datawarehouse. Dit wordt ondersteund met eigen laadprocessen (ETL) en uitgerust met gevarieerde, diepgaande analyses. Het linkerdeel vertegenwoordigt het datareservoir waarin vooral gegevens uit de nieuwe datapool worden opgeslagen. Ook hier zijn laadprogramma’s en –tools betrokken evenals speciale ‘discovery’ - en statistische tools. Het datareservoir is een omgeving gebaseerd op het Hadoop Filesystem (HDFS) en de specifieke MapReduce-processen, die hier worden ingevuld door de Claudera distributie.

 

Een korte uitleg over massive parallel processing en de Hadoop distributie. Wat er in feite aan de kant van het datareservoir moet gebeuren is gegevens samenbrengen, filteren, zo nodig (tijdelijk) opslaan en doorvoeren naar het datawarehouse voor verdere analyse. In de aanloopfase heb je nog te maken met een zogenoemde ‘Discovery’ om te bepalen of de data stroom wel waardevol genoeg is voor gebruik in het datareservoir en/of het datawarehouse.

Van belang voor het doorvoeren van gegevens naar het datawarehouse zijn:

  • De connectoren voor overdracht van gegevens van de Hadoop omgeving naar Database 12c
  • ETL processing uitgevoerd op het Hadoop platform

Achtereenvolgens gaan we hier in op de verschillende componenten.

  • Oracle Loader for Hadoop

    Via deze tool kun je gegevens vanuit het Hadoop platform – via een eventuele MapReduce- bewerking in een Oracle database tabel plaatsen. Dit kan on-line of off-line plaatsvinden.

  • Oracle SQL connector for Hadoop

    Via deze tool kun je een zgn. ‘external table’-definitie vanuit het Hadoop platform genereren waarbij aangegeven wordt waar de file op het Hadoop platform te vinden is en hoe die als tabel te benaderen is via SQL. Op deze manier kun je via SQL opdrachten - gegevens die nog op HDFS staan - vanuit de Oracle database opvragen.

  • Oracle Xquery tool for Hadoop

    Deze utility betreft eigenlijk een conversie-tool en bevat parsers en diverse formatteringsmogelijkheden. Het kan de verschillende datatypen omzetten naar andere, bijvoorbeeld XML naar CSV of zelfs naar een aantal speciale formaten voor in de NoSQL database. Uiteindelijk kunnen gegevens via de Oracle loader for Hadoop of via de SQL connector for Hadoop vanuit de Oracle database benaderd worden. Zie afbeelding 3.

     

Afbeelding 3. Een overzicht van de transformatie-mogelijkheden van het Xquery tool for Hadoop.

 

  • ETL processing op het Hadoop-platform

    Oracle data integrator (ODI) is het ETL-platform van Oracle en is daarom ook aangepast voor gebruik op een Hadoop-omgeving. Zo genereert ODI bijvoorbeeld HiveQL en kan het ook de Oracle connectoren voor Hadoop gebruiken.

     

    Als de gegevens dan uiteindelijk in het datawarehouse zitten zullen deze bij diverse analyses worden betrokken. Maar het beheer van de opgeslagen gegevens is en blijft een belangrijk aspect. Er zijn de afgelopen jaren steeds meer mogelijkheden bijgekomen om een en ander slim te beheren. En ook zijn er steeds meer mogelijkheden om de opgeslagen gegevens sneller en inteligenter op te halen.

     

 

Afbeelding 4: Algemeen overzicht van de in-database analyse-mogelijkheden in Database 12c.

 

Analysemogelijkheden in Oracle Database 12c

Analyses zijn belangrijk voor het bepalen van waarde van de data aan de hand van zaken als volledigheid, spreiding, relaties en correlaties met andere gegevens. Daarnaast is het vaak nodig gegevens te bekijken aan de hand van patronen, groepen en extremen. De analysemogelijkheden van Database 12c zijn uitgebreid en hangen af van de gekozen technologie en datatypen. Het overzicht daarvan is in afbeelding 4 aangegeven.

We zullen hier de volgende analysemogelijkheden bespreken:

  • Patroon herkenning, voor speciale en snelle analyses
  • Temporal feature,voor het ‘teruggaan in de tijd’
  • Oracle en Open source R, voor statistiek en DM-functionaliteit
  • Oracle Data Mining, voor data- en tekst-mining
  • Oracle OLAP als kubustechnologie met een aantal extra mogelijkheden
  • Oracle Spatial & Graph, o.a. voor geografische toepassingen en semantische (afgeleide) relaties.

N.B. Oracle mediaserver ondersteunt het opslaan en opvragen van afbeeldingen (o.a. jpg, DICOM) en video opnamen (zoals mp4) en de daarbij behorende metadata. MapReduce is een bewerkings-mogelijkheid in Database 12c die binnenkort nog wordt gerealiseerd. Deze feature kan bijvoorbeeld ook worden gebruikt om informatie uit de database over te brengen naar een NoSQL-database op een specifiek cluster.

 
  • Patroonherkenning 12c

    Het herkennen van patronen wordt een steeds belangrijker aspect bij analyses. Binnen de Oracle Database 12c is het nu mogelijk om door gebruik te maken van een aanvullende SQL-constructie allerlei patronen te herkennen. Via de ‘match_recognise’ clause kan men zelf de patronen definiëren en loslaten op een of meerdere tabellen. Zie afbeelding 5.

     

 

Afbeelding 5: Het principe van patroonherkenning, gerealiseerd via een SQL-clause die een zeer flexibele patroonherkenning mogelijk maakt. Zie voor voorbeelden: http://docs.oracle.com/cd/E12839_01/doc.1111/e12048/pattern_recog.htm

 

  • Temporal feature (voor het ‘teruggaan in de tijd’ op niveau van tabellen)

     

  • Oracle Enterprise (statistiek en DM-functionaliteit)

R is een open source-pakket om statistiek- en datamining-functies te gebruiken. Daar bij is ook een keur aan (visuele) output-opties te gebruiken. Op dit moment is het ook mogelijk om een Oracle Database (11 of 12c) te gebruiken met daarin de R-engine. De te gebruiken dataopslag ligt daarbij vast in de vorm van (al dan niet gepartitioneerde) tabellen. Op deze manier kunnen al de resources van de databaseserver(s) worden aangewend om een zo groot mogelijke performance na te streven, bijvoorbeeld via parallel processing. Daarnaast is het ook mogelijk om R te gebruiken waarbij data in de Hadoop-omgeving wordt benaderd via de R-connector for Hadoop. De te analyseren gegevens staan dan op HDFS, bijvoorbeeld in de vorm van een CSV-file. Bij de analyses wordt daarbij dan optimaal gebruik gemaakt van het Hadoop-cluster. Zie afbeelding 6.

 

Afbeelding 6: Mogelijkheden van R om Oracle tabellen te gebruiken en HDFS-files op een Hadoop-cluster te benaderen. Hierbij kan natuurlijk optimaal gebruik worden gemaakt van processoren en geheugen door parallellisatie van processen binnen de Oracle database server enerzijds of van het Hadoop-cluster anderzijds. Ook behoort overdracht van informatie van het Hadoop-cluster naar de database via R tot de mogelijkheden.

 

  • Oracle DataMining 12c (data- en text mining)

    Oracle DataMining is als kern-optie al 10 jaar in de database ingebouwd. Je kunt daarmee diverse analyses uitvoeren, zoals het doen van voorspellingen, opzoeken van bijzondere afwijkingen in de dataset, kijken naar de waarschijnlijkheid dat iemand ook nog een ander product koopt etc. Als user interface wordt nu SQLDeveloper 4 gebruikt. Dit betreft een grafische tool waarin eigen projecten (workflows) kunnen worden opgezet. Je kunt de invulling op een tradionele manier gebruiken: eerst profilering en testen opzetten en later het daadwerkelijk gebruik implementeren. Datamining-procedures zijn uiteindelijk ook in de query (WHERE-clause) te gebruiken en worden op een Exadata-platform dan al op het niveau van de intelligente storage afgehandeld.

    Vanuit deze SQLDeveloper/DataMining -omgeving kun je ook R-procedures in de database aansturen. Vernieuwingen betreffen o.a. uitbreiding van bestaande DataMining-modellen. En uiteraard wordt naast Text-Mining ook Mining op gegevens in een ster-model ondersteund.

     

  • Oracle OLAP 12c

    OLAP 12c maakt het mogelijk dat gegevens en bewerkingen al klaarstaan terwijl de vraag nog moet worden geformuleerd. Het betreft een speciale kubus-technologie waarbij de gegevens over meerdere dimensies worden vastgelegd. Daarbij kunnen totalen en subtotalen naast extra calculaties in de kubus worden opgeslagen. De kubus kan zich gedragen als een grote Materialized View zodat via SQL gegevens snel kunnen worden opgenomen in de rapportages. Naast snelle joins met detailtabellen kunnen bij versie 12c nu ook incrementele updates sneller plaatsvinden.

    Daarnaast kunnen speciale modellen worden gedefinieerd (bijvoorbeeld RAROC bij banken) en kunnen ook extrapolaties en forecasting op de gegevens worden toegepast.

     

  • Oracle Spatial & Graph 12c (voor uiteenlopende toepassingen)

    Dit betreft een overkoepelende naam voor meerdere, verschillende (ook 3D-) toepassingen op geografisch en infrastructureel gebied. Daarnaast zijn ook semantische relaties en onthologische verzamelingen vast te leggen in de relationele Database 12c. Alle relevante (W3C-) standaarden worden hierbij ondersteund.

  1. Oracle Spatial & Graph: voor Geometry data typen. Definities van 2D- en 3D- geografische objecten kunnen in de database worden vastgelegd en via een gebalanceerd index-systeem snel worden opgehaald. Daarnaast kunnen speciale analyses op deze objecten worden uitgevoerd waarbij ook algemene informatie uit het datawarehouse wordt meegenomen. Zo kunnen vragen worden beantwoord als 'Hoeveel klanten wonen binnen een straal van 10 Km van de betreffende vestiging', 'Hoe groot is de omzet van een bepaald product binnen de stad Utrecht '. Bij Database 12c is de query-performance sterk verbeterd!

     

  2. Oracle Spatial & Graph: voor Network Graphobjecten. Dit betreft een grafisch model voor fysieke en logische netwerken. Zo kunnen specifieke objecten als buizen en wegen worden gedefinieerd (via links en nodes). Uiteindelijk kunnen hier dan snelle netwerk-analyses op worden toegepast: 'Wat is de lengte van een bepaald traject', 'Welke is de kortste weg die een persoon moet afleggen als hij/zij bepaalde adressen moet bezoeken', 'Wat is het dichtstbijzijnde knooppunt', 'Welk traject is het snelste alternatief'.

     

  3. Oracle Spatial & Graph: voor semantische objecten/tripletten. Hiermee kunnen semantische definities en relaties tussen objecten gecomprimeerd worden vastgelegd. Voorbeelden hiervan zijn 'patiënt x heeft borstkanker’, ‘patiënt X gebruikt medicijn Y', ‘medicijn Y heeft bijwerking S’. ‘Borstkanker heeft gevolg Z’ Hierdoor is snel specifieke informatie op te halen en te combineren met verschillende verzamelingen gerelateerde objecten. Door de zgn. onthologiën over patiënten, onderzoeken, ziektegevallen, medische dossiers en farmacologische informatie te combineren kunnen vragen worden gesteld als: 'Wat zijn bij deze patient de bijwerkingen van de genoemde medicijnen', 'Hoeveel kans heeft deze vrouw met kanker om 10 jaar te overleven bij deze specifieke behandeling'.

     

    N.B. Als voorbeeld van het kadaster: Een verblijfsobject(pand) kan worden gekoppeld aan de ligging maar ook aan een wet, bijvoorbeeld voor Gegevens in de Basisregistraties Adressen en Gebouwen.

     

De nieuwe mogelijkheden in Database 12c

Database 12c heeft een aantal belangrijke technische mogelijkheden om datawarehousing te ondersteunen. Te denken valt aan een aantal praktische aspecten als:

  • Een hoge Query-performance in stand houden

     

  • Laadgemak bij de uitvoering van ETL-processen om daarbij het laad-window zo kort mogelijk te houden

     

  • Automatisch (Data)beheer met een verdeling van de gegevens over diverse opslagsystemen

     

  • 12c In-memory optie

    Bij deze optie wordt een tabel (of gedeelte daarvan) in het geheugen geplaatst en wel op 2 manieren:

  1. rijen zijn horizontaal geordend en klaar voor gebruik voor OLTP-acties

     

  2. gegevens zijn kolomsgewijs geordend voor het snel afleveren van analytische rapportages (zie afbeelding 7). De OLTP acties zijn sneller omdat er in het algemeen geen indexen hoeven te worden bijgewerkt. De Analyse-queries zijn tot 100 keer sneller afhankelijk van beschikbare CPU’s. Enkele nieuwe processoren maken gebruik van zogeheten vector-instructies die het mogelijk maken diverse kolomwaarden in 1 cyclus te bewerken/berekenen. Joins tussen 2 tabellen in memory kunnen nu ook zo’n 10 keer sneller worden uitgevoerd.

     

Afbeelding 7:In-memory option: tabel in zowel Row- als Column-format opgeslagen.

 

  • De intelligente optimizer

    De query optimizer wordt steeds intelligenter. Deze kan in de laatste fasen van het uitvoeren van een query nog de actuele statistieken opvragen en afhankelijk daarvan het (sub)plan veranderen. Er wordt zoveel mogelijk een optimaal uitvoeringsplan gegarandeerd!
    Er is een ingebouwde ‘plan manager’ die bijhoudt welk plan achtereenvolgens is uitgevoerd en wat dat voor de performance betekende. Als de performance achter blijft ten aanzien van de eerdere ervaringen kan dus actuele statistiek worden opgevraagd. Dat opvragen van de statistieken kan tijdens de compileerfase of zelfs bij de uitvoering van een query worden doorgevoerd. Dat laatste kost overigens natuurlijk wel enige resources. Een en ander is afhankelijk van de snelheid waarmee rijen worden opgehaald. Er zijn namelijk Referentie-waarden.
    Als op basis van nieuwe statistieken blijkt dat het nodig is voor een betere uitvoering, wordt het plan bijgesteld. Dat geldt nu nog voor join methodes (zoals nested loops en hash joins) en paralllel distributie methodes (als hash, broadcast en none).

     

  • Uitbreiding op Partitioning

    De ‘verdeel en heers’-optie werkt eenvoudiger en biedt steeds meer mogelijkheden.

    Aan de uitgebreide lijst van partitioneringsmogelijkheden is nu weer een aantal uitbreidingen toegevoegd:

    • On-line Partition Move - zo kun je nu online een partitie verplaatsen terwijl - ook bij DML -de indexen automatisch worden bijgewerkt. Op die manier kan beheer plaatsvinden zonder de gebruikers echt te storen.

       

    • Partition Maintenance on Multi Partitions - men kan nu diverse partities tegelijk verplaatsen of samenvoegen (ook voor SPLIT- , ADD- en TRUNC-opdrachten). Dit gebeurt ook volledig parallel waarbij de indexen worden bijgewerkt. Deze mogelijkheid is belangrijk omdat DWH-tabellen steeds omvangrijker kunnen worden.

       

    • Interval-reference partitioning - een nieuwe, veel gevraagde variant met een master/detail/detail-opzet.

       

    • Asynchronous global index maintenance for DROP and TRUNCATE - Dit zijn dan acties die op het niveau van de repository worden doorgevoerd.

       

       

  • ‘Automatic Data Optimization’

     

    Wat is er mooier voor een beheerder dan dat de database zelf op basis van het gebruik van rijen, partities e.d. het al of niet verschuiven van gegevens voor zijn rekening neemt.

    Dit kan nu met Database 12c worden ingevoerd. Het is mogelijk om een zogeheten ‘Heat Map’ te laten aanmaken in de database, zodat duidelijk wordt welke blokken, rijen en partities veel worden benaderd en veranderd. Op basis hiervan kan men dan een eigen data policy doorvoeren waarbij veel gebruikte en veranderde gegevens op snelle schijven beschikbaar blijven en andere, minder benaderde en veranderde gegevens geleidelijk worden overgebracht naar goedkopere en minder snelle storage. Hierbij wordt gebruik gemaakt van partitioning en diverse compressiemethoden voor verschillende opslagmedia.

     

    Kortom, er zijn mogelijkheden genoeg, je moet alleen nog keuzes maken. De technische infrastructuur is al klaar!

     

    Marti Koppelmans is Senior Sales Consultant Database Infrastructure & Data Warehousing bij Oracle.