Partitioning în DWH: când 3 ani de date sunt prea mulți
Range partitioning pe fact table de 800 milioane rânduri: de la query-uri trimestriale de 12 minute la 40 de secunde. Implementare lunară, exchange.

Articole Data Warehouse: modelare dimensională Kimball, SCD Tip 2, fact table grain, bus matrix, range partitioning, ragged hierarchy și ETL practici.
Am văzut data warehouse-uri construite pe granularitate zilnică pentru că “business-ului îi e bine așa” — și devenind inutile a doua zi, când marketingul a cerut analiza orară a conversiilor. Am văzut dimensiuni client fără istoricizare, care suprascriau codul poștal de fiecare dată când cineva se muta — și rapoarte de acum un an care nu mai ieșeau la fel. Am văzut ETL-uri care încărcau 200 de milioane de rânduri în full în fiecare noapte pentru că nimeni nu avusese niciodată curajul să reproiecteze delta-ul.
Și am văzut exact opusul: data marts mici, bine modelate, cu bus matrix-ul desenat corect — care răspund la întrebări pe care nimeni nu se gândise încă să le pună, fără să se atingă o singură linie de cod.
Diferența nu a fost niciodată tehnologia. A fost întotdeauna modelul.
Un data warehouse nu este o bază de date cu tabele mai mari. Este un mod diferit de a gândi datele — orientat spre analiză, istorie, decizii.
În bazele de date tranzacționale contează momentul prezent: comanda pe care o inserezi, soldul curent, rândul pe care îl actualizezi. Într-un data warehouse contează traseul: cum era acel client acum șase luni, cum s-a schimbat produsul în timp, care versiune a nomenclatorului era validă când a fost emis acel contract.
Aproape întotdeauna, DWH-ul care nu rezistă se recunoaște după aceste lucruri:
Sunt probleme pe care în dezvoltare nu le vezi. Explodează după șase luni, când business-ul cere rapoarte pe care modelul nu le poate susține.
Înainte chiar să desenez o tabelă de fapte, sunt cinci întrebări pe care le pun business-ului. Nu sunt opționale — sunt diferența între un data warehouse care durează zece ani și unul care trebuie rescris după doi.
| Întrebare | Ce încerc să înțeleg | De ce e critică |
|---|---|---|
| La ce granularitate ai nevoie de date? | Zilnică, orară, tranzacție individuală | Alege întotdeauna granularitatea minimă utilă — se poate agrega după, dezagrega nu |
| Cât de departe în timp? | Istoria necesară, profunzime analitică | Definește volume, stocare, strategii de partiționare și arhivare |
| Ce se întâmplă când se schimbă un nomenclator? | Client care se mută, produs care schimbă categoria | Determină tipul de SCD (1, 2, 3, 6) pentru fiecare dimensiune |
| Ce ierarhii trebuie să susțină? | Drill-down, roll-up, căi alternative | Evită dimensiuni ragged, snowflake nejustificate, join-uri lente pe agregări |
| Care e latența acceptabilă? | Batch nocturn, intraday, near real-time | Schimbă tot: ETL, model, infrastructură, cost |
Cinci întrebări. Douăzeci de minute de ședință. Săptămâni de rescrieri evitate.
Povești reale de proiectare și restructurare de data warehouse-uri în producție. Modelare dimensională (Kimball citit cu cap, nu pe sloganuri), slowly changing dimensions, bus matrix, ierarhii, strategii de încărcare incrementală și performanță analitică.
Fără rețete de manual. Doar soluții aplicate pe sisteme reale — asigurări, finance, administrație publică, telco, postal — care servesc decizii de afaceri reale.
Un data warehouse nu se construiește pentru a conține date.
Se construiește pentru a răspunde la întrebări — și acele întrebări, inevitabil, se schimbă.

Bus matrix Kimball pentru alinierea data marts izolate: conformed dimensions, procese de business și vânzări comparabile. Caz real grup asigurări.

Range partitioning pe fact table de 800 milioane rânduri: de la query-uri trimestriale de 12 minute la 40 de secunde. Implementare lunară, exchange.

Ragged hierarchy în data warehouse: echilibrarea ierarhiilor dezechilibrate cu tehnica self-parenting. Drill-down corect pe clienți și grupuri.

SCD Tip 2 în data warehouse: istorizare dimensiuni cu chei surogat și date de valabilitate. Caz real: dimensiune clienți care evoluează în timp.

Data warehouse: granularitatea fact table determină ce întrebări poți răspunde. Greșeli frecvente în granularitate și impactul pe modelul dimensional.
Începe să scrii pentru a căuta…
Selectează un rezultat pentru previzualizare