OLAP.

Vergelijkbare documenten
Online analytical processing

Normaalvormen. DB kent vijf normaalvormen, elke strenger dan de vorige De eerste drie zijn veelgebruikt. ax 2 + bx + c =0

Business Intelligence. Toepassing BI Database en Datawarehouse BI proces BI Organisatie Implementatie BI

Data Manipulatie. Query Talen. / Informatica

Cover Page. The handle holds various files of this Leiden University dissertation.

Medical Intelligence in de praktijk

SQL.

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: Groep TDI 1

Lokale besturen op zoek naar managementrapportering Waar halen we die? Ilse Bracke

Self Service BI. de business

Sparse columns in SQL server 2008

Introductie (relationele) databases

SQL Aantekeningen 3. Maarten de Rijke 22 mei 2003

Les 2 Eenvoudige queries

Betekent SOA het einde van BI?

Data transformeren naar actiegerichte inzichten REPORTS ANALYTICS

Data Vault master class. BI Retail Community

1. Inleiding Inleiding SQL Inleiding Database, databaseserver en databasetaal Het relationele model...

Business Intelligence

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

OP KOERS NAAR EEN DATAGEDREVEN ORGANISATIE?

WHITEPAPER RAPPORTAGETOOLS DIE ECHT WERKEN DOOR ERIK VENEMA

I N H O U D V l a a m s M i n i s t e r - p r e s i d e n t K r i s P e e t e r s

ID DAG_NR DAG_LANG MAAND_NR MAAND_LANG JAAR_NR FRIDAY 1 JANUARY 2009

Data Warehouse Script Generator Doel

Afstudeeropdracht bachelor informatica

= > >= < <= BETWEEN IS NULL IS NOT NULL

DATA SCIENCE BUSINESS INTELLIGENCE STANDARD REPORTS STANDARD DASHBOARDS SELF SERVICE BI PREDICTIVE ANALYTICS DATA EXPLORATION

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

SQL & Relationele datamodellen in interactieve media

The Power of SAP Innovations. De ongekende kracht van real-time Analytics

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

BIO Beleidsinformatie OCMW s

De kracht van data. Onderwerpen. Even voorstellen Data verzamelen Data bewerken Data gebruiken Een casus: IFFR Aan de slag.. Vragen en antwoorden

Datamodelleren en databases 2011

Wie? Advanced Databases blok DB vs IR. Wat? Canonical application (DB) Canonical application (DB)

[TOETS SQL INLEIDING]

Toekomstbestending maken van selectie tool Rekening houdend met strikte privacy wetgeving

Is APEX a worthy substitute for Oracle Forms?

PERSBERICHT Brussel, 2 december 2016

BI appliance op maat. Ruud Geerlings

Query SQL Boekje. Fredrik Hamer

Verdeling contracten volgens verblijfsstatuut

Data mining Van boodschappenmandjes tot bio-informatica

Databanken - les 2.

Groepswerk Technieken voor Datamodellering

Profiel Manfred Dousma

Databanken - les 2.

APICBASE.COM APICBASE.COM. Van creativiteit naar winstgevendheid. Informatie brochure

Het nieuwe verzekeren

SQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p.

DataFlex 19.0 SQL Server

Extra investeringen nodig in wegenbouw Toestand blijft moeilijk ondanks stabilisatie eerste helft 2015

Handleiding bepaal de Lifetimevalue van je kanalen in Google Analytics

plage-lestijden onderwijzer

Provinciale en Interprovinciale Studie Detailhandel

Business Proces en Social Media

Business Intelligence Teststrategie

XML als bron in een Microsoft datawarehouse

... Graydon studie. Faillissementen. Eerste trimester 2018

SQL opgaven. Relationele model: Opgaven:

EEN KORT OVERZICHT VAN DATA WAREHOUSING EN OLAP

VOORWOORD INLEIDING...5

Power BI Desktop en Online Level I incompany

Zelftest DB2 for z/os basiscursus

SQL & Datamodelleren

Introductie. NAV performance. Derk Jan Oelemans. Manager Development, BI en E-Business Qurius Business Solutions

Business Intelligence in Lier

Exact Group B.V., All rights belong to their respective owners.

Het succes achter BI Centraal Boekhuis. Computable Business Intelligence Seminar 24 april 2008

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

