O dimensiune este o structură care clasifică fapte și măsuri pentru a le permite utilizatorilor să răspundă la întrebările de afaceri. Dimensiunile utilizate în mod obișnuit sunt oamenii, produsele, locul și timpul.
Într-un depozit de date, dimensiunile oferă informații structurate de etichetare pentru măsurile numerice altfel neordonate. Dimensiunea este un set de date compus din elemente de date individuale, care nu se suprapun. Funcțiile principale ale dimensiunilor sunt triple: să ofere filtrare, grupare și etichetare.
Aceste funcții sunt adesea descrise ca „slice and dice”. Slice (tăierea) se referă la filtrarea datelor. Dicing (cubarea) se referă la gruparea datelor. Un exemplu comun de depozit de date implică vânzările ca măsură, cu clientul și produsul ca dimensiuni. În fiecare vânzare un client cumpără un produs. Datele pot fi împărțite prin eliminarea tuturor clienților, cu excepția unui grup aflat în studiu, apoi pot fi împărțite prin gruparea după produs.
Un element de date dimensional este similar cu o variabilă categorială din statistici.
De obicei, dimensiunile dintr-un depozit de date sunt organizate intern în una sau mai multe ierarhii. „Data” este o dimensiune comună, cu mai multe ierarhii posibile:
- „Zile (sunt grupate în) Luni (care sunt grupate în) Ani”,
- „Zile (sunt grupate în) Săptămâni (care sunt grupate în) Ani”
- „Zile (sunt grupate în) Luni (care sunt grupate în) Trimestre (care sunt grupate în) Ani”
- etc.
Tipuri
Dimensiune conformată
O dimensiune conformată este un set de atribute de date care au fost referite fizic în mai multe tabele de baze de date folosind aceeași valoare cheie pentru a se referi la aceeași structură, atribute, valori de domeniu, definiții și concepte. O dimensiune conformată trece peste multe fapte.
Dimensiunile sunt conformate atunci când fie sunt exact aceleași (inclusiv cheile), fie una este un subset perfect al celeilalte. Cel mai important, anteturile de rând produse în două seturi de răspunsuri diferite din aceeași dimensiune conformată trebuie să se potrivească perfect.
Dimensiunile conformate sunt fie subseturi matematice identice, fie stricte ale dimensiunii celei mai granulare și detaliate. Tabelele de dimensiuni nu sunt conformate dacă atributele sunt etichetate diferit sau conțin valori diferite. Dimensiunile conformate vin în mai multe arome diferite. La cel mai nivel de bază, dimensiunile conformate înseamnă exact același lucru cu fiecare tabel de fapte posibil căreia îi sunt asociate. Tabelul cu dimensiunea datei conectat la datele despre vânzări este identic cu dimensiunea date conectată la datele despre inventar.
Dimensiune reziduală
O dimensiune reziduală (junk) este o grupare convenabilă de steaguri și indicatori de cardinalitate scăzută. Prin crearea unei dimensiuni abstracte, aceste semnalizatoare și indicatori sunt eliminate din tabelul de fapte în timp ce le plasează într-un cadru dimensional util. Un parametru rezidual este un tabel de dimensiuni format din atribute care nu aparțin tabelului de fapte sau niciunuia dintre tabelele de dimensiuni existente. Natura acestor atribute este de obicei text sau diferite steaguri, de ex. comentarii negenerice sau pur și simplu indicatori da/nu sau adevărat/fals. Aceste tipuri de atribute rămân în mod obișnuit atunci când toate dimensiunile evidente din procesul de afaceri au fost identificate și, astfel, designerul se confruntă cu provocarea de a pune aceste atribute care nu aparțin celorlalte dimensiuni.
O soluție este crearea unei noi dimensiuni pentru fiecare dintre atributele rămase, dar din cauza naturii lor, ar putea fi necesar să se creeze un număr mare de dimensiuni noi, rezultând un tabel de fapte cu un număr foarte mare de chei străine. Designerul ar putea decide, de asemenea, să lase atributele rămase în tabelul de fapte, dar acest lucru ar putea face ca lungimea rândului tabelului să fie inutil de mare dacă, de exemplu, atributele sunt un șir de text lung.
Soluția la această provocare este să identificați toate atributele și apoi să le puneți într-una sau mai multe dimensiuni . O dimensiune reziduală poate conține mai mulți indicatori adevărat/fals sau da/nu care nu au nicio corelație între ei, așa că ar fi convenabil să convertiți indicatorii într-un atribut mai descriptiv. Un exemplu ar fi un indicator despre dacă un pachet a sosit, în loc să indice acest lucru ca „da” sau „nu”, ar fi convertit în „a sosit” sau „în așteptare” în dimensiunea nedorită. Proiectantul poate alege să construiască tabelul de dimensiuni, astfel încât să ajungă să păstreze toți indicatorii care apar cu fiecare alt indicator, astfel încât toate combinațiile să fie acoperite. Aceasta setează o dimensiune fixă pentru tabel în sine, care ar fi de 29 de rânduri, unde x este numărul de indicatori. Această soluție este potrivită în situațiile în care designerul s-ar aștepta să întâmpine o mulțime de combinații diferite și în care combinațiile posibile sunt limitate la un nivel acceptabil. Într-o situație în care numărul de indicatori este mare, creând astfel un tabel foarte mare sau în care designerul se așteaptă să întâlnească doar câteva dintre combinațiile posibile, ar fi mai potrivit să construiți fiecare rând în dimensiunea reziduală pe măsură ce sunt întâlnite noi combinații . Pentru a limita dimensiunea tabelelor, mai multe dimensiuni reziduale ar putea fi adecvate în alte situații, în funcție de corelația dintre diferiți indicatori.
Dimensiunile reziduale sunt, de asemenea, adecvate pentru plasarea atributelor, cum ar fi comentariile negenerice din tabelul de fapte. Astfel de atribute pot consta în date dintr-un câmp opțional de comentariu atunci când un client plasează o comandă și, în consecință, va fi probabil necompletat în multe cazuri. Prin urmare, dimensiunea reziduală ar trebui să conțină un singur rând reprezentând spațiile libere ca o cheie surogat care va fi utilizată în tabelul de fapte pentru fiecare rând returnat cu un câmp de comentariu necompletat.
Dimensiune degenerată
O dimensiune degenerată este o cheie, cum ar fi un număr de tranzacție, un număr de factură, un număr de bilet sau un număr de conosament, care nu are atribute și, prin urmare, nu se alătură unui tabel de dimensiuni real. Parametrii degenerați sunt foarte frecvenți atunci când granulația unui tabel de fapte reprezintă un singur element de tranzacție sau un singur element rând, deoarece dimensiunea degenerată reprezintă identificatorul unic al părintelui. Dimensiunile degenerate joacă adesea un rol esențial în cheia primară a tabelului de fapte.
Dimensiunea jocului de rol
Dimensiunile sunt adesea reciclate pentru mai multe aplicații în cadrul aceleiași baze de date. De exemplu, o dimensiune „Dată” poate fi utilizată pentru „Data vânzării”, precum și „Data livrării” sau „Data închirierii”. Aceasta este adesea denumită „dimensiunea jocului de rol”.
Utilizarea termenilor de reprezentare ISO
Când se face referire la date dintr-un registru de metadate, cum ar fi ISO/IEC 11179, termenii de reprezentare precum Indicator (o valoare booleană adevărat/fals), Cod (un set de valori enumerate care nu se suprapun) sunt de obicei utilizați ca dimensiuni. De exemplu, folosind modelul național de schimb de informații (NIEM), numele elementului de date ar fi PersonGenderCode, iar valorile enumerate ar fi masculin, feminin și necunoscut.
Tabel de dimensiuni
În depozitul de date, un tabel de dimensiuni este unul dintre seturile de tabele însoțitoare ale unui tabel de fapte.
Tabelul de fapte conține fapte de afaceri (sau măsuri) și chei externe care se referă la chei candidate (în mod normal chei primare) în tabelele de dimensiuni.
Spre deosebire de tabelele de fapte, tabelele de dimensiuni conțin atribute descriptive (sau câmpuri) care sunt de obicei câmpuri textuale (sau numere discrete care se comportă ca text). Aceste atribute sunt concepute pentru a servi două scopuri esențiale: constrângerea și/sau filtrarea interogărilor și etichetarea setului de rezultate ale interogărilor.
Atributele dimensiune ar trebui să fie:
- Prolix (etichete formate din cuvinte întregi)
- Descriptiv
- Complet (fără valori lipsă)
- Evaluat discret (având o singură valoare pe rând de tabel de dimensiuni)
- Calitate asigurată (fără greșeli de ortografie sau valori imposibile)
Rândurile din tabelul de dimensiuni sunt identificate în mod unic printr-un singur câmp cheie. Se recomandă ca acel câmp cheie să fie un număr întreg simplu, deoarece o valoare cheie este lipsită de sens, folosită numai pentru unirea câmpurilor între tabelele cu fapte și dimensiuni. Tabelele de dimensiuni folosesc adesea chei primare care sunt și chei surogat. Cheile surogat sunt adesea generate automat (de exemplu, o „coloană de identitate” Sybase sau SQL Server, un serial PostgreSQL sau Informix, o SEQUENCE Oracle sau o coloană definită cu AUTO_INCRE-MENT în MySQL).
Utilizarea cheilor de dimensiune surogat aduce mai multe avantaje, inclusiv:
- Performanță. Procesarea unirii este mult mai eficientă prin utilizarea unui singur câmp (cheia surogat)
- Buffering față de practicile operaționale de gestionare a cheilor. Acest lucru previne situațiile în care rândurile de date eliminate ar putea reapărea atunci când cheile lor naturale sunt reutilizate sau reatribuite după o perioadă lungă de repaus.
- Cartografiere pentru a integra surse disparate
- Manevrarea conexiunilor necunoscute sau neaplicabile
- Urmărirea modificărilor valorilor atributelor parametrului
Deși utilizarea cheii surogat pune o povară asupra sistemului ETL, procesarea pipeline poate fi îmbunătățită, iar instrumentele ETL au încorporat o procesare îmbunătățită a cheilor surogat.
Scopul unui tabel de dimensiuni este de a crea dimensiuni standardizate, conformate, care pot fi partajate în mediul de depozit de date al întreprinderii și să permită conectarea la mai multe tabele de fapte reprezentând diferite procese de afaceri.
Dimensiunile conformate sunt importante pentru natura întreprinderii a sistemelor DW/BI, deoarece promovează:
- Consecvență. Fiecare tabel de fapte este filtrat în mod consecvent, astfel încât răspunsurile la interogare să fie etichetate în mod consecvent.
- Integrare. Interogările pot analiza în diferite tabele de fapte de proces separat pentru fiecare tabel de fapte individual, apoi pot să unească rezultatele pe atributele comune ale dimensiunii.
- Timpul de dezvoltare redus pe piață. Dimensiunile comune sunt disponibile fără a le recrea.
În timp, atributele unui rând dat dintr-un tabel de dimensiuni se pot schimba. De exemplu, adresa de expediere a unei companii se poate modifica. Kimball se referă la acest fenomen ca dimensiuni care se schimbă încet. Strategiile pentru a face față acestui tip de schimbare sunt împărțite în trei categorii:
- Tipul unu. Pur și simplu suprascrieți vechile valori.
- Tipul doi. Adăugați un rând nou care conține noile valori și faceți distincția între rânduri folosind tehnici de versiune Tuple.
- Tipul trei. Adăugați un nou atribut la rândul existent.
Modele comune
Data si ora
Deoarece multe tabele de fapte dintr-un depozit de date sunt serii cronologice de observații, sunt adesea necesare unul sau mai multe dimensiuni de date. Unul dintre motivele pentru a avea dimensiuni ale datei este plasarea cunoștințelor de calendar în depozitul de date în loc să fie codificate într-o aplicație. În timp ce un simplu marcaj de dată/ora SQL este util pentru a furniza informații exacte despre momentul în care a fost înregistrat un fapt, nu poate să ofere informații despre sărbători, perioade fiscale etc. deoarece permite calcule precise.
Având atât data, cât și ora zilei în aceeași dimensiune, poate duce cu ușurință la o dimensiune uriașă cu milioane de rânduri. Dacă este nevoie de o cantitate mare de detalii, este de obicei o idee bună să împărțiți data și ora în două sau mai multe dimensiuni separate. O dimensiune de timp cu câteva secunde într-o zi va avea doar 86400 de rânduri. În funcție de necesități, se poate alege o granulație mai mult sau mai puțin detaliată pentru dimensiunile dată/ora. De exemplu, parametrii de dată pot fi exacti la an, trimestru, lună sau zi, iar parametrii de timp pot fi exacti la ore, minute sau secunde.
Ca regulă generală, dimensiunea oră a zilei ar trebui creată numai dacă sunt necesare grupări ierarhice sau dacă există descrieri textuale semnificative pentru perioade de timp din timpul zilei (de exemplu, „alergarea de seară” sau „primul schimb”).
Dacă rândurile dintr-un tabel de fapte provin din mai multe fusuri orare, ar putea fi util să stocați data și ora atât la ora locală, cât și la ora standard. Acest lucru se poate face dacă aveți două dimensiuni pentru fiecare parametru de dată/ora necesar – unul pentru ora locală și unul pentru ora standard. Stocarea datei/orei atât la ora locală, cât și la cea standard, va permite analiza momentului în care sunt create faptele într-un cadru local și într-o setare globală. Ora standard aleasă poate fi o oră standard globală (de ex. UTC), poate fi ora locală a sediului companiei sau orice alt fus orar care ar avea sens de utilizat.
Sursa: Drew Bentley, Business Intelligence and Analytics. © 2017 Library Press, Licență CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu
Lasă un răspuns