Práca so zobrazením dotazu jazyka DAX
Pomocou zobrazenia dotazov jazyka DAX v službe Power BI môžete v sémantických modeloch zobrazovať dotazy DAX (Data Analysis Expressions) a pracovať s nimi.
Dotazy DAX
V službe Power BI sa vzorce dax používajú na definovanie rôznych typov výpočtov pre vaše údaje a možno ich použiť aj na definovanie zabezpečenia rolí. Dotazy DAX sa naopak môžu použiť na vrátenie údajov z modelu.
Dotazy DAX sa podobajú dotazom SQL v tom, že vám môžu zobrazovať údaje, ktoré už máte. Dotazy DAX nevytvárajú položky v modeli ani vizuály v zostave.
Dotazy DAX majú dve hlavné časti:
- Vyžaduje sa príkaz EVALUATE . Určuje, čo a ako sa vrátia údaje v dotaze.
- Príkaz DEFINE , ktorý je voliteľný. Umožňuje definovať vzorce DAX, ako je napríklad mierka, ktoré sa majú v dotaze použiť. Mierky vytvorené alebo aktualizované pomocou dotazu DAX DEFINE MEASURE sú mierky rozsahu dotazu DAX, ktoré sa spúšťajú iba v kontexte dotazu jazyka DAX. Mierky v rozsahu dotazu DAX je možné pridať do modelu pomocou akcií modelu aktualizácie CodeLens alebo tlačidla Aktualizovať model so zmenami .
Ďalšie informácie o spôsobe používania dotazov nájdete v téme Dotazy DAX v referenčných informáciách o jazyku DAX.
Otvorenie zobrazenia dotazu v jazyku DAX
V aplikácii Power BI Desktop vyberte ikonu zobrazenia dotazu DAX na ľavej strane.
V pracovnom priestore portálu služba Power BI alebo Fabric vyberte z kontextovej ponuky možnosť Zapisovať dotazy jazyka DAX.
Na stránke podrobností o sémantickom modeli portálu služba Power BI alebo Fabric vyberte v hornej časti stránky položku Písať dotazy jazyka DAX.
Rozloženie zobrazenia dotazu v jazyku DAX
Pozrime sa bližšie na zobrazenie dotazu DAX v aplikácii Power BI Desktop.
Zobrazenie dotazu jazyka DAX obsahuje tieto prvky:
Pás s nástrojmi
Pás s nástrojmi Zobrazenie dotazu jazyka DAX obsahuje bežné akcie používané pri písaní dotazov jazyka DAX.
Pozrime sa na prvky na páse s nástrojmi zblízka:
Formátovať dotaz
Vyberte tlačidlo Na páse s nástrojmi Formátovať dotaz alebo na formátovanie aktuálneho dotazu použite kombináciu klávesov SHIFT + ALT + F. Dotaz je odsadené pomocou kariet. Funkcie DAX sa zmenia na veľké písmená a pridávajú sa ďalšie riadky. Formátovanie dotazu DAX sa považuje za najvhodnejší postup a zlepšuje čitateľnosť dotazu DAX. Formátovanie tiež odsadí tak, aby bolo možné zbaliť a rozbaliť časti dotazu.
Komentáre a uncomment
Vyberte tlačidlo Pás s nástrojmi Komentáre a pridajte dvojitú opačnú lomku (//) na začiatok riadka, kde kurzor je alebo všetky vybraté riadky. Táto akcia vykomentuje riadky a pri spustení dotazu DAX sa tieto riadky ignorujú.
Výberom tlačidla Pás s nástrojmi Uncomment odstráňte // na začiatku každého riadka, kde sa kurzor nachádza, alebo všetkých vybratých riadkov. Nefunguje v riadkoch, v ktorých sa pridáva zápis komentárov s viacerými riadkami.
Medzi komentárom a uncommentom môžete prepínať aj stlačením klávesu CTRL +/.
Nájsť a Nahradiť
Vyberte tlačidlo Nájsť na páse s nástrojmi alebo stlačením kombinácie klávesov CTRL + F vyhľadajte text v editore dotazov DAX. Vyhľadanie obsahuje možnosti zhody veľkých a malých písmen, zhody s celým slovom, použitie regulárneho výrazu a prechádzanie všetkými zhodami pre aktuálny dotaz. Môžete tiež vybrať dvojitú šípku naľavo od poľa Hľadať a zadať text Nahradiť.
Vyberte tlačidlo Nahradiť na páse s nástrojmi alebo použite kombináciu klávesov CTRL + H a vyhľadajte a nahraďte text v editore dotazov DAX. Nahradenie obsahuje možnosti na zachovanie prípadu a nahradenie naraz alebo všetky naraz.
Paleta príkazov
Vyberte tlačidlo pása s nástrojmi palety príkazov alebo stlačením kombinácie klávesov CTRL + ALT + P otvorte paletu príkazov. Môžete vyhľadávať ďalšie akcie editora dotazov DAX a zobraziť si ich súvisiace klávesové skratky.
Panel príkazov
Panel príkazov zobrazenia dotazu jazyka DAX obsahuje najdôležitejšie akcie pri používaní zobrazenia dotazu jazyka DAX.
Spustiť a Zrušiť
Tlačidlom Spustiť sa spustí dotaz DAX alebo vybraté riadky dotazu. Stav dotazu po spustení sa zobrazí v dolnom stavovom riadku.
Keď je dotaz spustený, tlačidlo sa stane tlačidlom Cancel , ktoré možno použiť na zastavenie spusteného dotazu.
Aktualizácia modelu so zmenami
Model Aktualizovať so zmenami tlačidlom pridá alebo prepíše mierky modelu vzorcami DAX z mierok v rámci dotazu DAX. Mierky v rozsahu dotazu DAX sú vzorce DAX v bloku funkcie DEFINOVAŤ MIERKU. Prípadne môžete pridať alebo prepísať mierky modelu jednotlivo pomocou textu CodeLens, ktorý sa zobrazuje nad jednotlivými mierkami.
Editor dotazov jazyka DAX
Zobrazenie dotazu v jazyku DAX obsahuje editor dotazov, kde môžete písať a upravovať dotazy. Nie je to len väčší riadok vzorcov DAX. Je výkonnejší a má mnoho podobností s editorom DAX, ktorý je k dispozícii v nástroji VS Code.
Editor dotazov jazyka DAX má tieto prvky:
Návrhy a Intellisense
Zadajte do dotazu a získajte pomoc s návrhmi a Intellisense počas úprav.
Pomocou klávesov ENTER alebo TAB pridajte zvýraznenú funkciu intellisense alebo SHIFT + ENTER alebo ALT + ENTER a presunutie na iný riadok bez pridania možnosti intellisense. Výberom tlačidla ESC sa zavrie ktorýkoľvek z prekrývaných prvkov.
Ukázaním myšou zobrazíte vzorce mierky
Keď je mierka súčasťou dotazu DAX, môžete na nej ukázať a zobrazí sa vzorec, názov a popis.
Výber na zobrazenie rýchlych akcií žiarovky mierky
Výberom mierky v príkaze EVALUATE v dotaze bez príkazu DEFINE sa zobrazí žiarovka rýchlych akcií. Vyberte položku Definovať alebo Definovať s odkazmi a vytvorte príkaz DEFINE so vzorcom tejto mierky so vzorcami DAX alebo bez tejto referenčnej mierky.
Aktualizácia mierok modelu pomocou funkcie CodeLens
Použitie funkcie DEFINOVAŤ MIERKU je užitočné pri vytváraní mierok, a to tak, že im najprv umožníte vytvoriť ich ako mierky zamerané na dotaz DAX. V jednom okne môžete upraviť viacero mierok a potom spustiť dotaz, aby sa zobrazili výsledky všetkých alebo len niektorých z nich s konkrétnou skupinou podľa stĺpcov. Nie je potrebné vytvárať vizuál tabuľky v zobrazení zostavy a prepínať medzi vzorcami mierky. CodeLens preberie tento krok ďalej tým, že poskytne výzvy, keď už mierka v modeli existuje. Tieto ponúka rýchle prepojenia na pridanie mierky alebo prepísanie mierky v modeli.
CodeLens je text, ktorý sa zobrazuje nad blokom DEFINE MEASURE. V prípade mierok v rámci dotazu DAX, ktoré ešte nie sú v modeli prítomné, sa zobrazí Aktualizovať model: Pridanie novej mierky stĺpca CodeLens, ktorá po kliknutí pridá mierku modelu. V prípade mierok v rozsahu dotazu DAX, ktoré už sú prítomné v modeli, a keď je vzorec mierky DAX v rozsahu JAZYKA DAX iný, sa zobrazí model Update: Prepísať mierku funkcie CodeLens, ktorá po kliknutí zmení mierku modelu na tento vzorec DAX.
Prípadne môžete pridať alebo prepísať viacero mierok naraz kliknutím na tlačidlo Aktualizovať model so zmenami na paneli príkazov .
Pracovný postup aktualizácie mierky
Rýchle akcie žiarovky a CodeLens možno použiť spolu v komplexnom pracovnom postupe:
- V kontextovej ponuke mierky vyberte položku Rýchle dotazy a potom položku Vyhodnotiť, aby sa dotaz vytvoril pre vás na novej karte Dotaz.
- Vyberte mierku v dotaze na definovanie alebo definovanie s odkazmi a pridajte príkaz DEFINE.
- Vykonajte aktualizácie vzorca DAX v mierke, potom spustite dotaz DAX, aby sa zobrazili výsledky.
- Keď sa zmena zobrazí podľa očakávania, použite model aktualizácie CodeLens: Ak chcete uložiť mieru prepísať späť do modelu, použite metódu CodeLens Update.
Tu je vizuálnejší spôsob, ako pochopiť pracovný postup:
Mriežka výsledkov
Po spustení dotazu sa výsledky zobrazia v mriežke Výsledky .
Ak sa v editore dotazov nachádza viac ako jeden príkaz EVALUATE, je možné vrátiť viacero výsledkov. Na prepínanie medzi nimi môžete použiť rozbaľovací zoznam Výsledok . Tlačidlo Kopírovať skopíruje celú mriežku ako tabuľku s hlavičkami oddelenými kartami. Zmeňte veľkosť mriežky presunutím šípok vpravo hore alebo orámovania medzi výslednou mriežkou a editorom dotazov.
Ak má dotaz za následok chybu, zobrazí sa mriežka výsledkov.
Tlačidlo kopírovania prenesie chybu do Schránky. Na začiatku chyby je uvedené, kde v dotaze sa vyskytla chyba. Na obrázku vyššie je chyba:
"Dotaz (4, 23) Hodnotu pre Sales 2 nemožno určiť. Buď stĺpec neexistuje, alebo neexistuje žiadny aktuálny riadok pre tento stĺpec."
Dotaz (4, 23) zároveň označuje, že chyba je v riadku 4 a v znaku 23.
Karty dotazu
Zobrazenie dotazu jazyka DAX môže mať viacero kariet dotazov, ktoré možno premenovať alebo odstrániť. Zobrazujú aj aktuálny stav dotazu.
Každá karta obsahuje indikátor stavu:
- Pred spustením dotazu sa nevykazuje žiadny indikátor.
- Zelený znak začiarknutia označuje úspešné spustenie dotazu.
- Červený kríž znamená, že sa vyskytla chyba.
- Vyplnený štvorec v kruhu označuje, že dotaz bol zrušený.
- Hodiny označujú, že dotaz je spustený.
Dotazy môžu byť spustené na pozadí, čo vám umožní pokračovať v práci na iných kartách dotazov.
Ukladanie dotazov jazyka DAX
Karty dotazu v zobrazení dotazu jazyka DAX sa uložia do súboru, keď uložíte z aplikácie Power BI Desktop, takže môžete pokračovať tam, kde ste skončili pri opätovnom otvorení súboru. Ak na uloženie projektu služby Power BI používate režim vývojára, každá karta dotazu je zahrnutá ako súbor .dax v priečinku DAXQueries priečinka sémantického modelu alebo v priečinku zostavy, ak sú vytvorené v zostave s dynamickým pripojením. Ďalšie informácie nájdete v dokumentácii k režimu vývojára v službe Power BI.
V súčasnosti nie je možné zobraziť ani upraviť dotazy DAX, ktoré boli predtým pridané v aplikácii Power BI Desktop v službe Power BI. Divákom zostavy alebo sémantického modelu sa nezobrazujú dotazy DAX uložené so sémantickým modelom.
Karty zobrazenia dotazov v jazyku DAX sa pri písaní dotazov jazyka DAX z portálu služby služba Power BI alebo služby Fabric zahodia.
Tabla Údaje
Na table Údaje sa zobrazujú položky v modeli, ktoré vám pomôžu napísať dotazy. Cesty k úprave väčšiny týchto položiek sú v zobrazení dotazu zablokované.
Rýchle dotazy
Kontextová ponuka tably Údaje obsahuje rýchle dotazy. Pomocou rýchlych dotazov môžete vytvoriť dotazy na novej karte dotazu pre tabuľky, stĺpce a mierky. Rýchle dotazy sú navrhnuté tak, aby predstavujú nárast produktivity pri bežných úlohách a zostavené tak, aby sa dali ľahko ďalej upravovať. Všetky rýchle dotazy sa vytvárajú na novej karte dotazu a spúšťajú sa automaticky.
Kdekoľvek
Definujte všetky mierky v modeli vytvorí dotaz so všetkými vzorcami mierky zobrazenými v dotaze. Jednoduché vyhľadávanie vo všetkých vzorcoch mierky.
Definujte novú mierku vytvorí dotaz s definovaním bloku mierok. Používa sa na vytvorenie vlastnej mierky v zobrazení dotazu DAX a následné pridanie do modelu, keď budete pripravení.
Tabuľky
Zobraziť prvých 100 riadkov vytvorí dotaz pomocou funkcie SELECTCOLUMNS(), aby sa zobrazilo 100 najvrchnejších riadkov tabuľky. Stĺpce sú uvedené v každom riadku, čo umožňuje jednoduché úpravy komentovaním riadkov. Na zadanie poradia zoradenia je tiež zahrnutá funkcia ORDER BY.
Zobraziť štatistiku stĺpcov vytvorí dotaz zobrazujúci štatistické informácie pre každý stĺpec v tabuľke. Pozrite si mnohé zo vzorcov, ako agregovať stĺpce ako MIN, MAX, AVERAGE, COUNT a ďalšie.
Definujte všetky mierky v tejto tabuľke vytvorí dotaz so vzorcami mierky tejto tabuľky zobrazenými v dotaze.
Stĺpce
Funkcia Zobraziť ukážku údajov vytvorí dotaz pomocou funkcie DISTINCT() na zobrazenie hodnôt stĺpca.
Zobraziť štatistiku stĺpcov vytvorí dotaz zobrazujúci štatistické informácie pre tento konkrétny stĺpec. Pozrite si mnohé vzorce, v nich nájdete informácie o tom, ako agregovať stĺpec ako MIN, MAX, AVERAGE, COUNT a ďalšie. Vrátený dotaz sa líši v závislosti od typu údajov stĺpca a zobrazuje rôzne štatistiky pre číselné, textové a dátumové stĺpce.
Miery
Funkcia Evaluate vytvorí dotaz na zobrazenie výsledku mierky. Funkcia SUMMARIZECOLUMNS() sa používa na to, aby ste mohli pridať ľubovoľnú skupinu podľa stĺpcov a zobraziť mierku podľa konkrétnych skupín, ako sú krajina, produkt atď.
Definovať a vyhodnotiť vytvorí dotaz na zobrazenie výsledku mierky a zobrazenie vzorca mierky v príkaze DEFINE, ktorý možno následne upraviť.
Definujte pomocou odkazov a vyhodnotte vytvorenie dotazu na zobrazenie výsledku mierky a zobrazenie nielen vzorca mierky v príkaze DEFINE, ktorý možno upraviť, ale aj akékoľvek iné mierky odkazované vo vzorci mierky. Upraviť ľubovoľnú časť v úplnom kontexte mierky.
Získavanie vizuálnych dotazov DAX zo Analyzátor výkonu
Vizuály v zobrazení zostavy získajú údaje z modelu vytvorením dotazu jazyka DAX. Dotaz vizuálu možno zobraziť v zobrazení dotazu jazyka DAX pomocou Analyzátor výkonu. Analyzátor výkonu môžete získať prehľad o tom, prečo môže vizuál zobrazovať neočakávanú hodnotu alebo jednoducho ako spôsob, ako rýchlo spustiť dotaz, ktorý môžete ďalej upravovať.
V zobrazení zostavy prejdite na pás s nástrojmi Optimalizovať a vyberte položku Analyzátor výkonu. Vyberte položku Spustiť nahrávanie a potom položku Obnoviť vizuály. V tabuľke nižšie rozbaľte vizuál a zobrazia sa možnosti kopírovania dotazu alebo spustenia v zobrazení dotazu DAX. Výberom položky Spustiť v zobrazení dotazu jazyka DAX sa vezme dotaz vizuálu, pridá sa ako nová karta Dotaz v zobrazení dotazu JAZYKA DAX a potom sa spustí.
Zobrazenie dotazu DAX a dynamické pripojenie v aplikácii Power BI Desktop
Power BI Desktop sa môže dynamicky pripojiť k publikovanému sémantickému modelu Power BI kliknutím na položku Pripojiť , keď sa v centre údajov OneLake vyberie sémantický model. V pravom dolnom rohu zobrazenia Zostava sa zobrazí dynamicky pripojený k sémantickému modelu služby Power BI. Zobrazenie dotazu jazyka DAX možno použiť na písanie dotazov jazyka DAX, keď sú dynamicky pripojené.
Mierky modelov
Pri dynamickom pripojení k publikovanému sémantickému modelu služby Power BI nie je možné zobraziť ani upraviť mierky modelu. Možnosti rýchlych dotazov sú obmedzené na možnosť Vyhodnotiť.
Mierky zostáv
Pri dynamickom pripojení k publikovanému sémantickému modelu služby Power BI môžete vytvárať mierky zostavy. Mierky zostavy je možné vytvoriť pomocou akcie Nová mierka v zobrazení Zostava a Model , ale ako už názov napovedá, sú k dispozícii len v aktuálnej zostave. Po vytvorení sa v zobrazení dotazu DAX zobrazia rýchle dotazy , ktoré je možné definovať s odkazmi a vyhodnotiť. Dotazy DAX sa spúšťajú v sémantickom modeli, takže mierky zostavy sa musia vždy skonvertovať na mierky rozsahu dotazu DAX v bloku DEFINOVAŤ MIERKU, aby sa spustili, pretože v samotnom modeli neexistujú.
Aktualizácia modelu pomocou tlačidla zmien a možností CodeLens na aktualizáciu modelu nie sú k dispozícii pre mierky zostavy.
Zobrazenie dotazu DAX na webe
Písanie dotazov JAZYKA DAX z publikovaných sémantických modelov používa zobrazenie dotazov jazyka DAX na webe. Zobrazenie dotazu DAX na webe funguje rovnako aj v aplikácii Power BI Desktop s niekoľkými výnimkami.
- Používateľ môže upravovať dátové modely v pracovnom priestore služba Power BI (Preview), nastavenie pracovného priestoru služby Power BI musí byť povolené na zapisovanie dotazov jazyka DAX. Ďalšie informácie nájdete v téme Úprava dátových modelov v služba Power BI.
- Dotazy DAX sa pri zatvorení zahodia. Dotazy DAX v aplikácii Power BI Desktop sa ukladajú do modelu a v sémantickom modeli už môžu mať dotazy DAX uložené v modeli. Zobrazenie dotazu DAX na webe momentálne nebude zobrazovať žiadne predtým uložené dotazy DAX, ktoré môžu existovať v sémantickom modeli, a dotazy vytvorené na webe sa po zatvorení prehliadača neuchovajú.
- Zapisovať dotazy DAX vyžaduje povolenie na zápis v sémantickom modeli. Čitatelia pracovného priestoru musia na písanie dotazov jazyka DAX používať aplikáciu Power BI Desktop so živým pripojením k sémantickému modelu.
Zdieľanie prepojenia dotazu
Dotaz DAX možno pridať ako parameter v URL adrese prepojenia na zobrazenie dotazu jazyka DAX na webe pomocou výrazu ?query= po URL adrese. Text dotazu musí byť kódovaný v URL adrese. Najskôr sa text dotazu komprimuje pomocou formátu GZIP. Po druhé, komprimovaný text dotazu je Base64 kódovaný na použitie v URL adrese. Tým sa zabezpečí, že dotazy DAX môžu byť pridané do URL adresy bez toho, aby zabrali príliš veľa URL adresy a vo formáte kompatibilnom s pridaním do URL adresy. Dotaz:
EVALUATE
{
"Hello world!"
}
Ak chcete vyzerať takto, mali by byť kódované GZIP/Base64 do parametra dotazu URL adresy: H4sIAGz0WcC%2F%2BNyDXP0CXUMceXirObi5FTySM3JyVcozy%2FKSVFU4uKs5VIAAgcqqmGfJQAAAa%3D%3D
Dokopy v URL adrese, ako je táto:
https://app.powerbi.com/groups/<workspace ID or GUID>/modeling/<semantic model ID or GUID>/daxQueryView?query=H4sIAGzZ0WcC%2F%2BNyDXP0CXUMceXirObi5FTySM3JyVcozy%2FKSVFU4uKs5VIAAgCqqmGfJQAAAA%3D%3D
URL adresa by mala obsahovať ID pracovného priestoru a identifikátory ID sémantického modelu zodpovedajúce sémantickému modelu, ktorý by mal dotaz použiť.
Sémantické prepojenie labs má funkciu, ktorá vám pomôže generovať tieto prepojenia v notebooku fabric na https://github.com/microsoft/semantic-link-labs/wiki/Code-Examples#generate-a-url-for-dax-query-view.
Dôležité informácie a obmedzenia
Dôležité informácie, na ktoré treba pamätať:
- Viac ako 500 riadkov v editore dotazov DAX má pri písaní citeľné oneskorenie.
- Rýchle akcie žiarovky pre mierky sa zobrazia len v prípade, že sa na karte dotazu nenachádza žiadny príkaz DEFINE.
- Paleta príkazov zobrazuje niektoré príkazy, ktoré ešte nefungujú.
- Výsledná mriežka nezobrazí stĺpce a mierky so zadaným formátom, ako napríklad Mena, Celé číslo s tisíckami atď.
- Stiahnuť tento súbor zo služby Power BI nebude obsahovať dotazy DAX uložené v publikovanom sémantickom modeli.
- Nastavenie počiatočnej integrácie Git z pracovný priestor nebude obsahovať dotazy DAX uložené v publikovanom sémantickom modeli. Ďalšie informácie nájdete v integrácii Git služby Fabric.
Existuje niekoľko obmedzení, na ktoré treba pamätať:
- Maximálne 15 MB údajov na dotaz. Po prekročení veľkosti 15 MB sa aktuálny riadok dokončí, ale žiadne ďalšie riadky sa nezapisujú.
- Maximálne 1 000 000 hodnôt na dotaz. Ak vytvoríte dotaz na 20 stĺpcov, môžete vrátiť maximálny počet 50 000 riadkov (1 milión vydelených 20).
- Definovať všetky mierky v tejto tabuľke alebo modeli nie je k dispozícii, ak existuje viac ako 500 mierok.
Spúšťanie dotazov DAX na webe má ďalšie obmedzenia:
- Pre každý dotaz sa vráti maximálne 99 999 riadkov.
- Povolenie na zápis v sémantickom modeli. Čitatelia s povolením na vytváranie môžu použiť aplikáciu Power BI Desktop na dynamické pripojenie a používanie zobrazenia dotazov jazyka DAX na spúšťanie dotazov DAX.
- Dostupné iba pre predvolené sémantické modely. Pomocou aplikácie Power BI Desktop sa môžete dynamicky pripojiť k predvolenému sémantickému modelu a spúšťať dotazy DAX pomocou zobrazenia dotazov jazyka DAX.
- Používateľ môže upravovať dátové modely v pracovnom priestore služba Power BI (Preview), nastavenie pracovného priestoru služby Power BI musí byť povolené na zapisovanie dotazov jazyka DAX. Ďalšie informácie nájdete v téme Úprava dátových modelov v služba Power BI