Documente Academic
Documente Profesional
Documente Cultură
Depozite de Date - Badescu
Depozite de Date - Badescu
Depozite de date –
procesare in-memory
2
Aspecte fundamentale ale depozitelor de date
Sursele de date pentru depozitul de date provin, in special, din datele importate
din sistemul informatic operational, dar mai pot proveni si din datele de arhiva perecum
si din sursele externe ( date publice, date demografice, date statistice, date obtinute in
urma unor sondaje de opinie etc.).
Informatiile sunt organizate in depozitele de date intr-o maniera care sa permita
analizarea lor complexa, deci extragerea semnificatiei economice pe care o poarte. Datele
operationale (BD sau fisiere) sunt orientate pe aplicatii, in sensul ca organizarea lor este
optimizata pentru a servi procesului tranzactional, dinamicii sistemului. De exemplu, o
comanda lansata de un client va aparea in sistemul operational ca un set de inregistrari
care vor contine date despre client, despre produsele sau serviciile comandate, despre
modul de transport si despre modul de plata.
3
Depozitul de date este orientat pe subiectele importante alea procesului economic:
clientii, furnizorii, produsele, activitatile etc.
Integrarea datelor reprezinta un aspect important al depozitului de date si anume
ratiunea pentru care acesta este creat. Datele sunt adunate pentru a raspunde nevoilor
informationale ale intregii organizatii, asigurand faptul ca rapoartele generate pentru
diverse compartimente vor contine aceleasi rezultate.
Sistemul operational este format din mai multe subsisteme, relativ independente, create la
momente diferite, de echipe diferite, in maniere diferite, ceea ce face greoaie folosirea
unui astfel de sistem pentru analiza.
Integrarea datelor provenind din sistemul operational si din alte surse se refera la
urmatoarele aspecte:
- modalitatile unice de codificare – exista nenumarate variante de a codifica un
camp, insa o aplicatie pentru analiza datelor va trebui sa se bazeze pe o
codificare unica
- sistemul de unitati de masura unitar - unitatile de masura pentru diferitele
campuri trebuie exprimate intr-un sistem unic ( de exemplu metrul)
- sistemul stabil de reprezentare fizica a datelor – in aplicatiile tranzactionate
este posibil ca aceleasi date sa fie memorate in moduri de organizare diferite.
Acestea trebuie stabilizate dupa anumite reguli precise, stabilite la proiectare.
- conventiile standard privind modul de reprezentare a datelor - datele
calendaristice, campurile care definesct timpul; trebuie sa respecte conventiile
internationale;
- conventiile unice privind denumirile campurilor de date – in sistemul
operational acestea pot sa difere de la o aplicatie la alta, iar in depozitele de
date ele trebuie sa fie unice, datorita necesitatii lucrului in echipa.
Sistemul operational al unei organizatii tinde mereu sa reflecteze realitatea
curenta. Astfel, el se afla intr-o continua evolutie, iar datele pe care le contine sunt
relevante doar pentru momentul in care acestea sunt accesate. Orizontul de timp pe care il
acopera este de regula zile sau luni, deoarece dupa acest interval tranzactiile efectuate
sunt arhivate, fiind considerate deja de domeniul istoriei, deci neinteresante din
perspectiva operativa.
Pentru realizarea unei analize economice este nevoie de date cu caracter istoric.
Acestea sunt esentiale deoarece pun in evidenta fundamentul unei prognoze corecte.
Depozitul de date este un istoric al sistemului operational. Ca si orizont de timp,
depozitul de date este de cel putin cinci ani, putand sa ajunga uneori chiar la zece sau
cincisprezece ani in functie de dinamica evolutiei pietei si de relevanta datelor. Din punct
de vedere tehnic, analiza economica implica faptul ca orice inregistrare din depozitul de
date poate fi plasata in timp, iar orice cheie de acces cuprinde si o variabila de timp.
La depozitele de date actualizarea este foarte rara, deci dinamica lipseste.
Actulizarea se realizeaza doar prin adaugarea periodica a unor date extrase din alte surse
de date sau sisteme operative prin utilizarea unor campanii.
In cazul depozitelor de date mecanismele de integritate sunt inutile, asfel ca gradul de
libertate castigat poate fi utilizat pentru utilizarea accesului la date prin sumarizare,
denormalizare, statistici ale accesarii datelor, reorganizare dinamica etc.
Un depozit de date contine un volum foarte mare de date. Unele dintre acestea
provin din sursele organizationale ale organizatiei, iar altele din surse externe.
4
Facilitati ale depozitelor de date
Cresterea volumului de date, precum si perfectionarea produselor software de
gestiune a acestuia, au condus la o noua calitate a utilizarii datelor prin analize care pot
releva conducerii organizatiei informatii greu sau chiar imposibil de obtinut pe alte cai.
Pentru a obtine informatiile dorite, depozitele de date sunt supuse unor prelucrari
complexe, cu ajutorul unor metode specifice, cum ar fi: analiza multidimensionala a
datelor, metode statistice superioare de prognoza, metode matematice aplicate unui
volum foarte mare de date. Aceste metode presupun folosirea unui software specializat
deosebit de complex, bazat pe noi tehnologii informatice: extrageri de date ( data
mining), OLAP, concentrari de date ( data mart) etc.
5
Figura 1: Componentele software ale depozitelor de date
Datele detaliate sunt cele relativ recente, livrate utilizatorilor, de regula la nivel de
executie. Tot aici se gasesc date avend o anumita vechime, de cativa ani, in forma
detaliata.
Construirea depozitului de date, pornind de la sursele de date presupune
parcurgerea urmatoarelor detalii:
- extragerea datelor din datele operationale si transformarea lor in formatul si
structura datelor din depozitul de date;
- filtrarea datelor, pentru verificarea corectitudinii datelor;
- incarcarea datelor corecte in depozitul de date;
- agregarea datelor: totaluri precalculate, subtotaluri, valori medii, care se
preconizeaza ca vor fi cerute de utilizatori.
6
8) instruirea beneficiarului;
9) testarea depozitului de date;
7
- partajarea datelor intre diferiti utilizatori sau intre diferite aplicatii informatice
care ruleaza sub diferite sisteme;
2) Oracle Warehouse Builder (OWB)
- OWB permite proiectarea şi construirea depozitelor de date, a centrelor de date
(data mart) şi a aplicaţiilor BI (Business Intelligence)
- OWB conţine un set de instrumente grafice care asistă utilizatorul în proiectare,
pentru crearea obiectelor memorate într-un spaţiu 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) defineşte un flux de date de la sursă la depozitul ţintă
(target warehouse)
- OWB generează codul pentru extragerea, transferul şi încărcarea 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) conţine: codul generat, cuburile,
dimensiunile, tabelele, vederile, mapările şi pachetele care execută procesul ETL
O comparaţie între bazele de date şi depozitele de date pune în
valoare rolul depozitelor de date, ca model de organizare şi sursă suport de informaţii
pentru fundamentarea deciziei. Atat bazele de date cat şi depozitele de date sunt
structuri logice de organizare de date, exploatează tehnologii informatice
de organizare şi gestiune de date diferite şi înmagazinează mari cantităţi de date.
Diferenţele semnificative între cele două modele de organizare logică de date pot fi
structurate astfel:
- Bazele de date din sistemele informatice conţin date curente, detaliate,
care sunt actualizate şi interogate în aceleaşi perioade cu culegerea şi
procesarea lor şi fac obiectul sistemelor informatice de prelucrare a
tranzacţiilor (TPS). Depozitele de date sunt construite special ca sisteme
suport de asistare a deciziei şi au ca obiectiv regruparea şi consolidarea
8
datelor, agregarea şi sintetizarea lor, reorganizarea şi stocarea informaţiilor
provenite din surse diverse şi variate de date inclusiv date multimedia,
hipermedia şi de localizare spaţială şi fac obiectul sistemelor informatice
inteligente – sisteme suport de asistare a deciziei (DSS). Ele se
aplică asupra unor volume foarte mari de date, eterogene, constituite ca
depozite de istoric/arhivă de date şi presupun calcule complexe (analiză de
tendinţă, corelaţii între evenimente, asociaţii intre
anumite fapte, secvenţe, tipare de comportament, modele de cunoaştere) ;
- Sistemele de gestiune a bazelor de date sunt adecvate aplicaţiilor curente de
gestiune şi servesc la crearea şi întreţinerea sistemelor de baze de date
tranzacţionale OLTP (OnLine Transaction Processing) şi au ca obiectiv
execuţia în timp real a tranzacţiilor zilnice (aprovizionare, vînzari, stocuri,
producţie, decontări, plăti, activităţi de marketing şi management,
contabilitate) cât şi a procedurilor de interogare (Query).
Sistemele de gestiune a depozitelor de date, pe de altă parte, servesc top
managerii, managerii, utilizatorii sau specialiştii în domeniul analizei
şi fundamentării deciziei, fac obiectul sistemelor informatice OLAP (OnLine
Analytical Processing) şi oferă tehnologii de agregare a datelor stocate în
depozitele de date întro abordare multidimensională, cu acces rapid la
informaţiile necesare, întro manieră consistentă, interactivă şi
foarte flexibilă;
- Un sistem OLTP este centrat pe client (customer oriented) şi este utilizat
pentru procesarea tranzacţiilor şi interogărilor din bazele de date constituite
operaţional, baze care pot oferi răspunsuri la întrebări de tipul Cine?, Ce?,
Unde?, Când? prin analiza datelor de tip numeric sau statistic. Un sistem
OLAP este orientat spre piaţă (maket oriented) şi este utilizat de manageri,
analişti, specialişti prin instrumente FASMI (Fast Analysis Shared
Multidimensional Information) de analiza rapidă a informaţiei
multidimensionale distribuită în locaţii multiple şi accesibilă în acelaşi
timp unui număr mare de utilizatori pentru analize complexe prin
agregare, sintetizare, consolidare şi care permit construirea de scenarii,
prin posibilitatea de a răspunde la întrebări de tipul „Ce ar fi dacă?”
pentru a descoperi între evenimente, asociaţii între anumite fapte, secvenţe
şi tipare de comportament;
- Tehnologiile OLAP utilizează bazele de date multidimensionale,
construite de regulă din date de istoric sau date care provin de la
diferite organizaţii ,integrând informaţii din surse eterogene, de tipuri şi
naturi diferite. Tehnologiile OLTP utilizează baze de date relaţionale, care
sunt bidimensionale prin definiţie, fiind focalizate pe datele curente dintr-
o organizaţie sau departament fără a referi date istorice sau date din alte
organizaţii.
Procesarea in-memory
9
tehnologie in curs de dezvoltare, dar care se bucura de o atentie deosebita. Aceasta
tehnologie permite utilizatorilor sa aiba acces imediat la informatiile ce provin din
diferite parti. In tehnologa Business Intelligence traditionala, datele sunt incarcate si
salvate pe disc sub forma tabelelor, bazelor de date, depozite de date etc. iar apoi sunt
procesate prin interogari. Utilizarea tehnologiei in-memory presupune incarcarea datelor
in RAM (Random Access Memory) in loc de hard disk si, prin urmare timpul de
procesare a datelor scade semnificativ.
Fiecare calculator are doua tipuri de mecanisme de stocare a datelor – pe hard
disk si in memoria RAM. Computerele moderne au un spatiu de salvare pe disc mult mai
mare decat in RAM, dar citirea datelor se face mult mai lent (de sute de ori mai incet)
mai ales cand este vorba de citirea datelor de dimensiuni foarte mari, cum sunt depozitele
de date. Tehnologiile traditionale bazate pe lucrul cu hard diskul sunt cunoscute si ca
sisteme de management al bazelor de date relational, cum ar fi SQL Server, MySQL,
Oracle si multe altele. RDMS(Relational Databaze Management Systems) sunt concepute
sa pastreze in memorie procesele tranzactionale. Lucrand cu o baza de date care suporta
atat adaugari, modificari cat si agregari de date, procese de jonctiune toate acestea nu pot
fi realizate simultan. De asemenea SQL(Structured Query Language) este conceput
pentru a prelucra eficient randuri de date, in timp ce procesele de Business Intelligence
implica prelucrarea partiala a unor date si efectuarea in acelasi timo de calcule grele.
Aparitia bazelor de date centrate pe coloana a determinat stocarea mult mai
eficienta a datelor, aparand astfel posibilitatea stocarii datelor in memoria RAM. Cu baza
de date in memorie, toate informatiile sunt incarcate initial in memorie.
Cele mai multe instrumente de procesare in-memory folosesc algoritmi de
compresie care reduc dimensiunea de datelor stocate. Utilizatorii interogheaza datele
incarcate in memoria sistemuli, evitandu-se astfel accesarea bazei de date care duce la
ingreunarea procesului. Acest lucru este diferit de lucrul cu memoria cache, o metoda
foarte utilizata pe scara larga pentr a accelera performantele de interogare, in care cache-
urile sunt zone de memorie in care sunt plasate subseturi de date. Utilizand instrumentele
de procesare in-memory, datele pentru analiza pot fi foarte mari, organizate in depozite
de date, concentrari de date sau depozite mai mici de date aflate in intregime in memorie.
Aceste structuri de date pot fi accesate in termen de cateva secunde de utilizatori
concurenti pentru diferite interogari. Teoretic exista o crestere a vitezei de acces la date
de la 10.000 la 1.000.000 de ori fata de accesarea si procesarea datelor aflate pe disc.
Factori care au determinat aparitia produselor de procesare in-memory sunt:
- aparitia hardware-ului mai ieftin si cu performante ridicate. Conform legii lui
Moore, puterea de calcul se dubleaza la fiecare doi sau trei ani, in timp ce
costurile scad. Inovatiile hardware, cum ar fi arhitectura multi-core, servere de
procesare paralela, capacitedea de procesare mai mare in memorie si aparitia
software-lui bazat pe baze de date orientat pe coloane si tehnici de compresie
si de manipulare a tabelelor agregate au condus la dezvoltarea tot mai
accentuata a produselor de procesare in-memory.
- Sistemele de operare pe 64 biti. Aparitia la scara tot mai larga a procesoarelor
puternice si a sistemelor de operare pe 64 biti a dus la dezvoltarea procesarii
in-memory. Sistemele de operare pe 64 biti permit accesul mult mai mult la
memoria RAM(pana la 100 GB RAM) fata de 2-4 GB RAM la sistemele pe
32 biti.
10
- Volumele mari de date nu mai pot fi salvate in depozite de date traditionale.
Procesele ETL care actualizeaza periodic depozitele de date pot dura de la
cateva ore pana la saptamani pentru volume foarte mari de date. Procesarea in
memorie faciliteaza accesul imediat la terabytes de date pentru raportarea in
timp real.
- Costuri reduse. Procesarea in-memory este disponibila pentru preturi relativ
mici, iar produsele pot fi usor instalate si intretinute in comparatie cu
produsele traditionale de BI. Conform unui sondaj Gartner, implementarea
solutiilor de BI traditionale poate dura 17 luni. Multi comercianti de produse
pentru realizarea depozitelor de date aleg implementarea procesarii in-
memory in schimbul BI traditional pentru a diminua timpul de implementare.
- Comerciantii de servicii de procesare in-memory ofera posibilitatea conectarii
la surse de date existente si pun la dispozitie tablouri de bord interactive
pentru utilizatori si analistii de business. Navigarea usoara si posibilitatea
realizarii rapide a diverselor interogari este un factor ce atrage multi
utilizatori.
Utilizand tehnologia de procesare in-memory sursa de date este accesata o singura
data in loc de accesarea acesteia la fiecare interogare, reducandu-se astfel sarcinii
serverelor de baze de date.
Securitatea trebuie sa fie tratata ca un punct foarte important in momentul
implementarii unei solutii de procesare in-memory, deoarece se expun cantitati imense de
date utilizatorilor finali. Trebuie sa se aiba grija cine are acces la aceste date, unde si cum
sunt aceste date stocate. Utilizatorii finali descarca volume imense de date pe calculatoare
proprii unde acestea pot fi modificate sau pierdute. Trebuie luate masuri pentru a asigura
accesul la date doar pentru utilizatorii autorizati.
Depozitele de date sunt folosite pentru a stoca volume mari de date pentru analiza.
Acestea colecteaza date dintr-o varietate de surse si stocheaza datele astfel incat sa fie
disponibile pentru o mare varietate de interogari. Potrivit unor arhitecturi, imediat dupa
ce datele sunt primite si prelucrate de un depozit de date, acestea sunt stocate intr-un
sistem de management al bazelor de date. De exemplu depozitul de date poate fi o
aplicatie software care opereaza pe unul sau mai multe computere. La diferite puncte de
timp in prelucrarea datelor, depozitul de date poate interfera cu un sistem de management
al bazelor de date pentru a stoca date intr-o anumita tabela. Tabelele accesate de
depozitul de date in momentul unei cereri sunt o tabela activa si tabela de log a
respectivei baze de date. Tabela activa poate stoca valori de date, care sunt curente, la un
anumit moment, pe cand, tabela de log stocheaza modalitatea in care datele au fost
schimbate in timp. O problema cu arhitectura prezentata o reprezinta interbalul de timp
asociat cu accesarea datelor stocate in tabelele sistemului de baze de date. De fiecare data
cand este primita o inregistrare, datele sunt citite din tabelul de date activ in baza de date
si incarcate in depozitul de date ce face cererea.
Procesarea in-memory a depozitelor de date presupune stocarea intr-o structura de
baze de date a datelor din depozite de date, aceste baze de date aflandu-se in memoria
RAM. Datele primite de la depozitul de date poti fi stocate intr-o coada si incarcate in
11
strucura de stocare a datelor in conformitate cu reguli prestabilite. Datele stocate sunt
asociate cu tranzactii in memorie, iar datele ce urmeaza a fi preluate sunt comparate cu
datele care au fost deja stocate. Se realizeaza astfel o mapare pentru asocierea cererilor
aplicate de depozitul de date cu tranzactiile de baze de date din memorie.
12
Aplicatia pentru depozite de date (301) poate stoca datele de la sursa de date(302)
folosind unul sau mai multe cereri de date(303). Fiecare cerere de stocare a datelor poate
avea atribuit un identificator unic(de exemplu un numar) de catre aplicatia pentru
depozitul de date(301). In acest exemplu, in baza de date din memorie(310) sunt stocate
datele din depozitul de date al aplicatiei (301) intr-o structura de tip coada(304). In acest
exemplu coada poate fi stocata ca o coloana din tabela, dar in alte exemple pot fi folosite
alte structuri pentru salvarea acesteia, cum ar fi tabele relationale sau obiecte. Prin
urmare, cele trei inregistrari din tabela 1 sunt stocate in coada de asteptare 304 dupa cum
se arata in tabelul 2, de mai jos. Transferul de date de la depozitul de date al aplicatiei
(301) la coada de mesaje(304) poate fi efectual utilizand o singura cerere de stocare a
datelor sau mai multe. In exemplul dat, cele trei inregistrari sunt stocate in coada folosind
o singura cerere, careia ii este atribuit un numar de cerere(CERERE =1). Pe masura ce
fiecare inregistrare din tabela este stocata in coada de asteptate, numarul de cerere care
produce inregistrarea se inregistraza in tabelul 2.
Request Record number Customer Amount Recort mode
1 1 Abc co 10 New
1 2 Xyz co 5 New
1 3 Aaa co 6 New
Tabelul 2.
Baza de date din memorie(310) mai include o strucura de stocare a datelor(305).
In acest exemplu, aceasta structura de stocare(305) este de asemenea un tabel. Tabelul 3
arata schema pentru strucutura de stocare 305. Pentru motive ilustrative, tabelul 3 este
prezentat initial ca fiind gol:
Customer Amount $cid_from$ $cid_to$
Tabelul 3.
Structura de stocare 305 poate stoca valori de la inregistrarile de date primite de la
aplicatia pentru depozitul de date(301), de exemplu coloanele client si suma au fost
preluate. Inregistrarile de date primite de la aplicatia pentru depozitul de date pot fi de
asemena manipulate folosinduse reguli de codficare (351). Campul $cid_from$ din
tabelul 3 stocheaza o valoare unica in baza de date din memorie(305). Deoarece datele
sunt stocate intr-o structura de date, numarul de tranzactie care a cauzat stocarea datelor
va fi stocat in campul „$cid_from$”. Campul $cid_to$ salveaza in tabela un identificator
unic cauzat de modificarea in structura de stocare(305) a datelor existente. Modificari pot
sa apara cand noi valori pentru datele stocate existente sunt inregistrat sau cand sunt
sterse o parte din date. In consecinta, datele sunt valide la numarul de tranzactie din
campul „from” pentru toate tranzactiile de baze de date din memorie, pana la numarul de
tranzactie din campul „to”.Semnul $ indica faptul ca aceste campuri poti fi ascune in
unele implementari.
Baza de date din memorie(310) include o structura de date de cartografiere,
mapare(306) care poate fi reprezentata tot printr-o tabela -> tabela 4.
Request $cid_from$
Tabelul 4.
Atunci cand datele sunt transferate de la coada(304) la structura de stocare(305),
306 asociaza cererile realizate de aplicatia pentru depozitul de date (301) cu tranzactiile
realizate in baza de date stocata in memorie(305). In acest exemplu, 306, mapping
include un camp „request” si unul „$cid_from$”. Campul „request”retine „request
13
number” din depozitul de date asociat cu fiecare record din coada de mesaje. Aceste
informatii pot fi utilizate pentru a furniza depozitului de date datele modificate.
In unele implementari, datele poti fi transferate de la coada de asteptare (304) la
structura de stocare(305) ca raspuns la un semnal extern, cum ar fi semnalul de
activare(350) care este primit in baza de date din memorie de la depozitul de date al
aplicatiei pentru a comite o cerere asupra datelor aflate in baza de date din memorie.
Concluzii
14
Bibliografie
http://www.accenture.com/us-en/blogs/analytics/archive/2012/11/01/how-the-data-
warehouse-evolved-into-in-memory-hana.aspx
http://en.wikipedia.org/wiki/In-Memory_Processing
http://www.freepatentsonline.com/20120259809.pdf
http://www.freepatentsonline.com/y2012/0259809.html
http://www.editurauranus.ro/marketing-online/12/pdf/4.pdf
http://www.cio.com.au/article/373945/in-memory_computing/
andrei.clubcisco.ro/.../f/f.../Depozite_de_date.ppt
http://www54.sap.com/solutions/tech/data-warehousing/software/netweaver-business-
warehouse/index.html
http://msdn.microsoft.com/en-us/library/aa178261(v=sql.80).aspx
15