Variabler og uttrykk i Power Query Editor
Denne opplæringen vil diskutere om variabler og uttrykk i Power Query Editor. Du lærer hvordan du skriver og bygger dem riktig.
Bådeoger kraftige verktøy for å manipulere og analysere data i DAX-søk, men de har noen viktige forskjeller som er viktige å forstå.
I denne bloggen skal vi gå over CALCUATETABLE -funksjonen og dens , og forstå hvordan den skiller seg fra FILTER -funksjonen. Mot slutten vil du ha en bedre forståelse av hvordan du velger riktig funksjon for dine dataanalysebehov.
For å demonstrere bruker vi DAX-koden nedenfor.
Når du kjører denne koden, får du en tabell som viser merke og farge.
I kategorien Spørringsplaner får du en kode som tilsvarer CrossApply- operatøren i .
Samtidig kan du se at koden kun henter produktfarge og merke i fanen Server Timings .
Innholdsfortegnelse
DAX Studio Server Timings Resultat for KALKULERTABELL
Som et eksempel, la oss filtrere produktfargen til kun å vise rød og/eller svart.
Du kan gjøre det ved å bruke FILTER-funksjonen. Når du kjører det, vil Server Timings vise at FILTER-argumentet ikke brukes på .
Men hvis du bruker CALCUATETABLE-funksjonen, vil spørringen i fanen Server Timings vise at resultatene er filtrert etter produktfarge.
Kalkylerbar Spørreplan i DAX Studio
La oss se på spørreplanen for hver funksjon.
CALCULATETABLE er på den første linjen i den logiske spørreplanen fordi det er en funksjon på toppnivå i koden og derfor ikke er avhengig av noen krav.
Når du leser spørringsplanen til en CALCULATETABLE-funksjon, starter du ikke med det første argumentet. Du må først forstå filterkonteksten som brukes. Så la oss gå til linje 5.
Du kan se at operatøren krever produktfargekolonnen på grunn av det anvendte filteret. Den skanner deretter denne kolonnen og bruker Not IsEmpty- filterkombinasjonen for å sjekke produktfargen mot hver rad.
Etter at filterkonteksten er utarbeidet, utføres argumentet.
I ettertid, hvis du bruker FILTER-funksjonen, vil du se en annen spørringsplan, så CROSSJOIN-argumentet utføres før filterkonteksten identifiseres.
Ulempen med denne tilnærmingen er at den ikke skyver filtertilstanden til lagringsmotoren. Du vil ikke kunne bruke WHERE- klausulen inne i xmSQL som vil legge en tung byrde på Formula Engine.
Og når du jobber med flere tabeller, vil filterkombinasjonen av CROSSJOIN-funksjonen være enorm. Dette reduserer ytelsen til DAX-koden. Derfor anbefales det i de fleste tilfeller å bruke CALCUATETABLE-funksjonen.
Så i stedet for å utføre alle beregningene i Formula Engine, kan du injisere filtertilstanden i WHERE-klassen til XMSQL-koden.
Kontekstovergang for lignende DAX-funksjoner
Servertidspunkter
Dette konseptet kan også brukes for CALCUATE-funksjonen. La oss bruke DAX-koden nedenfor som et eksempel.
Et mål har automatisk en CALCUATE-funksjon rundt seg.
Når du kjører denne koden, får du en tabell som viser det totale salgsbeløpet for hver farge.
I fanen Server Timings kan du se at koden utfører to spørringer. Den første spørringen beregner summen av salgsbeløpet fra salgstabellen i forhold til produkttabellen.
På den annen side henter den andre spørringen produktfargen igjen fra produkttabellen. Den tilsvarer funksjonen i DAX-koden.
Formula Engine plasserer databuffrene til de to spørringene side om side. Den starter med å hente verdiene fra den andre databufferen og utfører deretter et oppslag i den første databufferen.
Spørreplan
I kategorien Spørringsplan skanner den logiske spørreplanen produktfargen på grunn av argumentet.
Deretter summerer VertiPaq det totale salgsbeløpet avhengig av produktfargen. Den utfører kontekstovergangen som konverterer produktfargeverdien til en tilsvarende filterkontekst.
Filteret opprettet av kontekstovergangen blir oversatt til en DependOnCols- egenskap i spørringsplanen. Etter at VertiPaq skanner kolonnene som kreves for å beregne totalt salg, multipliserer den salgsmengden med nettoprisen.
Totalt salg returneres deretter som et resultat i form av en valutadatatype. Og til slutt returnerer ADDCOLUMNS en tabell med to kolonner som inneholder farge og totalt salgsbeløp.
Konklusjon
Spørringsplanen kan ha en betydelig innvirkning på ytelsen til en spørring, ettersom ulike spørringsplaner kan ha ulike effektivitetsnivåer.
Når du bruker funksjonene CALCULATETABLE og FILTER i en DAX-spørring, kan spørringsplanen variere avhengig av det spesifikke scenariet og en rekke faktorer, for eksempel det spesifikke formeluttrykket som brukes og søkemotorens funksjoner.
Generelt er det en god idé å teste og sammenligne ytelsen til forskjellige spørringsplaner for å finne den mest effektive tilnærmingen for et gitt scenario.
Beste ønsker,
Denne opplæringen vil diskutere om variabler og uttrykk i Power Query Editor. Du lærer hvordan du skriver og bygger dem riktig.
Et LuckyTemplates-varmekart er en type visualisering som brukes til å vise datatetthet på et kart. I denne opplæringen vil jeg diskutere hvordan vi kan lage en – ikke gå glipp av noe!
Jeg skal lære deg et veldig interessant eksempel rundt Pareto-prinsippet og hvordan du lager et Pareto-diagram ved hjelp av viktige DAX-formler.
Lær hvordan et tilpasset stolpediagram på markedsplassen kan brukes til datasammenligning og hvordan du kan lage dem ved å bruke eksempler i LuckyTemplates.
Lær hvordan Power Automate Static Results-funksjonen fungerer og hvorfor det er bra å bli lagt til de beste praksisene når du lager flytdiagrammer.
eDNA demonstrerer hvordan du utfører språk- eller tekstoversettelse ved hjelp av Python og overfører det til LuckyTemplates. LuckyTemplates Python-opplæring.
I denne opplæringen lærer du hvordan du bruker Gauge Bullet Graph til å lage et Gantt-diagram i LuckyTemplates Report Builder.
I denne opplæringen lærer du hvordan du lager et tredimensjonalt (3D) spredningsplott ved å bruke Python i LuckyTemplates.
Effektiv LuckyTemplates-rapportering – øktgjennomgang og ressursnedlasting
Ny kundeanalyse med LuckyTemplates – Neste medlemsbegivenhet