Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

În acest tutorial, vom acoperi diferența cu privire la modul în care funcționează indexarea datelor într-o bază de date relațională față de Vertipaq.

Bazele de date relaționale stochează datele rând cu rând. Pe de altă parte, Vertipaq o face coloană cu coloană.

Să vedem cum aceste două moduri de stocare și indexare a datelor ar putea afecta procesul de dezvoltare a rapoartelor, mai ales atunci când rulați interogările.

Cuprins

Indexarea datelor pe rând

Stocarea datelor rând cu rând este modalitatea tradițională de stocare a datelor. Cu toate acestea, acest proces durează mai mult timp, ceea ce va afecta performanța interogării dvs.

Să presupunem că avem un tabel care conține marca, culoarea, sexul, cantitatea și prețul net.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

Dacă stocăm totul din acest tabel într-o bază de date, atunci va stoca datele rând cu rând. De aceea, structura tradițională de stocare a datelor este numită și magazin de rânduri.

În primul rând, în aceeași linie, va stoca anteturile de coloană găsite pe primul rând - Marca, Culoare, Sex, Cantitate și Preț net. Apoi trece la următoarea linie pentru a stoca primele elemente sub fiecare coloană - A. Datum, Azure, un gol, 1 și 103.2. Aceasta continuă rând cu rând.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

Deci, cum vom calcula SUMA folosind această metodă de indexare a datelor?

În primul rând, începe cu primul rând, care conține antetele coloanelor. Apoi, sare în următoarea linie și trece peste celelalte bucăți de date până când ajunge la prima cantitate pe care o vede, care este 1. Apoi sare de la linie la linie, trecând prin toate datele pe care le conține fiecare rând și adună toate cantitățile se găsesc.

Odată ce a pus deoparte toate cantitățile de pe fiecare rând, este singura dată când calculul este finalizat.

Vă puteți imagina probabil cât de obositor este procesul dacă pregătiți un raport LuckyTemplates care utilizează o conexiune DirectQuery la o sursă de date SQL. În acest caz, serviciile de analiză vor converti codul DAX în limbajul SQL, apoi vor începe să parcurgă structura datelor rând cu rând.

Indexarea datelor pe coloană

Pentru a evita procesul îndelungat implicat, aveți opțiunea de a stoca datele coloană cu coloană prin Vertipaq atunci când alegeți modul de import.

Când utilizați stocarea coloanelor în loc de stocarea rândurilor, marca, culoarea, sexul, cantitatea și prețul net vor fi fiecare stocate în structuri de date diferite.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

Să presupunem că vrem să obținem SUMA valorilor din coloana Cantitate. Nu va fi nevoie să treceți prin Brand, Color și alte date din afara coloanei Cantitate. Într-o singură scanare, citește întreaga coloană Cantitate de sus în jos și însumează toate valorile.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

Din acest motiv, interogările vor fi executate mai rapid decât de la stânga la dreapta.

Compararea timpului de execuție în interogări simple

Pentru a vedea cu adevărat diferența uriașă dintre depozitul de rânduri și depozitul de coloane, să facem câteva interogări de testare atât în ​​SQL, cât și în Vertipaq. Timpul de execuție ar trebui să ne spună cât de rapid este un proces în comparație cu celălalt.

Să începem cu o interogare simplă în SQL. Vom calcula pentru SUMA coloanei Cantitate din tabelul Vânzări.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

După cum puteți vedea, timpul total de execuție este de 2,2 secunde.

Acum, să mergem la DAX Studio și să folosim funcția EVALUATE pentru a executa aceeași interogare. Trebuie să pornim cronometrarea serverului și să așteptăm finalizarea urmăririi.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

De asemenea, trebuie să ne asigurăm că opțiunea „Șterge cache, apoi rulează” este selectată atunci când rulăm interogarea.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

Odată ce interogarea este executată, veți vedea că durează doar 3 milisecunde pentru a finaliza aceeași interogare pe care am făcut-o în SQL mai devreme.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

Setul de rezultate ar trebui să se potrivească, de asemenea, atât pentru SQL, cât și pentru DAX Studio. Dacă le punem una lângă alta, puteți vedea că returnăm aceeași valoare.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

Puteți încerca să rulați interogarea de câteva ori pentru a vedea cât de consistent este timpul de execuție.

Compararea timpului de execuție în interogări mai complicate

De data aceasta, să comparăm timpul de execuție atunci când executăm interogări mai complicate.

Să presupunem că vrem să identificăm SUMA cantității vânzărilor pentru fiecare marcă. Pentru a face acest lucru, putem folosi peste ale mărcii fiecărui produs. În contextul scăzut, vom crea, de asemenea, un nou tabel numit Cantitate totală, unde vom pentru SUMA cantității vânzărilor.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

Dacă rulăm acest cod, puteți vedea că timpul total de execuție este de 7 milisecunde.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

În fundal, acest cod rulează de fapt două interogări. Primul preia coloana Brand din tabelul Produse, apoi execută un OUTER JOIN pe coloanele Cheie de produs atât din coloana Vânzări, cât și din coloana Produse.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

A doua interogare preia pur și simplu coloana Brand din tabelul Produse.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

Dacă merg la ecranul cu rezultate, puteți vedea că măsura Cantității totale a fost împărțită în funcție de fiecare marcă.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

Acum să mergem la serverul SQL și să scriem aceeași interogare.

Vom împinge tabelul DaxStudio Sales la următoarea linie, făcând referire la tabelul Sales AS S. Apoi, vom executa, de asemenea, un LEFT JOIN în tabelul DaxStudio Products referit AS P, cu S.Product Key egală cu P.Cheie de produs. De asemenea, vom folosi P.Brand cu SUMA cantității și cantității totale în instrucțiunea SELECT . În cele din urmă, vom folosi pentru P.brand.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

Odată ce rulăm acest cod, vom obține un tabel care conține cantitatea totală separată de fiecare marcă, care este același lucru pe care l-am primit anterior în Vertipaq.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane

În ceea ce privește timpul total de execuție, acesta rămâne mult mai lent la 2,5 secunde.

Indexarea datelor în Vertipaq: depozit de rânduri versus depozit de coloane


DAX pentru LuckyTemplates: optimizarea utilizând motoarele de formule în DAX Studio
Tehnici și lecții de optimizare a interogărilor DAX
Performanța interogărilor și configurarea DAX Studio

Concluzie

Este evident cât de rapid este stocul de coloane prin Vertipaq în comparație cu depozitul de rânduri dintr-o bază de date SQL. Acest lucru arată importanța cunoașterii cu adevărat a modului în care funcționează indexarea datelor prin diferite platforme.

Poate părea un mic sacrificiu la început dacă alegeți totuși să mergeți pentru cele 2,5 secunde în care magazinul de rânduri rulează interogarea dvs., comparativ cu 7 milisecunde. Dar cu toții rulăm mai multe interogări atunci când ne creăm rapoartele și toți acești timpi de execuție se vor aduna, influențând productivitatea și experiența utilizatorului pe termen lung.


Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Cum să salvați și să încărcați un fișier RDS în R

Cum să salvați și să încărcați un fișier RDS în R

Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.

Introducere la filtrarea contextului în LuckyTemplates

Introducere la filtrarea contextului în LuckyTemplates

În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.

Idei de materializare pentru cache-urile de date în DAX Studio

Idei de materializare pentru cache-urile de date în DAX Studio

Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.

Raportare de afaceri folosind LuckyTemplates

Raportare de afaceri folosind LuckyTemplates

Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți