schema types data warehouse modeling star snowflake schema
Acest tutorial explică diferite tipuri de scheme de depozit de date. Aflați ce este schema stelară și schema fulgului de zăpadă și diferența dintre schema stelei și schema fulgului de zăpadă:
In acest Tutoriale Data Warehouse pentru începători , am avut o privire în profunzime Model de date dimensionale în Data Warehouse în tutorialul nostru anterior.
În acest tutorial, vom afla totul despre schemele de depozitare de date care sunt utilizate pentru a structura tabele de date marts (sau) de depozite de date.
ce mașini virtuale desktop rulează pe sistemul de operare Windows
Să începem!!
Public țintă
- Depozite de date / dezvoltatori și testeri ETL.
- Profesioniști în baze de date cu cunoștințe de bază despre conceptele bazelor de date.
- Administratori de baze de date / experți în big data care doresc să înțeleagă zonele Data warehouse / ETL.
- Absolvenți de colegiu / Freshers care caută locuri de muncă în depozit de date.
Ce veți învăța:
Schema de depozit de date
Într-un depozit de date, o schemă este utilizată pentru a defini modul de organizare a sistemului cu toate entitățile bazei de date (tabele de date, tabele de dimensiuni) și asocierea lor logică.
Iată diferitele tipuri de scheme din DW:
- Program de stele
- Schema SnowFlake
- Diagrama Galaxy
- Schema clusterului stelar
# 1) Program de stele
Aceasta este cea mai simplă și mai eficientă schemă dintr-un depozit de date. Un tabel de informații din centru înconjurat de tabele cu mai multe dimensiuni seamănă cu o stea din modelul Schema stelelor.
Tabelul de informații menține relații de la unu la mai multe cu toate tabelele de dimensiuni. Fiecare rând dintr-un tabel de date este asociat cu rândurile sale din tabelul de dimensiuni cu o referință de cheie străină.
Datorită motivului de mai sus, navigarea printre tabelele din acest model este ușoară pentru interogarea datelor agregate. Un utilizator final poate înțelege cu ușurință această structură. Prin urmare, toate instrumentele Business Intelligence (BI) acceptă foarte mult modelul de schemă Star.
În timp ce proiectăm scheme de stele, tabelele de dimensiuni sunt deznormalizate în mod intenționat. Acestea sunt largi, cu multe atribute pentru a stoca datele contextuale pentru o mai bună analiză și raportare.
Avantajele schemei stea
- Interogările utilizează îmbinări foarte simple în timp ce preiau datele și, prin urmare, performanța interogării este crescută.
- Este simplu să preluați date pentru raportare, în orice moment al perioadei.
Dezavantaje ale schemei stelare
- Dacă există multe modificări ale cerințelor, schema stelară existentă nu este recomandată pentru modificarea și reutilizarea pe termen lung.
- Redundanța datelor este mai mult, deoarece tabelele nu sunt împărțite ierarhic.
Un exemplu de schemă stelară este dat mai jos.
Interogarea unei scheme stea
Un utilizator final poate solicita un raport folosind instrumentele Business Intelligence. Toate aceste solicitări vor fi procesate prin crearea unui lanț de „interogări SELECT” la nivel intern. Efectuarea acestor interogări va avea un impact asupra timpului de execuție a raportului.
Din exemplul schemei Star de mai sus, dacă un utilizator de afaceri dorește să știe câte romane și DVD-uri au fost vândute în statul Kerala în ianuarie 2018, atunci puteți aplica interogarea după cum urmează pe tabelele schemei Star:
SELECT pdim.Name Product_Name, Sum (sfact.sales_units) Quanity_Sold FROM Product pdim, Sales sfact, Store sdim, Date ddim WHERE sfact.product_id = pdim.product_id AND sfact.store_id = sdim.store_id AND sfact.date_id = ddim.date_id AND sdim.state = 'Kerala' AND ddim.month = 1 AND ddim.year = 2018 AND pdim.Name in (‘Novels’, ‘DVDs’) GROUP BY pdim.Name
Rezultate:
Numele produsului | Cantitate vândută | |
---|---|---|
7 | Oricine poate înțelege și proiecta cu ușurință schema. | Este greu să înțelegi și să concepi schema. |
Romane | 12.702 | |
DVD-uri | 32.919 |
Sper că ați înțeles cât de ușor este să interogați o schemă stelară.
# 2) Schema SnowFlake
Schema stelară acționează ca o intrare pentru a proiecta o schemă SnowFlake. Fulgerea zăpezii este un proces care normalizează complet toate tabelele de dimensiuni dintr-o schemă stelară.
Aranjamentul unui tabel de fapte în centru înconjurat de mai multe ierarhii ale tabelelor de dimensiuni arată ca un SnowFlake în modelul de schemă SnowFlake. Fiecare rând de tabel de date este asociat cu rândurile sale de tabele de dimensiuni cu o referință de cheie străină.
În timpul proiectării schemelor SnowFlake, tabelele de dimensiuni sunt normalizate în mod intenționat. Cheile străine vor fi adăugate la fiecare nivel al tabelelor de dimensiuni pentru a face legătura cu atributul părinte. Complexitatea schemei SnowFlake este direct proporțională cu nivelurile ierarhice ale tabelelor de dimensiuni.
Avantajele schemei SnowFlake:
- Redundanța datelor este complet eliminată prin crearea de noi tabele de dimensiuni.
- În comparație cu schema stelară, tabelele de dimensiuni Snow Flaking utilizează mai puțin spațiu de stocare.
- Este ușor să actualizați (sau) să întrețineți tabelele Snow Flaking.
Dezavantaje ale schemei SnowFlake:
- Datorită tabelelor de dimensiuni normalizate, sistemul ETL trebuie să încarce numărul de tabele.
- Este posibil să aveți nevoie de îmbinări complexe pentru a efectua o interogare din cauza numărului de tabele adăugate. Prin urmare, performanța interogării va fi degradată.
Un exemplu de schemă SnowFlake este dat mai jos.
Tabelele de dimensiuni din diagrama SnowFlake de mai sus sunt normalizate așa cum se explică mai jos:
- Dimensiunea de dată este normalizată în tabele trimestriale, lunare și săptămânale, lăsând coduri de chei străine în tabelul de date.
- Dimensiunea magazinului este normalizată pentru a cuprinde tabelul pentru State.
- Dimensiunea produsului este normalizată în Marcă.
- În dimensiunea Client, atributele conectate la oraș sunt mutate în noua tabelă Oraș, lăsând un ID de cheie străină în tabela Clienți.
În același mod, o singură dimensiune poate menține mai multe niveluri de ierarhie.
Diferitele niveluri de ierarhii din diagrama de mai sus pot fi menționate după cum urmează:
- ID-ul trimestrial, ID-ul lunar și ID-urile săptămânale sunt noile chei surogate care sunt create pentru ierarhiile dimensiunii date și care au fost adăugate ca chei străine în tabelul dimensiunii date.
- ID-ul de stat este noua cheie surogat creată pentru ierarhia dimensiunilor magazinului și a fost adăugată ca cheie externă în tabelul dimensiunilor magazinului.
- Identificarea mărcii este noua cheie surogat creată pentru ierarhia dimensiunii produsului și a fost adăugată ca cheie externă în tabelul dimensiunii produsului.
- ID-ul orașului este noua cheie surogat creată pentru ierarhia dimensiunii clientului și a fost adăugată ca cheie externă în tabelul dimensiunii clientului.
Interogarea unei scheme de fulgi de zăpadă
Putem genera același tip de rapoarte pentru utilizatorii finali ca și structurile schemelor stelare și cu schemele SnowFlake. Dar interogările sunt cam complicate aici.
Din exemplul de schemă SnowFlake de mai sus, vom genera aceeași interogare pe care am proiectat-o în timpul exemplului de interogare a schemei Star.
Asta dacă un utilizator de afaceri dorește să știe câte romane și DVD-uri au fost vândute în statul Kerala în ianuarie 2018, puteți aplica interogarea după cum urmează pe tabelele de schemă SnowFlake.
SELECT pdim.Name Product_Name, Sum (sfact.sales_units) Quanity_Sold FROM Sales sfact INNER JOIN Product pdim ON sfact.product_id = pdim.product_id INNER JOIN Store sdim ON sfact.store_id = sdim.store_id INNER JOIN State stdim ON sdim.state_id = stdim.state_id INNER JOIN Date ddim ON sfact.date_id = ddim.date_id INNER JOIN Month mdim ON ddim.month_id = mdim.month_id WHERE stdim.state = 'Kerala' AND mdim.month = 1 AND ddim.year = 2018 AND pdim.Name in (‘Novels’, ‘DVDs’) GROUP BY pdim.Name
Rezultate:
Numele produsului | Cantitate vândută |
---|---|
Romane | 12.702 |
DVD-uri | 32.919 |
Puncte de reținut în timpul interogării tabelelor de schemă Star (sau) SnowFlake
Orice interogare poate fi proiectată cu structura de mai jos:
Clauza SELECT:
- Atributele specificate în clauza select sunt afișate în rezultatele interogării.
- Instrucțiunea Select folosește, de asemenea, grupuri pentru a găsi valorile agregate și, prin urmare, trebuie să folosim clauza grup prin clauză în condiția unde.
Clauza FROM:
- Toate tabelele esențiale și tabelele de dimensiuni trebuie alese în funcție de context.
Clauza unde:
- Atributele de dimensiune adecvate sunt menționate în clauza unde prin asocierea cu atributele tabelului de date. Cheile surogate din tabelele de dimensiuni sunt unite cu cheile străine respective din tabelele de date pentru a stabili intervalul de date care trebuie solicitat. Vă rugăm să consultați exemplul de interogare a schemei stelelor scrise mai sus pentru a înțelege acest lucru. Puteți, de asemenea, să filtrați datele din clauza from în sine dacă în cazul în care utilizați îmbinări interioare / exterioare acolo, așa cum este scris în exemplul schemei SnowFlake.
- Atributele de dimensiune sunt menționate și ca constrângeri asupra datelor în clauza unde.
- Prin filtrarea datelor cu toți pașii de mai sus, datele corespunzătoare sunt returnate pentru rapoarte.
În funcție de nevoile companiei, puteți adăuga (sau) elimina faptele, dimensiunile, atributele și constrângerile la o schemă stea (sau) interogare schemă SnowFlake urmând structura de mai sus. De asemenea, puteți adăuga subinterogări (sau) îmbina rezultate diferite ale interogării pentru a genera date pentru rapoarte complexe.
# 3) Diagrama Galaxy
O schemă de galaxii este, de asemenea, cunoscută sub numele de Schema de constelație a faptelor. În această schemă, mai multe tabele de fapt împărtășesc aceleași tabele de dimensiuni. Aranjamentul tabelelor de date și al tabelelor de dimensiuni arată ca o colecție de stele în modelul schemei Galaxy.
Dimensiunile partajate din acest model sunt cunoscute sub numele de dimensiuni conforme.
Acest tip de schemă este utilizat pentru cerințe sofisticate și pentru tabele de date agregate care sunt mai complexe pentru a fi acceptate de schema Star (sau) schema SnowFlake. Această schemă este dificil de întreținut datorită complexității sale.
Un exemplu de Galaxy Schema este dat mai jos.
# 4) Schema clusterului de stele
O schemă SnowFlake cu multe tabele de dimensiuni poate necesita îmbinări mai complexe în timpul interogării. O schemă stea cu mai puține tabele de dimensiuni poate avea mai multă redundanță. Prin urmare, o schemă de cluster stelar a intrat în imagine prin combinarea caracteristicilor celor două scheme de mai sus.
Schema stelară este baza pentru a proiecta o schemă de cluster stelar și câteva tabele de dimensiuni esențiale din schema stelară sunt fulgi de zăpadă și aceasta, la rândul său, formează o structură a schemei mai stabilă.
Un exemplu de schemă Star Cluster este dat mai jos.
Care este mai bună schema fulgului de zăpadă sau schema stea?
Platforma de depozitare a datelor și instrumentele BI utilizate în sistemul DW vor juca un rol vital în luarea în considerare a schemei adecvate care urmează să fie proiectată. Star și SnowFlake sunt cele mai frecvent utilizate scheme în DW.
Schema de stele este preferată dacă instrumentele BI permit utilizatorilor de afaceri să interacționeze cu ușurință cu structurile de tabel cu interogări simple. Schema SnowFlake este preferată dacă instrumentele BI sunt mai complicate pentru utilizatorii de afaceri să interacționeze direct cu structurile de tabel datorită mai multor îmbinări și interogări complexe.
Puteți continua schema SnowFlake fie dacă doriți să economisiți spațiu de stocare, fie dacă sistemul DW are instrumente optimizate pentru a proiecta această schemă.
Schema stelelor vs schema fulgului de zăpadă
Prezentate mai jos sunt diferențele cheie dintre schema Star și schema SnowFlake.
S. Nu | Program de stele | Schema fulgului de zăpadă |
---|---|---|
1 | Redundanța datelor este mai mare. | Redundanța datelor este mai mică. |
Două | Spațiul de stocare pentru tabelele de dimensiuni este mai mare. | Spațiul de stocare pentru tabelele de dimensiuni este relativ mai mic. |
3 | Conține tabele de dimensiuni denormalizate. | Conține tabele de dimensiuni normalizate. |
4 | Tabelul cu un singur fapt este înconjurat de tabele cu mai multe dimensiuni. | Tabelul de fapt unic este înconjurat de mai multe ierarhii ale tabelelor de dimensiuni. |
5 | Interogările folosesc îmbinări directe între fapt și dimensiuni pentru a prelua datele. | Interogările folosesc îmbinări complexe între fapt și dimensiuni pentru a prelua datele. |
6 | Timpul de executare a interogării este mai mic. | Timpul de executare a interogării este mai mare. |
8 | Folosește abordarea de sus în jos. | Folosește abordarea de jos în sus. |
Concluzie
Sperăm că ați înțeles bine diferitele tipuri de scheme de stocare a datelor, împreună cu beneficiile și dezavantajele acestora din acest tutorial.
Am aflat, de asemenea, cum pot fi interogate Star Schema și SnowFlake Schema și ce schemă trebuie să aleagă între aceste două împreună cu diferențele lor.
Fiți la curent cu următorul nostru tutorial pentru a afla mai multe despre Data Mart în ETL !!
=> Urmăriți aici seria de instruire pentru depozitarea datelor simple.
Lectură recomandată
- Tipuri de date Python
- Tipuri de date C ++
- Tutorial privind testarea depozitului de date cu exemple | Ghid de testare ETL
- Top 10 instrumente populare de stocare a datelor și tehnologii de testare
- Model de date dimensionale în Data Warehouse - Tutorial cu exemple
- Tutorial de testare a depozitului de date ETL (ghid complet)
- Ce este procesul ETL (Extract, Transform, Load) în Data Warehouse?
- Data Mining: Proces, tehnici și probleme majore în analiza datelor