Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
Atât , cât și sunt instrumente puternice pentru manipularea și analiza datelor în interogarea DAX, dar au câteva diferențe cheie care sunt importante de înțeles.
În acest blog, vom trece peste funcția CALCULATETABLE și planul său de interogare în DAX studio și vom înțelege cum diferă de funcția FILTER . Până la sfârșit, veți înțelege mai bine cum să alegeți funcția potrivită pentru nevoile dvs. de analiză a datelor.
Pentru a demonstra, vom folosi codul DAX de mai jos.
Când rulați acest cod, veți obține un tabel care arată marca și culoarea.
În fila Planuri de interogare , veți obține un cod corespunzător operatorului CrossApply din Formula Engine .
În același timp, puteți vedea că codul preia doar culoarea și marca produsului în fila Timings server .
Cuprins
DAX Studio Server Timings Rezultat pentru CALCULATETABLE
De exemplu, să filtram culoarea produsului pentru a afișa doar roșu și/sau negru.
Puteți face acest lucru utilizând funcția FILTER. Când îl rulați, Timingurile serverului vor arăta că argumentul FILTER nu este aplicat codului xmSQL .
Dar dacă utilizați funcția CALCULATETABLE, interogarea din fila Server Timings va arăta că rezultatele au fost filtrate după culoarea produsului.
Planul de interogări CALCULATETABLE în DAX Studio
Să ne uităm la Planul de interogare pentru fiecare funcție.
CALCULATETABLE se află pe prima linie a Planului de interogare logic , deoarece este o funcție de nivel superior în cod și, prin urmare, nu depinde de nicio cerință.
Când citiți planul de interogare al unei funcții CALCULATETABLE, nu începeți cu primul argument. Mai întâi trebuie să înțelegeți contextul filtrului utilizat. Deci, să trecem la rândul 5.
Puteți vedea că operatorul VertiPaq necesită coloana de culoare a produsului din cauza filtrului aplicat. Apoi scanează această coloană și folosește combinația Not IsEmpty Filter pentru a verifica culoarea produsului pe fiecare rând.
După ce contextul de filtru a fost pregătit, argumentul este executat.
În retrospectivă, dacă utilizați funcția FILTER, veți vedea un plan de interogare diferit, astfel încât argumentul CROSSJOIN este efectuat înainte de a identifica contextul filtrului.
Dezavantajul acestei abordări este că nu împinge condiția filtrului către motorul de stocare. Nu veți putea folosi clauza WHERE în interiorul xmSQL, ceea ce va pune o povară grea pentru Formula Engine.
Și când lucrați cu mai multe tabele, combinația de filtre a funcției CROSSJOIN va fi uriașă. Acest lucru încetinește performanța codului DAX. Astfel, în majoritatea cazurilor, se recomandă utilizarea funcției CALCULATETABLE.
Deci, în loc să efectuați toate calculele în Formula Engine, puteți injecta condiția de filtru în clasa WHERE a codului XMSQL.
Tranziție de context pentru funcții DAX similare
Timpurile serverului
Acest concept este aplicabil și funcției CALCULATE. Să folosim codul DAX de mai jos ca exemplu.
O măsură are automat o funcție CALCULATE în jurul ei.
Când rulați acest cod, veți obține un tabel care arată valoarea totală a vânzărilor pentru fiecare culoare.
În fila Server Timings, puteți vedea că codul execută două interogări. Prima interogare este calcularea sumei sumei vânzărilor din tabelul Vânzări în raport cu tabelul Produse.
Pe de altă parte, a doua interogare preia din nou culoarea produsului din tabelul Produse. Corespunde funcției din codul DAX.
Formula Engine plasează cache-urile de date ale celor două interogări una lângă alta. Începe prin preluarea valorilor din al doilea cache de date și apoi efectuează o căutare în primul cache de date.
Plan de interogare
În fila Plan de interogare, Planul de interogare logic scanează culoarea produsului din cauza argumentului .
Apoi, VertiPaq însumează suma totală a vânzărilor în funcție de culoarea produsului. Efectuează tranziția de context care convertește valoarea culorii produsului într-un context de filtru echivalent.
Filtrul creat de tranziția contextului este tradus într-o proprietate DependOnCols în Planul de interogare. După ce VertiPaq scanează coloanele necesare pentru a calcula vânzările totale, înmulțește cantitatea de vânzări cu prețul net.
Vânzările totale sunt apoi returnate ca rezultat sub forma unui tip de date valutare. Și, în sfârșit, ADDCOLUMNS returnează un tabel cu două coloane care conțin culoarea și valoarea vânzărilor totale.
Concluzie
Planul de interogare poate avea un impact semnificativ asupra performanței unei interogări, deoarece diferitele planuri de interogare pot avea niveluri diferite de eficiență.
Când utilizați funcțiile CALCULATETABLE și FILTER într-o interogare DAX, planul de interogare poate diferi în funcție de scenariul specific și de o varietate de factori, cum ar fi expresia specifică a formulei utilizate și capacitățile motorului de interogare.
În general, este o idee bună să testați și să comparați performanța diferitelor planuri de interogare pentru a determina cea mai eficientă abordare pentru un anumit scenariu.
Toate cele bune,
Ce este Sinele în Python: Exemple din lumea reală
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.
Î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.
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.
Î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.
Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.
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.
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.
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