Interprovinciale studie Detailhandel. Rapport Provincie Vlaams-Brabant Kaartenboek -

Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT

Digitale Milieuvergunningsaanvraag. Info- en demosessie Versie 8 juli Brugge

Collectief ontslag in de periode van januari 2011 tot en met september 2011

EEN NIEUW DIGITAAL KENNISPLATFORM VOOR DE BIO-ECONOMIE IN VLAANDEREN. Linda Verdonck POM Oost-Vlaanderen

Correctievoorschrift VWO NederlandsNederl. Informatica. Tijdvak 1 Woensdag 17 mei uur. College-examen schriftelijk.

DB architectuur.

SAP Customer Success Story Farmaceutica Retail & distributie Multipharma. Meer daadkracht dankzij gestroomlijnde BI-oplossingen

Zorginstelling Reinier de Graaf Groep realiseert solide business intelligence-systeem

Correctievoorschrift HAVO Informatica. Tijdvak 1 Woensdag 24 mei uur. College-examen schriftelijk.

Cursus PowerPivot voor Excel 2016 Level I

Databases - Inleiding

Exact Group B.V., All rights belong to their respective owners.

THEMA I.3. Daghospitalisatieverblijven

BE A LEADER. (Play smart)

EXACT ONLINE INTEGRATION TOOL VERSIE 1.0.9

7 december Evolutie van de projecten: de webservices, de toepassing RRNADMIN en de evolutie van het RR naar een relationele databank

Business Intelligence

Elfde-Liniestraat Hasselt Schooljaar TINFO POKER GAME Oracle Scripts

Draaitabellen. Nodige bestanden: BESTELLINGEN BELGIE.WDB DRAAITABELLEN SAMENVOEGEN.XLS DRAAITABELLEN SAMENVOEGEN RESULTAAT.XLS BESTELLINGEN BELGIE.

PowerPivot voor Excel 2013 Level I

Object Oriented Programming

SCRUM en Agile IT ontwikkeling en de impact op governance

INTEGRALE PLANNING & CONTROL VOOR DE OVERHEID

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

Business Intelligence vergroot Cust mer KPN Mobile. Michiel Valk Manager Information Services Februari / maart 2006

Ceyenne Concentrator

Puzzelen met SQL. Tijd voor een echte puzzel PUZZELEN MET SQL

Microsoft Dynamics 365 / Office 365

Transcriptie:

OLAP joost.vennekens@kuleuven.be

Toepassingen

Waarom? Trouwe klanten belonen Gegevens verzamelen Facebook model

Waarom? Grote databank Produkten Produkten - winkels Produkten - produkten Klanten Klanten - winkels Klanten - produkten

Doel Interessante patronen Uit hele hoop gedetailleerde data

OLAP vs. OLTP Online Transaction Processing: dagdagelijks Veel kleine bewerkingen op stukjes van DB Hoge gebruiksgraad -> performant (latency) Moet up-to-date zijn Online Analytical Processing Paar grote bewerkingen op hele DB Periodiek gevoed vanuit OLTP DB

Termen Business Intelligence (BI): globale patronen die uit data gehaald worden Data warehouse: OLAP databank Data mart: date warehouse dat gefocust is op een bepaald aspect Data mining: kennis genereren uit data

Termen Data mining: kennis genereren uit data Associatie: bier + chips Classificatie: dit soort klanten kopen product X Clustering: verschillende klantenprofielen

Hoe zien OLAP data eruit?

Bijvoorbeeld Supermarkt verkoopt verschillende produkten in verschillende vestigingen in verschillende periodes

Ster schema Periode Markt Verkoop Product

Tabellen Feitentabel Verkoop markt-id pro-id tim-id hoev M1 P1 T1 1000 M1 P2 T1 2000 M1 P3 T1 1500 M1 P4 T1 2500 M2 P1 T1 500 M2 P2 T1 800 M2 P3 T1 0 M2 P4 T1 3333 M3 P1 T1 5000 M3 P2 T1 8000 M3 P3 T1 10 M3 P4 T1 3300 M1 P1 T2 1001 M1 P2 T2 2001 M1 P3 T2 1501 M1 P4 T2 2501 M2 P1 T2 501 M2 P2 T2 801 M2 P3 T2 1 Dimensie tabellen Markt markt-id stad prov gewest M1 Lier Antwerpen Vlaanderen M2 Tongeren Limburg Vlaanderen M3 Spa Luik Wallonië Product pro-id naam soort prijs P1 bier drank 1.10 P2 zakdoekjes zachtgoed 2.70 P3 hesp vlees 3.90 P4 frisdrank drank 1.05 Periode tim-id week maand kwartaal T1 1 januari 1 T2 23 juni 2 T3 51 december 4

