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.
I denne opplæringen lærer du hva en databuffer er og hvorfor den er viktig. En databuffer lagrer databiter som kan bli verdifulle for fremtidig bruk.
Hvis du trenger den samme informasjonen i et fremtidig tiltak eller handling, vil databufferen gi den informasjonen du trenger. Det eliminerer å få systemet til å hente de samme datasettene igjen.
I denne opplæringen vil du gå gjennom åtte viktige ting å huske når du arbeider med databuffere i LuckyTemplates:
Innholdsfortegnelse
Definisjon og formål med en databuffer
En databuffer er en midlertidig tabell opprettet i minnet av . Denne midlertidige tabellen sendes til formelmotoren som deretter itererer over denne informasjonen og utfører forskjellige operasjoner etter spørringen.
All kommunikasjon mellom og lagringsmotoren skjer alltid i form av en databuffer. Formelmotoren forbereder spørringsplanene og sender deretter instruksjonene til lagringsmotoren. Lagringsmotoren sender den deretter tilbake til formelmotoren som returnerer resultatet tilbake til brukeren.
Siden formelmotoren ikke har direkte tilgang til dataene som er lagret i DirectQuery og VertiPaq, er den avhengig av lagringsmotoren for databufferne.
Databufferen sendt av lagringsmotoren er i et ukomprimert format. Dette betyr at størrelsen på dataene som er lagret i Vertipaq-verktøyet kan reduseres.
Men når det er på tide å returnere databufferen tilbake til formelmotoren, kan den ikke komprimeres fordi formelmotoren ikke fungerer med komprimerte datasett.
Hva er en databuffers innvirkning på RAM
Hvis lagringsmotoren sender enorme biter av datacacher, vil dette ta mye plass på programvarens RAM. Det kommer også til å ta en betydelig mengde tid for formelmotoren å utføre iterasjoner og produsere et resultat.
Så når du skriver DAX-koden din, må du forstå at den skal skrives på en måte som minimerer radene i databufferen.
Det beste scenarioet ville være å matche antall rader som vises i visualiseringen med antall rader som returneres i databufferen.
Mesteparten av tiden er det vanskelig å returnere samme antall rader. Hvis dette skjer, må du gjennomgå DAX-koden din og bryte den ned på en måte som optimaliserer databufferen som produseres av lagringsmotoren.
Hvordan en databuffer optimaliserer spørringer
Uoptimaliserte funksjoner
Noen av funksjonene i DAX-språket er ikke optimalisert for lagringsmotoren. For bedre å forstå dette, la oss se på et eksempel.
For eksempel, i koden din, i stedet for å bruke SUMMARIZE, kan du bruke funksjonen. SUMMARIZE- og GROUPBY-funksjonene utfører samme operasjon. Det er imidlertid betydelige forskjeller avhengig av scenariet.
GROUPBY-funksjonen er ikke optimalisert for Storage Engine. Hvis du bruker GROUPBY-funksjonen på en faktatabell med 12 millioner rader, vil den produsere en databuffer med samme antall rader. Dette kan være så stort som 600mb opp til 1gb.
Denne størrelsen kan legge mye press på RAM-en din. Så i stedet for å bruke GROUPBY, bruk . SUMMARIZE-funksjonen resulterer i en mindre databufferstørrelse. Du kan pare den med GROUPBY som en funksjon på toppnivå.
Reduserte gjentakelser
Når du skriver DAX-målene eller -spørringene dine, må du sørge for at koden som produseres bak kulissene er egnet for lagringsmotoren.
Du må skrive DAX-koden din på en måte som produserer databuffer som også kan brukes i påfølgende spørringer. Fordelen med å gjøre dette er at i stedet for å utføre en separat skanning med , vil lagringsmotoren sjekke om en lignende spørring allerede er mottatt.
Hvis dette er sant, betyr det at databufferen er tilgjengelig i minnet. Så i stedet for å skanne spørringen på nytt, vil VertiPaq ganske enkelt returnere den fra hurtigbufferminnet til formelmotoren.
Hvis du ser en spørring i lagringsmotoren, betyr det at disse spørringene ikke kan bufres. Hvis i tilfelle en lignende spørring sendes til lagringsmotoren, vil den utføre en repetisjon.
Dermed må VertiPaq kalle opp formelmotoren for å løse spørringen. Dette øker den totale utførelsestiden fordi cache-minnet ikke kan brukes i dette tilfellet.
Konklusjon
Databufferen er din beste venn på DAX-språket. Husk å skrive DAX-koden din på en måte som maksimerer lagringsplassen og reduserer VertiPaq-verktøyets antall iterasjoner. Du kan gjenbruke databufferen som allerede er produsert av Storage Engine for å redusere utføringstiden for spørringen.
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