Introducerea grupurilor de calcul - SQLBI

Grupurile de calcul sunt o caracteristică nouă în DAX, inspirată de o caracteristică similară disponibilă în MDX cunoscută sub numele de membri calculați. Grupurile de calcul sunt ușor de utilizat; cu toate acestea, proiectarea corectă a unui model cu grupuri de calcul poate fi o provocare atunci când creați mai multe grupuri de calcul sau când utilizați elemente de calcul în măsuri.

Înainte de a furniza o descriere a grupurilor de calcul, este util să petreceți ceva timp analizând cerința de afaceri care a dus la introducerea acestei caracteristici. Un exemplu care implică calcule legate de timp se potrivește perfect.

Modelul nostru eșantion conține măsuri pentru a calcula valoarea vânzărilor, costul total, marja și cantitatea totală vândută utilizând următorul cod DAX:

Toate cele patru măsuri sunt utile și oferă informații diferite despre afacere. Mai mult, toate cele patru măsuri sunt buni candidați pentru calculele de informații de timp. O cantitate anuală până la data peste vânzări poate fi la fel de interesantă ca o dată până la data peste valoarea vânzărilor și peste marjă. Același considerent este valabil pentru multe alte calcule de informații temporale: aceeași perioadă a anului trecut, creștere în procente față de anul precedent și multe altele.

Cu toate acestea, dacă se dorește construirea tuturor calculelor de informații de timp diferite pentru toate măsurile, numărul măsurilor din modelul de date poate crește foarte repede. În lumea reală, gestionarea unui model de date cu sute de măsuri este intimidantă atât pentru utilizatori, cât și pentru dezvoltatori. În cele din urmă, considerați că toate diferitele măsuri pentru calculele de inteligență temporală sunt variații simple ale unui model comun. De exemplu, versiunile anuale ale listei anterioare de patru măsuri ar arăta după cum urmează:

Toate măsurile anterioare diferă doar prin măsura de bază; toate aplică același context de filtrare DATESYTD la diferite măsuri de bază. Ar fi minunat dacă unui dezvoltator i s-ar oferi posibilitatea de a defini un calcul mai generic, folosind un substituent pentru măsură:

Codul anterior nu este o sintaxă DAX validă, dar oferă o descriere foarte bună a elementelor de calcul. Puteți citi codul anterior astfel: Când trebuie să aplicați calculul YTD la o măsură, apelați măsura după ce ați aplicat DATESYTD la coloana Data [Data]. Iată ce este un element de calcul: Un element de calcul este o expresie DAX care conține un substituent special. Substituentul este înlocuit cu o măsură de către motor chiar înainte de a evalua rezultatul. Cu alte cuvinte, un element de calcul este o variație a unei expresii care poate fi aplicată oricărei măsuri.

Mai mult, probabil că veți găsi nevoie de mai multe calcule de inteligență în timp. Într-adevăr, de la un an la altul, trimestrial până în prezent și aceeași perioadă a anului trecut sunt calcule care aparțin cumva aceluiași grup de calcule. Prin urmare, DAX oferă elemente de calcul și grupuri de calcul. Un grup de calcul este un set de articole de calcul care sunt grupate în mod convenabil, deoarece sunt variații pe același subiect.

Să continuăm cu pseudo-codul DAX:

După cum puteți vedea, am grupat patru calcule legate de timp într-un grup numit Time Intelligence. În doar patru rânduri, codul definește zeci de măsuri diferite, deoarece elementele de calcul aplică variația lor oricărei măsuri din model. Astfel, de îndată ce un dezvoltator creează o nouă măsură, variațiile CY, PY, QTD și YTD vor fi disponibile fără costuri.

Lipsesc încă câteva detalii în înțelegerea grupurilor de calcul, dar este necesar doar unul pentru a începe să profite de ele și pentru a defini primul grup de calcul: Cum alege utilizatorul o variantă? După cum am spus, un element de calcul nu este o măsură; este o variație a unei măsuri. Prin urmare, un utilizator are nevoie de o modalitate de a introduce într-un raport o măsură specifică cu una sau mai multe variații ale măsurii în sine. Deoarece utilizatorii au obiceiul de a selecta coloane din tabele, grupurile de calcul sunt implementate ca și cum ar fi coloane în tabele, în timp ce elementele de calcul sunt ca valorile coloanelor date. În acest fel, utilizatorul poate utiliza grupul de calcul din coloanele unei matrice pentru a afișa diferite variații ale unei măsuri în raport. De exemplu, articolele de calcul descrise anterior se aplică coloanelor unei matrice, prezentând diferite variații ale măsurii cuantumului vânzărilor.

sqlbi

Crearea grupurilor de calcul folosind Editorul tabular

Editorul tabular este primul instrument care permite dezvoltatorilor să creeze grupuri de calcul. Deoarece grupurile de calcul au nevoie de versiunea de compatibilitate 1470 a modelului Tabular, începând din iunie 2019 acestea sunt disponibile numai în Analysis Services 2019 și Azure Analysis Services.

În Editorul tabular, elementul de meniu Model/Grup de calcul nou creează un grup de calcul nou, care apare ca un tabel în model cu o pictogramă specială. În figura următoare, grupul de calcul a fost redenumit Time Intelligence.