Úvod do jazyka DAX

Dokončené

Data Analysis Expressions (DAX) je programovací jazyk, ktorý sa používa v službe Microsoft Power BI na vytváranie vypočítaných stĺpcov, mierok a vlastných tabuliek. Je to súbor funkcií, operátorov a konštánt, ktoré je možné použiť vo vzorci alebo výraze na výpočet a vrátenie jednej alebo viacerých hodnôt. Pomocou jazyka DAX môžete vyriešiť množstvo problémov s výpočtami a analýzou údajov, čo vám môže pomôcť pri vytváraní nových informácií z údajov, ktoré už sú vo vašom modeli.

V službe Power BI môžete pomocou rôznych výpočtových techník a funkcií vytvárať mierky alebo vypočítané stĺpce. Použitím týchto techník budete predovšetkým schopní dosiahnuť rovnaký výsledok. Na to je však potrebné vedieť, ako a kedy ich použiť. Vďaka tomu, že budete mať základné vedomosti o tom, kedy a ako používať ktorú techniku, budete môcť vytvárať rozsiahle a vysokovýkonné dátové modely.

Na konci tohto modulu budete vedieť: 

  • vytvárať rýchle merania,

  • vytvárať vypočítané stĺpce,

  • používať DAX na vytváranie mierok,

  • zistiť, ako kontext ovplyvňuje mierky DAX,

  • používať funkciu CALCULATE na manipuláciu s filtrami,

  • implementovať časovú inteligenciu pomocou jazyka DAX.

Používanie vypočítaných stĺpcov

DAX umožňuje rozšíriť údaje pridané z rôznych zdrojov údajov vytvorením vypočítaného stĺpca, ktorý pôvodne v zdroji údajov neexistoval. Táto funkcia by sa mala používať s mierou, čo bude vysvetlené neskôr v tomto module.

Predpokladajme napríklad, že importujete údaje z databázy, ktorá obsahuje predajné transakcie. Každá jednotlivá predajná transakcia má nasledujúce stĺpce: ID objednávky, ID produktu, Množstvo a Jednotková cena. Všimnite si, že neexistuje stĺpec pre celkovú sumu predaja pre každú objednávku.

Poznámka

Tento modul nie je o vizualizácii údajov, ale zobrazuje vizualizáciu údajov, aby ste videli, ako funguje DAX. Ďalšie informácie nájdete v študijnom programe Vizualizácia údajov v službe Power BI.  

Nasledujúci obrázok znázorňuje, ako sa počiatočný tvar údajov zobrazuje vo vizuáli tabuľky služby Power BI.

Snímka obrazovky tabuľky produktu pred použitím jazyka DAX.

DAX môžete začať používať vytvorením vypočítaného stĺpca, ktorý vynásobí jednotkovú cenu množstvom. Vypočítaný stĺpec vytvorí hodnotu pre každý riadok s názvom Celková cena. Nový stĺpec vytvoríte tak, že v tabuľke v zozname Polia vyberiete tlačidlo tri bodky (...) a potom vyberiete Nový stĺpec.

Snímka obrazovky tlačidla s tromi bodkami v zozname polí.

Nový vzorec DAX sa zobrazí v riadku vzorcov, v hornej časti pod pásom s nástrojmi.

Snímka obrazovky znázorňujúca miesto na zadanie nového vzorca DAX.

Predvolený text „Column =“ môžete nahradiť nasledujúcim vzorovým textom:

Total Price = 'Sales OrderDetails'[Quantity] * 'Sales OrderDetails'[Unit Price]

The value on the left side of the equal sign is the column name. (Hodnota na ľavej strane znamienka rovnosti je názov stĺpca.) The text on the right side of the equal sign is the DAX expression. (Text na pravej strane znamienka rovnosti je výraz DAX.) Tento jednoduchý výraz DAX použije hodnotu množstva a vynásobí ju jednotkovou cenou platnou pre každý jednotlivý riadok. Vytvorí jednu hodnotu pre každý záznam v tabuľke. Ak presuniete nový stĺpec zo zoznamu Polia do vizuálu, zobrazia sa nové hodnoty.

Snímka obrazovky zobrazujúca nový stĺpec Total Price (Celková cena).

