Ei bine, pe proiectul actual de DWH avem “garbage in” (date de calitate proastă din sistemul operaţional), avem “garbage out”(rapoarte eronate) şi mai avem ceva: flux ETL care citeşte din sistemul operaţional, aduce datele la noi in DWH, le transformă şi apoi actualizează înapoi datele în sistemul operaţional 😮 !
Daaaaaa….seamănă cu circuitul apei în natura. Singura problemă este că doar apa poate face asta fară “side effects”! Vorbind de efecte secundare, să vedem cam ce s-ar putea întampla:
- actualizăm din greşeală mai mult decat vrem, cu date greşite, etc.
- pt că nu ştim care sunt interdependenţele în sistemul operaţional, nu ştim unde anume în alta parte se propaga actualizarea noastră (poate de exemplu, exista nişte trigeri care actualizează şi alte tabele…)
- poate ca atunci cand noi actualizăm, cineva lucrează folosind o interfaţă(care trimite date in aceeaşi tabelă) şi apoi cand dă refresh, surpriză, apar nişte modificari pe care nu şi le poate explica…ta da :)))
Adăugam la ce e mai sus faptul că pe soluţia actuală nu putem spune în nici un fel că modificarea vine din DWH şi gata, am obtinut spaghete, nu DWH :))
Parcă scopul unui DWH era sa avem o sursa centralizată de date pe care sa ne putem baza in luarea deciziilor.
Acum, stau eu şi ma gandesc (asta dureaza ceva), poate oi fi eu mai fricoasă, hai sa fiu şi eu flexibila, să discut, să inteleg…măcar să definim nişte procese astfel încat lumea sa înteleaga ce se întampla, să fie documentat şi clar pt toţi.
Discut cu colegul meu care dupa ce m-a ascultat liniştit, a răspuns că nu ne-ar ajuta cu nimic nici macar să definim nişte procese pt că tot aşa am acţiona doar că va fi mai multa birocraţie…
Well, true… doar că procesele astea au şi ele un scop… greu de explicat, trebuie sa ma gandesc si deocamdata sunt blocata de uimire…doar asta pot spune:
Sunt motive importante pt care bucătăria este diferită de toaletă.
In general, ţine de igienă şi de tot ce s-ar putea întampla dacă am face totul într-un singur loc…
Nevoia de a face modificări înapoi în sistemele operaţionale clar există. Şi printre atributiile unui DWH este sa identifice erorile în datele provenite din sistemele sursă. Apoi, se setează un proces prin care datele din sistemele operaţionale sunt actualizate şi gata. Dar e greşit să le actualizăm direct din DWH! Asta e parerea mea.
De ce să nu le trimitem datele înapoi lor, celor care au grijă de sistemele operaţionale şi ei de acolo, să facă corecţiile necesare? Teoria DHW e de partea mea, datele curg tot timpul de la sursă către stage, target, data mart.
Pingback: Should we be the same? – Nebe