Data kubus markt-id pro-id tim-id

Sneeuwvlok Schema Gewest in Provincie in Periode tim-id week maand kwartaal T1 1 januari 1 T2 23 juni 2 T3 51 december 4 Stad in Periode in Week in Maand Markt Markt markt-id stad prov gewest M1 Lier Antwerpen Vlaanderen M2 Tongeren Limburg Vlaanderen M3 Spa Luik Wallonië Verkoop Product in Kwartaal

Constellatie Schema Meerdere feitentabellen Periode Voorraad Magazijn Markt Verkoop Product

Wat doen we ermee?

Aggregatie markt-id Weken optellen Reductie: pro-id 3D => 2D tim-id Produkten optellen Reductie: 2D => 1D 1D => 0D totqty markt-id M1 M2 M3 totaal P1 3003 1502 15003 19509 pro-id P2 6003 2403 24003 32409 P3 4503 3 33 4539 P4 7503 7000 9903 24406 totaal 21012 10909 48942 80863

Aggregatie markt-id alles pro-id optellen tim-id select sum(hoev) from Verkoop totqty markt-id M1 M2 M3 totaal P1 3003 1502 15003 19509 pro-id P2 6003 2403 24003 32409 P3 4503 3 33 4539 P4 7503 7000 9903 24406 totaal 21012 10909 48942 80863

Aggregatie markt-id Weken pro-id markten optellen tim-id select pro-id, sum(hoev) from Verkoop group by pro-id totqty markt-id M1 M2 M3 totaal P1 3003 1502 15003 19509 pro-id P2 6003 2403 24003 32409 P3 4503 3 33 4539 P4 7503 7000 9903 24406 totaal 21012 10909 48942 80863

Aggregatie markt-id select markt-id, sum(hoev) from Verkoop pro-id group by markt-id; tim-id Weken produkten optellen totqty markt-id M1 M2 M3 totaal P1 3003 1502 15003 19509 pro-id P2 6003 2403 24003 32409 P3 4503 3 33 4539 P4 7503 7000 9903 24406 totaal 21012 10909 48942 80863

Met SQL markt-id Weken optellen pro-id tim-id select pro-id, markt-id, sum(hoev) from Verkoop group by prod-id, markt-id totqty markt-id M1 M2 M3 P1 3003 1502 15003 pro-id P2 6003 2403 24003 P3 4503 3 33 P4 7503 7000 9903

Met SQL select pro-id, markt-id, sum(hoev) from Verkoop group by prod-id, markt-id; select pro-id, sum(hoev) from Verkoop group by prod-id; select markt-id, sum(hoev) from Verkoop group by markt-id; select sum(hoev) as totqty from Verkoop; Veel werk voor gebruiker én systeem

Grouping sets select markt-id, pro-id, sum(hoev) from Verkoop group by grouping sets ( (martk-id), (pro-id) ); { markt-id pro-id totqty M1 null 21012 M2 null 10909 M3 null 48942 null P1 19509 } null P2 32409 null P3 4539 null P4 24406 Is geen relatie: null betekent geen deel van groeping set

totqty markt-id M1 M2 M3 totaal P1 3003 1502 15003 19509 pro-id P2 6003 2403 24003 32409 P3 4503 3 33 4539 P4 7503 7000 9903 24406 totaal 21012 10909 48942 80863 select markt-id, pro-id, sum(hoev) from Verkoop group by grouping sets ( (markt-id, prod-id), (martk-id), (pro-id), () );

Rollup Combinatie van grouping sets select markt-id, pro-id, sum(hoev) from Verkoop group by rollup ( markt-id, pro-id ); grouping sets ( (markt-id, prod-id), (markt-id), ()) markt-id pro-id totqty M1 P1 3003 M1 P2 6003 M1 P3 4503 M1 P4 7503 M2 P1 1503 M2 P2 2403 M2 P3 3 M2 P4 7000 M3 P1 15003 M3 P2 24003 M3 P3 33 M3 P4 9903 M1 null 21012 M2 null 10909 M3 null 48942 null null 80863