Predchádzajúca snímka obrazovky znázorňuje, že DAX počíta správne a zobrazuje požadované výsledky.

Vypočítané stĺpce sa realizujú v rozšírení súboru .pbix Power BI, čo znamená, že vždy, keď pridáte vypočítaný stĺpec, zväčšíte veľkosť celého súboru. Príliš veľa vypočítaných stĺpcov spomalí výkon a spôsobí, že skôr dosiahnete maximálnu veľkosť súboru Power BI.

Vytvorenie vlastného stĺpca

Existujú tri spôsoby, ako vytvoriť vlastný stĺpec v službe Power BI:

  • Vytvorenie stĺpca v zdrojovom dotaze, keď získate údaje, napríklad pridaním výpočtu do zobrazenia v relačnej databáze.

  • Vytvorenie vlastného stĺpca v službe Power Query.

  • Vytvorenie vypočítaného stĺpca pomocou jazyka DAX v aplikácii Power BI Desktop.

Vypočítaný stĺpec môžete vytvoriť po načítaní údajov zo zdroja údajov. Každý zdroj údajov bude používať inú metódu na dokončenie tejto akcie. Ak by ste napríklad načítavali údaje z relačného zdroja údajov pomocou zobrazenia, ktoré bolo napísané v jazyku SQL, vyzeralo by to ako v nasledujúcom príklade:

CREATE VIEW OrdersWithTotalPrice
AS
SELECT unitprice, qty, unitprice * qty as TotalPrice 
FROM sales.salesorders

Používanie jazyka SQL je efektívny spôsob vytvorenia stĺpca, pretože zdroj údajov urobí výpočty za vás. V službe Power BI sa vypočítaný stĺpec zobrazuje ako akýkoľvek iný stĺpec.

Na vytvorenie vlastného stĺpca môžete tiež použiť doplnok Power Query.

Snímka obrazovky dialógového okna Power Query vlastného stĺpca.

Dialógové okno Vlastný stĺpec používa na vytvorenie nového stĺpca jazyk M. Jazyk M nespadá do rozsahu pôsobnosti tohto modulu.

Tretí spôsob, ako vytvoriť vypočítaný stĺpec, je vytvoriť ho použitím jazyka DAX v službe Power BI, ako už bolo uvedené vyššie.

Keď vytvoríte vypočítaný stĺpec pomocou jazyka DAX, nemusíte obnovovať množinu údajov, aby sa zobrazil nový stĺpec. Pri použití ostatných metód ju bude potrebné obnoviť, aby sa zmeny prejavili. Tento proces môže byť zdĺhavý, ak pracujete s veľkým množstvom údajov. Tento problém je však irelevantný, pretože stĺpce sa po vytvorení len zriedka zmenia.

Vypočítaný stĺpec DAX sa nekomprimuje rovnako, ako pri ostatných metódach. Ostatné typy stĺpcov sa komprimujú, čím sa súbor .pbix zväčší a výkon je zvyčajne rýchlejší.

Vo všeobecnosti platí, že čím skôr stĺpec vytvoríte, tým lepšie. Používanie jazyka DAX na výpočty sa nepovažuje za optimálny postup, pokiaľ môžete použiť iný mechanizmus.

Jedným zo spôsobov, ako sa vyhnúť použitiu vypočítaného stĺpca je, okrem iného, aj použitie niektorej z funkcií X, ako napríklad SUMX, COUNTX, MINX atď. Funkcie X presahujú rámec tohto modulu. Umožňujú však vytvoriť mierky, ktoré dokážu rozpoznať údaje v jednotlivých riadkoch a vypočítať súčty na základe súčtov v riadkoch. Tieto funkcie sa nazývajú iterátorové funkcie, pretože hoci sa používajú v mierkach, na vytváranie výpočtov iterujú po jednotlivých riadkoch. Funkcia X bude fungovať lepšie a zaberie menej miesta na disku ako vypočítaný stĺpec. Ďalšie informácie o funkciách X nájdete v dokumentácii spoločnosti Microsoft.

Používanie mierok

