Grupuri de calcul în modelele tabulare Analysis Services Microsoft Docs

Se aplică la: SQL Server 2019 și mai târziu Analysis Services Azure Analysis Services Power BI Premium

modelele

Grupurile de calcul pot reduce semnificativ numărul de măsuri redundante prin gruparea expresiilor de măsură comune ca elemente de calcul. Grupurile de calcul sunt acceptate în modele tabulare la nivelul de compatibilitate 1500 și superior.

Acest articol descrie:

  • Beneficii
  • Cum funcționează grupurile de calcul
  • Șiruri de format dinamic
  • Precedenta
  • Recursivitate laterală
  • Comanda
  • Cum se creează
  • Limitări

Beneficii

Grupurile de calcul abordează o problemă în modele complexe în care poate exista o proliferare a măsurilor redundante folosind aceleași calcule - cel mai frecvent cu calculele de inteligență temporală. De exemplu, un analist de vânzări dorește să vizualizeze totalele vânzărilor și comenzile în funcție de lună până în prezent (MTD), trimestrial până în prezent (QTD), de la an la zi (YTD), comenzile de la an la an pentru precedent anul (PY) și așa mai departe. Modelatorul de date trebuie să creeze măsuri separate pentru fiecare calcul, ceea ce poate duce la zeci de măsuri. Pentru utilizator, acest lucru poate însemna să fie nevoie să sorteze la fel de multe măsuri și să le aplice individual la raportul lor.

Să analizăm mai întâi cum apar grupurile de calcul utilizatorilor într-un instrument de raportare precum Power BI. Vom arunca apoi o privire la ceea ce alcătuiește un grup de calcul și la modul în care sunt create într-un model.

Grupurile de calcul sunt afișate în raportarea clienților ca un tabel cu o singură coloană. Coloana nu este ca o coloană sau o dimensiune tipică, ci reprezintă unul sau mai multe calcule reutilizabile sau elemente de calcul care pot fi aplicate oricărei măsuri adăugate deja la filtrul Valori pentru o vizualizare.

În animația următoare, un utilizator analizează datele de vânzări pentru anii 2012 și 2013. Înainte de a aplica un grup de calcul, măsura de bază comună Vânzări calculează o sumă a vânzărilor totale pentru fiecare lună. Utilizatorul dorește apoi să aplice calcule de informații temporale pentru a obține totaluri de vânzări pentru luna până în prezent, trimestrial până în prezent, an până în prezent, etc. Fără grupuri de calcul, utilizatorul ar trebui să selecteze măsuri individuale de inteligență temporală.

Cu un grup de calcul, în acest exemplu numit Inteligența timpului, când utilizatorul trage fișierul Calculul timpului element la Coloane zona de filtrare, fiecare element de calcul apare ca o coloană separată. Valorile pentru fiecare rând sunt calculate din măsura de bază, Vânzări.

Grupurile de calcul lucrează cu explicit Măsuri DAX. În acest exemplu, Vânzări este o măsură explicită deja creată în model. Grupurile de calcul nu funcționează cu măsuri DAX implicite. De exemplu, în Power BI măsurile implicite sunt create atunci când un utilizator trage coloane pe imagini pentru a vizualiza valorile agregate, fără a crea o măsură explicită. În acest moment, Power BI generează DAX pentru măsuri implicite scrise ca calcule DAX în linie - ceea ce înseamnă că măsurile implicite nu pot funcționa cu grupuri de calcul. A fost introdusă o nouă proprietate de model vizibilă în Modelul de obiect tabular (TOM), Descurajează Măsuri implicite. În prezent, pentru a crea grupuri de calcul, această proprietate trebuie setată la Adevărat. Când este setat la adevărat, Power BI Desktop în modul Live Connect dezactivează crearea de măsuri implicite.

Grupurile de calcul acceptă, de asemenea, interogări cu expresii de date multidimensionale (MDX). Acest lucru înseamnă că utilizatorii Microsoft Excel, care interogă modele de date tabulare utilizând MDX, pot profita din plin de grupurile de calcul din tabele pivot și diagrame ale foii de lucru.

Cum funcționează

Acum că ați văzut cum beneficiază grupurile de calcul utilizatori, să aruncăm o privire asupra modului în care este creat exemplul grupului de calcul Time Intelligence prezentat.

Înainte de a intra în detalii, să introducem câteva funcții noi DAX special pentru grupurile de calcul:

SELECTEDMEASURE - Folosit de expresiile pentru elemente de calcul pentru a face referire la măsura care se află în prezent în context. În acest exemplu, măsura Vânzări.

SELECTEDMEASURENAME - Folosit de expresiile pentru elementele de calcul pentru a determina măsura care se află în context după nume.

ISSELECTEDMEASURE - Folosit de expresiile pentru elementele de calcul pentru a determina măsura care este în context este specificată într-o listă de măsuri.

SELECTEDMEASUREFORMATSTRING - Folosit de expresiile pentru elementele de calcul pentru a prelua șirul de format al măsurii care se află în context.

Exemplu de inteligență temporală

Numele tabelului - Inteligența timpului
Numele coloanei - Calculul timpului
Precedenta - 20

Elementele de calcul Time Intelligence

Actual

MTD

QTD

YTD

PY

PY MTD

PY QTD

PY YTD

BINE

YOY%

Pentru a testa acest grup de calcul, executați o interogare DAX în SSMS sau open-source DAX Studio. Notă: YOY și YOY% sunt omise din acest exemplu de interogare.

Interogare Time Intelligence

Revenirea interogării Time Intelligence

Tabelul de returnare arată calculele pentru fiecare element de calcul aplicat. De exemplu, a se vedea QTD pentru martie 2012 este suma din ianuarie, februarie și martie 2012.

Șiruri de format dinamic

Șirurile de format dinamic cu grupuri de calcul permit aplicarea condiționată a șirurilor de format la măsuri fără a le forța să returneze șirurile.

Modelele tabulare acceptă formatarea dinamică a măsurilor folosind funcția FORMAT a DAX. Cu toate acestea, funcția FORMAT are dezavantajul de a returna un șir, forțând măsurile care altfel ar fi numerice să fie returnate și ca șir. Acest lucru poate avea unele limitări, cum ar fi faptul că nu funcționează cu majoritatea vizualelor Power BI în funcție de valorile numerice, cum ar fi diagramele.

Șiruri de format dinamic pentru inteligență temporală

Dacă ne uităm la exemplul Time Intelligence prezentat mai sus, toate elementele de calcul, cu excepția YOY% ar trebui să utilizeze formatul măsurii actuale în context. De exemplu, YTD calculat pe baza măsurii de vânzări ar trebui să fie valută. Dacă acesta ar fi un grup de calcul pentru ceva de genul unei măsuri de bază pentru comenzi, formatul ar fi numeric. YOY%, cu toate acestea, ar trebui să fie un procent indiferent de formatul măsurii de bază.