Cube Andere combinatie van grouping sets select markt-id, pro-id, sum(hoev) from Verkoop group by cube ( markt-id, pro-id ); grouping sets ( (markt-id, prod-id), (markt-id), (prod-id), ()) markt-id pro-id totqty M1 P1 3003 M1 P2 6003 M1 P3 4503 M1 P4 7503 M2 P1 1503 M2 P2 2403 M2 P3 3 M2 P4 7000 M3 P1 15003 M3 P2 24003 M3 P3 33 M3 P4 9903 M1 null 21012 M2 null 10909 M3 null 48942 null P1 19509 null P2 32409 null P3 4539 null P4 24406 null null 80863

Fijnere aggregatie Ipv. hele dimensie wegwerken, enkel maar een stukje markt-id pro-id leuven tim-id sint-katelijne mechelen

Fijnere aggregatie Ipv. hele dimensie wegwerken, enkel maar een stukje markt-id markt-id select pro_id, prov, sum(hoev) from Verkoop V, Markt M where V.markt_id = M.markt_id group by pro_id, prov; pro-id vl-br pro-id leuven tim-id sint-katelijne tim-id antwer- pen mechelen

Rolling up markt-id stad prov gewest select pro_id, gewest, sum(hoev) from Markt m, Prov-verkoop p where p.prov = m.prov group by pro_id, gewest; Herbruik select pro_id, prov, sum(hoev) from Verkoop V, Markt M where V.markt_id = M.markt_id group by pro_id, prov; Rolling up Vlaanderen Wallonië P1 4506 15003 P2 8406 24003 P3 4506 33 P4 14503 9903 mogelijk Antwerpen Limburg Luik P1 3003 1503 15003 P2 6003 2403 24003 P3 4503 3 33 P4 7503 7000 9903

Drilling down vs. rolling up markt-id stad prov gewest select pro_id, gewest, sum(hoev) from Verkoop V, Markt M where V.markt_id = M.markt_id group by pro_id, gewest; select pro_id, prov, sum(hoev) from Verkoop V, Markt M where V.markt_id = M.markt_id group by pro_id, prov; Drilling down Vlaanderen Wallonië P1 4506 15003 P2 8406 24003 P3 4506 33 P4 14503 9903 Antwerpen Limburg Luik P1 3003 1503 15003 P2 6003 2403 24003 P3 4503 3 33 P4 7503 7000 9903

Tralie jaar kwartaal week maand dag

Slicing & dicing Dicing: Slicing: group by markt-id where pro-id tim-id Verkoop van produkten in kwartaal 1

Slicing & dicing Verkoop van produkten in kwartaal 1 select pro_id, sum(hoev) as totqty from Verkoop V, Periode P where V.tim_id = P.tim_id and P.kwartaal = 1 group by pro_id; pro-id totqty P1 6500 P2 10800 P3 1510 P4 9133

Pivoteren select pro_id, maand, sum(hoev) from Verkoop V, Periode P where V.tim_id = P.tim_id group by pro_id, maand; januari juni december P1 6500 6503 6506 P2 10800 10803 10806 P3 1510 1513 1516 P4 9133 9136 6137 select pro_id, kwartaal, sum(hoev) from Verkoop V, Periode P where V.tim_id = P.tim_id group by pro_id, kwartaal; 1 2 4 P1 6500 6503 6506 P2 10800 10803 10806 P3 1510 1513 1516 P4 9133 9136 6137

OLAP Tools

Implementatie Veel gegevens Gegevens veranderen niet vaak Op voorhand berekenen Aggregaten Extra tabellen/kolommen Indexen

Laden van warehouse Heel veel gegevens Uit verschillende OLTP databanken Na T4: insert into Verkoop(markt-id, pro-id, tim-id, hoev) select M1, S.pro-id, S.tim-id, S.hoeveelheid from SALES S where S.tim-id = T4 Nood aan syntactische integratie: p01 vs. 01 Nood aan semantische integratie: 10g vs. 10 stuks Nood aan cleaning