Vypočítané stĺpce sú užitočné, keď potrebujete postupovať riadok po riadku. Iné situácie môžu vyžadovať jednoduchšiu metódu. Vezmime si napríklad situáciu, keď potrebujete agregáciu, ktorá funguje v celej množine údajov a vy chcete vypočítať celkový predaj vo všetkých riadkoch. Ďalej chcete tieto údaje podrobnejšie rozdeliť podľa iných kritérií, ako napríklad celkový predaj podľa rokov, zamestnancov alebo produktov.

Na vykonanie týchto úloh môžete použiť mierku. Môžete vytvoriť mierku bez písania kódu DAX. Power BI ho napíše za vás, keď vytvoríte rýchle meranie.

Existuje veľa dostupných kategórií výpočtov a spôsobov, ako jednotlivé výpočty upraviť tak, aby vyhovovali vašim potrebám. Ďalšou výhodou je, že príkaz DAX implementovaný rýchlym meraním môžete vidieť, čo vám umožňuje lepšie pochopiť jazyk DAX alebo rozšíriť svoje vedomosti v tejto oblasti.

Vytvorenie rýchleho merania

Ak chcete vytvoriť rýchle meranie v aplikácii Power BI Desktop, kliknite pravým tlačidlom myši alebo vyberte tlačidlo tri bodky (...) vedľa ľubovoľnej položky na table Polia a potom v zobrazenej ponuke vyberte položku Nové rýchle meranie. Zobrazí sa obrazovka Rýchle merania.

Snímka obrazovky dialógového okna Rýchle merania.

V okne Rýchle merania môžete vybrať požadovaný výpočet a polia, s ktorými sa má výpočet vykonať. Môžete napríklad vybrať výpočet a stĺpec, ktorý chcete spracovať. Služba Power BI pre vás vytvorí mierku DAX a zobrazí ju. Tento prístup môže predstavovať užitočný spôsob, ako sa naučiť syntax jazyka DAX.

Ďalšie informácie nájdete v dokumentácii  Použitie rýchlych meraní na bežné výpočty.

Vytvorenie mierky

Mierky sa zvyknú používať v najbežnejších analýzach údajov.

Ak chcete pokračovať v predchádzajúcom scenári, vytvorte mierku, ktorá vypočíta súčet nového stĺpca pre celú množinu údajov. Podobne ako pri vytváraní vypočítaného stĺpca môžete prejsť do zoznamu Polia , kliknúť na tri bodky tri bodky vo vybratom poli a vybrať položku Nová mierka.

Text sa zobrazí v riadku vzorcov pod pásom s nástrojmi.

Snímka obrazovky s miestami na zadanie novej mierky.

Text „Measure = “ môžete nahradiť nasledujúcim textom:

Total Sales = sum('Sales OrderDetails'[Total Price])

Nová mierka sa teraz zobrazí v zozname Polia.

Snímka obrazovky novej mierky v zozname polí.

Keď presuniete Celkový predaj na povrch návrhu zostavy, zobrazí sa vám v stĺpcovom grafe celkový predaj pre celú organizáciu.

Snímka obrazovky zobrazujúca mierku celkového predaja v stĺpcovom grafe.

Rozdiely medzi vypočítaným stĺpcom a mierkou

Základný rozdiel medzi vypočítaným stĺpcom a mierkou spočíva v tom, že vypočítaný stĺpec vytvorí hodnotu pre každý riadok v tabuľke. Napríklad, ak tabuľka obsahuje 1000 riadkov, vo vypočítanom stĺpci sa bude nachádzať 1000 hodnôt. Hodnoty z vypočítaného stĺpca sú uložené v súbore.pbix služby Power BI. Každý vypočítaný stĺpec zväčší priestor, ktorý sa používa v danom súbore, a potenciálne zvýši aj čas obnovenia.

Mierky sa vypočítavajú na požiadanie. Služba Power BI vypočíta správnu hodnotu, ak ju o to používateľ požiada. Ak ste predtým presunuli mierku Celkový predaj do zostavy, služba Power BI vypočítala správny súčet a zobrazila vizuál. Mierky nezaberajú žiaden priestor z celkového miesta na disku v súbore .pbix služby Power BI.

Mierky sa vypočítavajú na základe filtrov, ktoré využíva používateľ zostavy. Ak chcete vytvoriť kontext filtra, skombinujte tieto filtre.