BIWA SIG Bijeenkomst ODI op Exadata Robbert Naastepad e-mail: robbert.naastepad@mn.nl LinkedIn: https://www.linkedin.com/in/robnaastepad
2 Agenda Even voorstellen Datawarehouse architectuur Oracle Data Integrator op Exadata en Exalogic Problematiek huidige datawarehouse architectuur en concept oplossing op exadata
3 Wie is Robbert Persoonlijk 49 jaar, getrouwd met Caroll, dochtertje Angelina van 10 jaar. Geboren en getogen in Den Haag. Hobbies: (Big) Data, Formule 1, lezen. Huidige functie: Data / BI Architect MN Oracle facts: 1994 Oracle RDBMS 6.1.7 1998 Oracle Graduate Program 1999 Beta tests Oracle Warehouse Builder 2008 Technisch Product Architect Oracle Health Insurance BI 2011 Oracle Data Integrator 11 2013 Referentie architectuur BI MN (ODI 12c / Exa X4-2)
4 Wat is MN MN werkt aan de financiële toekomstvoorziening van bijna 2 miljoen mensen. Dat doen we door de uitvoering van pensioen- en, sociale regelingen en verzekeringen voor onze opdrachtgevers. Naast het uitvoeren van deze taken adviseren wij onze opdrachtgevers in pensioenen en andere vormen van financiële zekerheid. Hierbij streven wij zowel naar financieel als maatschappelijk rendement en langetermijnwaardecreatie voor onze stakeholders. Efficiënt, met aandacht voor mens en omgeving, beheren wij ruim 113 miljard euro.
5 Agenda Even voorstellen Datawarehouse architectuur Oracle Data Integrator op Exadata en Exalogic Problematiek huidige datawarehouse architectuur en concept oplossing op exadata
Architectuur BIWA Sig Bijeenkomst BI 3.0 6
7 Architectuur BI 3.0 datawarehouse Data Integratie laag EPM Bronnen Alerts, Dashboards Enterprise datawarehouse Prestaging (bron push) PRE Staging (bron pull) STG D A T A Q U A L I T Y Proces administratie ADM EDW S U P E R N O V A Datamart DM Analytics cubes Reports Informatie/ Dataservices Linstedt / Hultgren Datavault Rick v.d. Lans SuperNova Kimball Sterschema
8 Bronnen - Oracle databases (10g/11g/12c) - Pull from datawarehouse (Database Link) - Push into datawarehouse (Oracle GoldenGate) - JMS (Java Message Service) - Pull from datawarehouse (Publish/Subscribe model) - Push into datawarehouse (Point-to-Point model) - Webservices - Pull from datawarehouse (SOAP/REST) - CSV files - Pull from datawarehouse (external tables) - SQL Server databases (2005/2008/2012-2014) - Pull from datawarehouse (Database Link) - Push into datawarehouse (Oracle GoldenGate) - Hadoop file system of hive (toekomst) - Pull from datawarehouse (Oracle Loader for Hadoop) In geval van pull from datawarehouse 1 MN specifieke ODI loading knowledge module per type bron.
9 De procesadministratie (ADM) In de ADM laag wordt alles vastgelegd over de laadruns en de data die verladen wordt. Hiervoor wordt iedere laadrun gekoppeld aan een proces_id. Op basis van dit proces_id kan data door de hele ETL straat worden gevolgd. Geregistreerd wordt o.a.: - Wanneer data geladen wordt (tag) - Wie (userid) of wat (schedulename) data laadt - Hoeveel rijen er geladen worden - aantal gelezen in bron - aantal inserts - met welke datakwaliteit - Welke fouten of warnings treden er op - wanneer - in welk deel van de laadprogrammatuur - hoeveel - welke tabellen Verder worden in deze laag de stamtabellen onderhouden. (o.a. domeinen)
10 Pre-Staging Doel: Opvangen van data geleverd (push) door bronnen. - Datastroom uit de bron is continue en wordt ongewijzigd opgevangen. - Maakt het mogelijk batchgewijze laadruns te blijven gebruiken. - (Nog) geen mogelijkheid (near) real-time data beschikbaar te stellen in Enterprise Datawarehouse. - Als data aan de Staging area geleverd zijn worden deze verwijderd. Geen ODI knowledge module in gebruik, immers push vanuit de bron.
11 Staging Doel: Opvangen van data geleverd (pull) door bronnen - Bronnen (ook Pre-Staging) worden ongewijzigd opgevangen - Alle data beschikbaar op het Oracle platform - Alle data getagt met Bron, Proces en laaddatum (auditeerbaar, traceerbaar, historie) - Programmatuur zeer eenvoudig - Truncate/Insert ODI knowledge module IKM MN BI30 SQL Control Append
12 Dataquality Doel: Controle op kwaliteit van geleverde data - Geen laag waar data gepersisteerd wordt - Data wordt met een kwaliteitsstempel getagt, maar niet tegengehouden Nog niet geïmplementeerd. Zelfbouw? Tooling?
13 Enterprise Datawarehouse Doel: Het tijdsafhankelijk, onderwerpgeoriënteerd en geïntegreerd opslaan van brongegevens. - Alle data worden ongewijzigd opgeslagen (geen business rules, geen filtering, geen cleansing) - Alle data getagt met Bron, Proces, laaddatum (auditeerbaar, traceerbaar, historie) en kwaliteitsstempel - Deltabepaling - Alleen inserts - Datavault model (Dan Linstedt) ODI knowledge module IKM BI30 Oracle Data Vault
14 Supernova Doel: Vergemakkelijken tijdsafhankelijk ophalen van data uit de Enterprise Datawarehouse laag. - (Materialized) Views - Vergemakkelijken tijdstroken problematiek - Supernova concept van Rick van der Lans functioneel en technisch verder uitgewerkt door MN Op basis van de metadata van het EDW in de ODI repository worden views gegenereerd met Groovy scripts en de ODI API.
15 Datamart Doel: Versnellen bevragingen van data met een bepaald onderwerp - Transformaties (business rules, filtering, datacleansing) - Alle data getagt met Bron, Proces, laaddatum (auditeerbaar, traceerbaar, historie), kwaliteitsindicatie - Alleen (truncate) insert -Enige laag voor het beschikbaarstellen van data in het datawarehouse aan de buitenwereld - Stermodel (Ralph Kimball) ODI knowledge module IKM MN BI30 SQL Control Append
16 Agenda Even voorstellen Datawarehouse architectuur Oracle Data Integrator op Exadata en Exalogic Problematiek huidige datawarehouse architectuur en concept oplossing op exadata
17 Oracle Data Integrator 12c onderdelen.
18 Oracle Data Integrator op Exa
19 Agenda Even voorstellen Datawarehouse architectuur Oracle Data Integrator op Exadata en Exalogic Problematiek huidige datawarehouse architectuur en concept oplossing op exadata
20 Probleem in de huidige datawarehouse architectuur Bron Ontwikkeltijd PRE STG EDW S. N O V A DMT 1 3 9 ETL programmatuur van Bron naar PRE/STG en van PRE/STG naar EDW is relatief simpel. 80% daarvan wordt gegenereerd vanuit het datamodel. Ook de supernova views worden gegenereerd. Probleem zit in de opbouw van de Kimball sterren in de DMT laag o ETL voor het vullen van dimensies = 1x query per dimensie op de EDW laag (relatief simpele query) o ETL voor het vullen van feitentabel - Ophalen business sleutels uit EDW voor lookup dimensie sleutels - Ophalen dimensie sleutels uit DMT - Ophalen meetwaarden uit EDW = 1x query op de EDW en DMT laag (relatief zware query) o Bijkomend probleem Tunen voor ETL of Query performance?
21 Waarom Kimball sterren / Oracle Star Transformation? SELECT SUM(s.quantity_sold) FROM sales s, products p, times t WHERE s.cust_id = c.cust_id AND s.prod_id = p.prod_id AND s.time_id = t.time_id AND c.cust_city = 'BOSTON' AND p.product = 'UMBRELLA' AND t.month = 'MAY' ; SELECT SUM(s.quantity_sold) FROM sales s WHERE s.cust_id IN (SELECT c.cust_id FROM customers c WHERE c.cust_city = 'BOSTON') AND s.prod_id IN (SELECT p.prod_id FROM products s WHERE p.product = 'UMBRELLA') AND s.time_id IN (SELECT t.time_id FROM times t WHERE t.month = 'MAY') ; De Oracle optimizer transformeert de query zodat deze alleen die rijen uit de feiten tabel ophaalt die overeenkomen met de te selecteren rijen uit de dimensie tabellen. Voorwaarden voor optimizer om voor star transformation te kiezen: - STAR_TRANSFORMATION_ENABLED = TRUE - Bitmap indexen op foreign key kolommen van de feiten tabel sales. Hierna worden de dimensie tabellen op basis van de foreign key gejoind aan de overgebleven rijen van de feiten tabel. Deze hebben per definitie een primary key index op de sleutel. Meer informatie: https://blogs.oracle.com/optimizer/entry/star_transformation
22
23
24 Volledig gedenormaliseerde tabel ipv Kimbal ster? Dim 1 Dim 2 Dim 3 Dim 4 Dim 5 Dim 6 Dim 7 Waa rde1 Waa rde2 Waa rde3 A A A A A A A 10 100 110 A A A A A A B 20 200 220 A A A A A B A 20 200 220 A A A A A B B 40 400 440 Voordelen o 1x ETL bouwen = 1x query naar de EDW laag o Geen onderhoud aan PK indexen op dimensies o Geen onderhoud aan Bitmap indexen op FK kolommen feiten tabel o Gebruik storage indexen op exadata o Beter gebruik van HCC o Enorme performance verbetering in combinatie met partitioning optie. Nadelen o ETL is veel ingewikkelder o Geen voordeel van conforme dimensies o Enorme hoeveelheid rijen per tabel o Niet iedere OLAP tool kan hier mee om gaan
25 Vragen?