Definiii: Business Intelligence, Data Warehouse, OLAP
Arhitectura unui depozit de date
Modelul logic dimensional pentru depozite de date 2 Business Intelligence
Business Intelligence (BI) este abilitatea unei ntreprinderi de a studia comportarea i aciunile trecute, cu scopul: de a stabili poziia i situaia curent a organizaiei i de a prezice sau modifica ceea ce se va ntmpla n viitor
BI foloseste depozitele de date (data warehouse) care conin informaii necesare pentru luarea deciziilor prin sisteme: Decision Support Systems (DSS) On-Line Analytical Processing (OLAP) 3 Business Intelligence
BI i data warehouse se nscriu n domeniul mai general Corporate Information Factory (CIF), care s-a dezvoltat n ultimii 20 ani
Aceste sisteme au mbuntit sistemele de informaii executive (Executive Information Systems - EIS), folosite pentru analiza activitii de ctre conducerea organizaiilor
ERP Enterprise Resource Planning un subsistem al BI, care se ocup de planificarea resurselor folosind, de asemenea, data warehouse 4 Evoluia tehnologiilor de Business Intelligence BI se bazeaz pe data warehouse, care trebuie s suporte: tehnologii de prelucrare multiple: interogri, rapoarte, analiz multidimensional, explorarea datelor niveluri de granularitate multiple: att date detaliate (pentru operaii tranzacionale), ct i date agregate (rezumate - pentru operaii de analiz i explorare) 5 Depozite de date (Data Warehouse) Un depozit de date este o colecie de date orientate pe subiect (subject- oriented), integrate, non-volatile, variabile n timp (timevarying), care constitue suport pentru luarea deciziilor ntr-o ntreprindere (organizaie) Orientarea pe subiect: In general, depozitele de date sunt organizate n jurul aplicaiilor funcionale ale companiei De exemplu, pentru o companie de asigurri aplicaiile sunt orientate pentru auto, via, sntate, i depozitele de date se construiesc pe aceste subiecte 6 Caracteristicile depozitelor de date (1) Datele sunt integrate: Depozitele sunt alimentate dintr-o multitudine de surse separate La alimentare, ele sunt curate, convertite, transformate, rezumate Rezult o singur imagine integrat a datelor pentru intreaga companie Datele sunt stocate astfel nct s faciliteze utilizarea lor n mai multe aplicaii Se respect convenii de nume, de structur, de msuri 7 Caracteristicile depozitelor de date (2) Datele sunt nonvolatile n depozite datele se ncarc n anumite momente de timp i sunt stocate pe perioade lungi de timp
Depozitele de date stocheaz date istorice Datele sunt semnificative pentru un anumit moment de timp (time-variancy) De aceea nregistrrile contin o informaie privind momentul sau perioada de timp pentru care sunt valabile 8 Granularitatea datelor n depozite Este un aspect important n proiectarea depozitelor de date, deoarece determin volumul ocupat de date Granularitatea se refer la nivelul de detaliu (sau de rezumare) a unei uniti de date din depozit: Cu ct nivelul de detaliu este mai mare, cu att granularitatea este mai mic (mai fin) de ex. o simpl tranzacie este de granularitate mic Cu ct rezumarea este mai puternic, cu att granularitatea este mai mare; de ex. suma tuturor tranzaciilor dintr-o lun
9 Niveluri de granularitate multiple Nivelul de granularitate fin (detaliere mare) se folosete n bazele de date operaionale i ca date nerezumate (sau slab rezumate) n depozite Pe nivelul de granularitate ridicat (date puternic rezumate) se pot stoca date pe perioade ndelungate i se folosesc pentru decizii de organizare 10 Structura unui depozit de date Se pot identifica mai multe niveluri de structur ale unui depozit de date: nivelul vechi, curent, uor rezumat, puternic rezumat 11 OLTP Bazele de date operaionale suport prelucrarea tranzaciilor (On-Line Transaction Processing OLTP)
Tranzaciile sunt operaii atomice care acceseaz (n general) un numr mic de nregistrri, pentru operaiile zilnice ale ntreprinderii
Bazele de date operaionale sunt proiectate s maximizeze numrul de tranzacii/secund (throughput) i s minimizeze conflictele concureniale 12 OLAP Depozitele de date suport prelucrarea analitic a datelor (On-Line Analitical Processing - OLAP)
Depozitele de date conin date consolidate, rezumate din mai multe baze de date operaionale, pe perioade de timp ndelungate
Depozitele de date sunt mult mai mari (cu cel puin un ordin de mrime) dect bazele de date operaionale
Cerinele OLAP difer de cerinele OLTP 13 Comparaie OLTP Data Warehouse Operaii tipice: n OLTP se acceseaz un numr mic de nregistrri n depozite de date se acceseaz mii sau milioane de linii Modificarea datelor: Sistemele OLTP sunt n permanen la zi, actualizate de utilizatori n depozitele de date detele sunt actualizate regulat de ctre procesul ELT (Extract, Load Transformation) 14 Arhitectura unui depozit de date (1) Descrierea datelor metadata, stocate ntr-un repertoriu (repository) Toolset-uri de monitorizare i administrare 15 Arhitectura unui depozit de date (2) Colectarea datelor n depozite implic: Extragerea datelor din baze de date operaionale multiple i din surse externe Curarea (cleanup), transformarea i integrarea datelor ncrcarea datelor (load) mprosptarea datelor (refresh); preluarea noilor date din surse; transferul datelor nvechite ctre alte suporturi de date mai lente Datele din depozite sunt gestionate de unul sau mai multe servere de depozite (warehouse servers) Mai exist i centre de date (data marts) care conin date specifice anumitor departamente i servere pentru acestea (data mart servers) Depozitele i centrele de date reprezint datele de intrare pentru toolset-uri de: Interogare Analiz (OLAP) Explorare (data mining) 16 Modelul dimensional pentru depozite de date Cel mai rspndit model conceptual pentru depozitele de date este modelul dimensional care specific un set de subiecte; acestea: pot fi definite prin valori (msuri) numerice sunt analizate n sistemele de decizie Exemple de subiecte (facts): vnzri, buget, venit, inventar Fiecare msur (subject, fact) depinde de un set de dimensiuni De exemplu, pentru msura vnzri (SALES), dimensiunile pot fi: oraul, numele produsului, data (calendaristic) O dat din modelul dimensional poate fi vzut ca un punct (valoare) ntr-un spaiu multidimensional Orice msur poate fi agregat pe oricare dintre dimensiuni; de exemplu vnzrile totale pe o anumit regiune, perioad de timp sau produs 17 Schema logic a depozitelor de date
Pentru sistemele OLTP se folosesc scheme logice deduse din diagrama E-A (Entitate-Asociere)
n depozite de date i sisteme OLAP se folosete modelarea dimensional
Modelul dimensional se poate reprezenta prin: Schema star (stea) Schema snowflake (fulg de zpad) Schema constellation (constelaie) 18 Schema star n implementarea relaional a schemei stea, baza de date const din: o tabel corespunztoare msurii (fact table) (foarte mare, cu date agregate) cte o tabel pentru fiecare dimensiune (relativ mici) 19 Schema snowflake n implementarea relaional a schemei snowflake, baza de date const din: o tabel corespunztoare msurii (fact table) (foarte mare, cu date agregate) Tabelele de dimensiuni sunt normalizate in mai multe tabele 20 Schema constelation Mai multe tabele facts Tabelele de dimensiuni 21 Oracle Data Warehouse (ODW) n Oracle 11g se pot construi depozite de date care se folosesc pentru: Raportri i analize Prelucrarea analitic (OLAP) Explorarea datelor (data mining) n ODW se folosete preponderent: Schema stea pentru proiectarea logic a depozitului Implementarea relaional a schemei stea 22 Oracle Warehouse Builder (OWB) OWB permite proiectarea i construirea depozitelor de date, a centrelor de date (data mart) i a aplicaiilor BI (Business Intelligence) OWB conine un set de instrumente grafice care asist utilizatorul n proiectare, pentru crearea obiectelor memorate ntr-un spaiu de lucru (workspace) memorat n baza de date Oracle Toolset-ul Design Center permite importul obiectelor surs i proiectarea proceselor ETL i a obiectelor de coresponden (mapping) Un mapping (mapare) definete un flux de date de la surs la depozitul int (target warehouse) OWB genereaz codul pentru extragerea, transferul i ncrcarea datelor (procesul ETL) Toolset-ul Repository Browser asigur o interfa Web pentru inspectarea metadata din depozit Control Center Service controleaz deploymentul bazei de date target Schema depozitului creat (target schema) conine: codul generat, cuburile, dimensiunile, tabelele, vederile, maprile i pachetele care execut procesul ETL 23 Componentele OWB 24 Modelul dimensional n ODW Modelul dimensional se definete printr-un CUBE, care conine una sau mai multe msuri (measures), determinate de mai muli parametri, fiecare descris printr-o dimensiune Ca msuri (ale unei activiti) sunt considerate producia, vnzrile, profiturile, i orice alt indicator care poate fi monitorizat Fiecare dimensiune definete atributele dimensiunii, nivelurile de agregare, i ierarhia intre niveluri Ca dimensiuni sunt considerate timpul, distribuia geografic a clienilor, canalele de distribuie, departamente, i orice alt element care influeneaz activitatea respectiv Modelul dimensional poate fi reprezentat printr-o schem stea 25 Cube - n ODW Datele unui CUBE pot fi interpretate diferit de grupuri de utilizatori prin decuparea feliilor din cub pe diferite dimensiuni: Managerii regionali: studierea feliilor orientate pe piee regionale (market); Managerii de producie: studierea feliilor orientate pe produs (product); 26 Exemplul SALES_WH n toolset-ul Data Center 27 Exemplu de schem stea: SALES_WH Schema stea conine: CUBE SALES Dimensiunile: PRODUCTS PROMOTIONS CUSTOMERS CHANNELS TIMES 28 Proiectarea unui CUBE CUBE SALES din modulul SALES_WH, proiectul OWB_DEMO Definete msurile: AMOUNT QUANTITY COST Refer dimensiunile: TIMES PRODUCTS CHANNELS CUSTOMERS PROMOTIONS 29 Proiectarea dimensiunilor O dimensiune const din: Atribute ale dimensiunii fiecare atribut avnd nume i tip (de date) Un set de niveluri i un set de ierarhii definite pe aceste niveluri Un nivel definete un grad se agregare pe dimensiunea respectiv i fiecare nivel are 2 identificatori: Identificator surogat identific unic fiecare nivel n cadrul nivelelor dimensiunii (compus dintr-un singur atribut, asemntor cheii primare artificiale a tabelelor relaionale) Identificator business - alctuit din unul sau mai multe atribute ale nivelului (asemnotor cheii primare naturale a tabelelor relaionale) O ierarhie este o structur care ordoneaz nivelurile unei dimensiuni, definind asocieri de tipul printe-fiu Exemplu: dimensiunea PRODUCTS din depozitul SALES_WH, care poate fi studiat cu toolset-ul Design Center (din Oracle Warehouse Builder), lansnd Data Object Editor 30 Exemplu: dimensiunea PRODUCTS (1) 31 Exemplu: dimensiunea PRODUCTS (2) Fiecare nivel are o denumire: PRODUCT SUBCATEGORY CATEGORY TOTAL Fiecare nivel are un set de atribute: este un subset al setului de atribute ale dimensiunii conine identificatorii surogat i business Ierarhia de niveluri (cu numele PROD_STD) 32 Exemplu: dimensiunea CUSTOMERS 33 Implementarea relaional a schemei stea Asocierile (relationships) sunt definite ntre tabelul fact i tabelele de dimensiuni, prin chei strine din tabelul fact Cheia primar a tabelului fact este, de regul, o combinaie a cheilor strine care refer cheile primare din tabelele de dimensiuni Pentru implementarea relaional a schemei stea a unui depozit de date se definesc: Tabele de subiecte (fact table) un fact table pentru fiecare schem stea; tabelul fact corespunde unui cube din proiectul logic Tabele de dimensiuni (numite i tabele de referin) care corespund dimensiunilor din proiectul logic 34 Implementarea relaional a dimensiunilor Tabelul corespunztor unei dimensiuni: Memoreaz date pentru toate nivelurile dimensiunii Conine o cheie primar care este referit de tabelul fact (implementare a msurii cube) Coloanele tabelului corespund atributelor nivelurilor dimensiunii Numele unei coloane se obine prin prefixarea numelui atributului cu numele nivelului Exemplu: tabelul PRODUCTS 35 Implementarea relaional a unui CUBE CUBE SALES i corespunde tabelul relaional SALES n care: Fiecrei msuri i corespunde o coloan Fiecare tabel de dimensiune este referit printr-o cheie strin
36 ncrcarea datelor n depozit ncrcarea datelor din fiiere sau tabele surs n baza de date int (target) se face prin operaiile de extragere, transformare i ncrcare (operaiile ETL) Operaiile ETL se definesc n mapri (mapping) O mapare este compus din operatori i poate fi definit n cadrul OWB Operatorii folosii de OWB: Operatori surs/target Oracle reprezint obiecte Oracle (tabele, vederi etc.) Operatori surs/target non-Oracle sau remote Operatori de flux de date (data-flow) definesc transformrile datelor Operatori pre sau post mapping Operatori de grupare (pluggable maping operators) De exemplu, maparea LOAD_CHANNELS din modulul SALES_WH Operatorul CHANNELS_IN este legat (BOUND) la tabelul CHANNELS Operatorul CHANNELS_OUT este legat la dimensiunea CHANNELS Sunt definite corespondene ntre atributele operatorilor 37 Exemplu: maparea LOAD_CHANNELS 38 Proiectarea proceselor flux Un proces flux (flow process) asigur execuia operaiilor ETL, conform maprilor definite 39 Deploymentul i ncrcarea datelor n OWB Prin deployment se creeaz sistemul int din modelul proiectat Pentru un depozit proiectat se deploy-az: Tabelele externe Cubul i dimensiunile Maprile Procesele flux n OWB deplymentul se face cu Control Center Manager, care poate fi lansat din Design Center ncrcarea datelor n tabelele int se face conform maprilor i a proceselor flux definite i deployate Datele ncrcate n tabelele int pot fi viyualiyate, selectate etc. De exemplu, datele din tabelel schemei sh din baza de date Oracle 11g corespund bazei de date int SALES_WH (cu mici diferene de denumiri ale atributelor, provenind din diferena de versiuni) 40 Coninutul tabelului PRODUCTS Observatii: tabelul PRODUCTS este nenormalizat prezint redundane, dar interogarile sunt mai rapide Denumirile coloanelor difera pt. ca s-a folosit deploymentul existent din exemplele Oracle (schema sh) 41 Coninutul tabelului SALES 42 Indexuri n Oracle Data Warehouse n ODW se folosesc: Indexuri B-Tree - pentru indexuri pe atribute chei unice (primare) Indexuri bitmap pentru alte atribute Indexuri bitmap utilizate n depozite, unde sunt mari cantiti de date i interogri ad-hoc, dar un nivel sczut de concuren a tranzaciilor n astfel de aplicaii indexurile bitmap asigur: Timp de rspuns bun pentru interogri Spaiu de memorare mai redus dect alte tipuri de indexuri (indexurile bitmap necesit o mic fracie din dimensiunea datelor, n timp ce indexurile B-tree pot ajunge mai mari dect tabelel nsele) Un index furnizeaz pointeri la liniile dintr-un tabel care conine o anumit valoare a cheii de ordonare a indexului. Un index obinuit conine lista identificatorilor liniilor care conin cheia Un index bitmap conine cte un bit pentru fiecare linie din tabel: 1 dac linia conine cheia; 0 dac linia nu conine cheia Indexurile bitmap se pot comprima foarte eficient 43 Indexuri bitmap (1) Un index bitmap este cu att mai eficient cu ct numrul de valori distincte ale atributului folosit ca i cheie de indexare este mai mic deoarece pentru fiecare valoare distinct a atributului cheie a indexului se memoreaz un ir cu un numr de bii egal cu numrul de linii Exemplu: n tabelul CUSTOMERS (cust_id, cust_gender, cust_marital_status, cust_income_level, ....) Se pot pune indexuri bitmap pe atributele: cust_gendre 2 valori posibile (F, B) cust_marital_status 5 valori posibile (null, single, married, divorced, widow) cust_income_level 12 niveluri posibile Pe atributul cust_id nu se poate defini un index bitmap, deoarece are numr mare de valori distincte, dar se poate defini indexul primar (de tip B-Tree) 44 Index-uri bitmap (2) Se consider o parte (selecie) din tabelul CUSTOMERS Dac acesta ar fi tot tabelul, atunci indexul bitmap pe atributul cust_gendre ar arta astfel: cust_id M F 555 0 1 556 0 1 557 0 1 558 0 1 559 1 0 560 0 1 561 1 0 562 1 0 563 1 0 564 1 0 Observaie: irul de bii al indexului nu are doar 10 bii, ci o lungime egal cu cardinalitatea tabelului CUSTOMERS 45 Index-uri bitmap (3) Indexul bitmap pe atributul cust_marital_status pe poriunea selectat din tabelul CUSTOMERS arat n felul urmtor: cust_id null single married divorced widow 555 1 0 0 0 0 556 0 1 0 0 0 557 0 0 1 0 0 558 0 0 0 1 0 559 0 1 0 0 0 560 0 1 0 0 0 561 0 1 0 0 0 562 1 0 0 0 0 563 0 1 0 0 0 564 0 0 1 0 0 46 Agregarea datelor n ODW folosind SQL Funciile de agregare se pot folosi ca extensii ale clauzei GROUP BY: ROLLUP CUBE GROUPING GROUPING SET Extensia ROLLUP a clauzei GROUP BY permite instruciunii SELECT s calculeze niveluri de subtotal multiple peste un grup de dimensiuni Exemplu de interogare cu agregare prin clauza GROUP BY fr nici o extensie (n schema sh, folosind SQL Developer): 47 Extensia ROLLUP a clauzei GROUP BY Aceeai interogare n care clauza GROUP BY are extensia ROLLUP Se obin: Liniile cu vnzrile trimestriale, pe categorii de produse, n intervalul dat Totalul pentru toate categoriile, pe fiecare trimestru Totalul pe toate categoriile, pe tot intervalul 48 Extensia CUBE a clauzei GROUP BY Extensia CUBE a clauzei GROUP BY genereaz toate subtotalurile care pot fi calculate dintr-un CUBE pe dimensiunile specificate; Exemplu adugnd extensia CUBE n clauza GROUP BY se obin: Liniile cu vnzrile trimestriale, pe categorii de produse, n intervalul dat Toate totalurile posibile pentru vnzrile trimestriale i pe categorii de produse 49 Interogri stea n ODW Interogare stea: o jonciune ntre tabelul fact i unul sau mai multe tabele de dimensiuni, folosind cheile strine din tabelul fact Nu se pot face jonciuni ntre tabele de dimensiuni Pentru optimizarea interogrilor stea folosete transformarea stea: Se definete cte un index bitmap n tabelul fact pentru fiecare cheie strin Exemplu: n tabelul fact SALES sunt definite indexuri pe cheile strine: time_id, channel_id, cust_id, prod_id, and promo_id 50 Transformarea stea Pentru execuia interogrii folosind transformarea stea, se transform interogarea stea n sub-interogri pe fiecare dimensiune: SELECT ... FROM sales WHERE time_id IN (SELECT time_id FROM times WHERE calendar_quarter_desc = '1999-Q1') AND cust_id IN (SELECT cust_id FROM customers WHERE cust_state_province='CA') AND channel_id IN (SELECT channel_id FROM channels WHERE channel_desc IN('Internet','Catalog')); Se execut jonciunea ntre tabelul fact i fiecare tabel de dimensiune rezultat prin selecie folosind indexul bitmap corespunztor dimensiunii respective Se obine cte un bitmap pentru fiecare dimensiune, fiecare valoare 1 din bitmap reprezentnd mulimea liniilor din tabelul sales care satisface condiia corespunztoare dimensiunii respective Se execut operaia AND ntre bitmap-urile de dimensiuni pentru a obine mulimea liniilor rezultat 51 Funcii SQL pentru analiz i raportare Oracle extinde SQL cu urmtoarele funcii pentru analiz i raportare: 52 Funciile RANK i DENSE_RANK Funciile RANK i DENSE RANK permit aflarea rangului unui articol dintr-un grup dat Ex: s gsim primele 3 produse cel mai bine vndute n California anul trecut Sintaxa: RANK ( ) OVER ( [query_partition_clause] order_by_clause ) DENSE_RANK ( ) OVER ( [query_partition_clause] order_by_clause ) Dac lipsete clauza query_partition_clause, rangul se aplic ntregului result set Diferena dintre cele 2 funcii: La RANK: urmatorul rang are valoarea obinut prin incrementarea valorii rangului precedent cu numrul de aticole de pe rangul precedent La DENSE_RANK, urmtorul rang are valoare incrementata cu 1 fat de rangul precedent, indiferent cte articole sunt asignate acestuia 53 Exemplu: funcia RANK 54 Funciile lag/lead Sintaxa: {LAG | LEAD} ( value_expr [, offset] [, default] ) OVER ( [query_partition_clause] order_by_clause ) Exemplu: 55 OLAP i Data Mining n Oracle OLAP i Data Mining sunt integrate n serverul Oracle; pot fi privite ca modaliti complementare de analiz: OLAP ofer calcule de rezumare (sintez); de ex. Cum sunt vnzrile de fonduri mutuale din acest trimestru comparate cu cele de anul trecut? Ce se poate prevedea pentru vnzrile n trimestrul urmtor? Data mining descoper legturi (pattern-uri) neateptate n seturile de date; explorarea opereaz cu detalii, nu cu rezumate ale datelor; de exemplu, explorarea poate oferi rspuns la ntrebri: Care sunt cartacteristicile celor care vor cumpra fonduri mutuale n urmtoarele 6 luni? OLAP folosete kernelul bazei de date Oracle: Securitatea este administrat n mod standard, prin acordarea sau revocarea de drepturei utilizatorilor i rolurilor Obiectele dimensionale sunt memorate n baza de date (de ex.cuburile) Se poate folosi limbajul SQL pentru interogarea obiectelor dimensionale Data mining folosete mari volume de date pentru a crea modele, att n aplicaiile economice ct i n aplicaii tiinifice 56 Oracle Data Mining (ODM) Oracle Data Mining suport majoritetea funciilor de explorare: Clasificarea (gruparea entitilor n clase) algoritmi implementai: arbori de decizie, regresie, SVM (support vector machines) Regresia (aproximarea i predicia valorilor numerice continue) algoritmi SVM, modele lineare generalizate (multivariate linear regression) Detecia anomaliilor folosete algoritmi SVM Detecia importanei atributelor algoritmi de detecie a descriptorilor de lungime minim (minimum descriptor length) Gruparea (clustering identificarea gruprii naturale a datelor) algoritmi k-Means, O-Cluster Asocieri (analiza n coul de cumprturi a articolelor care sunt cumprate mpreun) algoritmul apriori Extragerea trsturilor algoritmul de factorizare cu matrice non-negativ Pe lng explorarea datelor structurate, ODM mai permite explorarea textelor (de ex. rapoarte ale poliiei, note medicale) sau a datelor spaiale 57 Suport pentru depozite de date n alte SGBD-uri MySQL (versiunea 5.1) i PostgreSQL (versiunea 8.4) nu ofer suport pentru depozite de date Dar exist toolset-uri cu care se pot construi depozite implementate n baze de date relationale ale acestora De exemplu: The Data Warehouse Toolkit by Ralph Kimball Microsoft SQL Server 2008 permite crearea i utilizarea depozitelor de date prin urmtoarele componente: Componente de stocare - acestea sunt baze de date ce conin date colectate i informaii de configurare Componente de execuie - folosite pentru colectarea i stocarea datelor Componente de interfa (API) permit interaciunea dintre interfeele utilizator i coleciile de date Componente client sunt interfee utilizatori pentru accesarea coleciilor de date 58 Microsoft SQL Server Data Warehouse 59 Bibliografie W. H. Inmon, Building the Data Warehouse, Fourth Edition, Wiley Publishing, Inc., 2005 S. Chaudhuri, U. Dayal, An Overview of Data Warehousing and OLAP Technology, Intl. Conference on Data Engineering, 1995. Oracle 11g Documentation Oracle Database - Data Warehousing Guide 11g Release 1 (11.1) B28313-02 Oracle Database - 2 Day + Data Warehousing Guide 11g Release 1 (11.1) B28314-01 Oracle Warehouse Builder User's Guide 11g Release 1 (11.1) B31278-06 MySQL 5.1 Documentation PostgreSQL 8.4.3 Documentation Microsoft SQL Server 2008 Books Online 60