Pipe In R: Anslutningsfunktioner med Dplyr
I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.
Denna handledning kommer att diskutera materialisering för datacachar i DAX Studio. Det här inlägget kommer att visa hur det påverkar din beräkning samtidigt som det genererar resultat med din fråga. Du kommer att lära dig vilken materialisering som är bättre för att maximera DAX:s prestanda.
Det finns två idéer om materialisering: tidig materialisering och sen materialisering .
Innehållsförteckning
Tidig materialisering
Tidig materialisering är när antalet materialiserade rader är större än antalet rader som behövs för utdata.
Om din produktion är en tabell per kalenderår och du har fem års data, är det onödigt att ta med många materialiserade rader. Den bästa praxisen är att ha antalet materialiserade rader lika med antalet rader som behövs. Men det är inte alltid fallet eftersom det beror på komplexiteten i dittoch datainställning.
Kom alltid ihåg att data består av kolumner. Så när formelmotorn behöver arbeta på en tabell, sammanförs kolumner igen i ett tabellformat, vilket är materialiseringen. I en idé om tidig materialisering skickar lagringsmotorn datacache till formelmotorn. Formelmotorn arbetar sedan på den cachen och utför komplexa processer.
Tidig materialisering kan orsakas av att du har komplexa kopplingar eller en många-till-många-relation i dina datamodeller. Det kan också orsakas av att ha komplexa filter eller iteratorer.
Det är inte fel att ha komplexa åtgärder; du måste bara ställa in dem korrekt för att utnyttja lagringsmotorn så mycket som möjligt.
Sen materialisering
Sen materialisering är när du har antalet materialiserade rader lika med eller nära antalet rader som behövs för din produktion.
Lagringsmotorn gör nästan allt arbete och lämnar ingenting till formelmotorn. Detta gör hela beräkningen snabbare.
Det här är exempel på frågor om tidig och sen materialisering:
Innan du kör dessa frågor, se till att rensa cachen. Detta kommer att få dina frågor att köras mot den kalla cachen. Om du kör din DAX utan att rensa cacheminnet får du det här resultatet:
Den totala exekveringstiden är bara 1861 millisekunder eftersom den redan använde en cache. Så rensa alltid din cache innan du kör dina frågor.
Om du kör frågan om tidig materialisering kan du se att den totala tiden det tog är 9485 millisekunder. Den genererade en datacache och en enradsutgång men returnerade 25 miljoner rader.
Du behöver inte materialisera 25 miljoner rader för att få ett enradsresultat eftersom det tar tid och saktar ner DAX:s prestanda.
Om du kör sökfrågan Late Materialization kan du se att hela beräkningen bara tog 1340 millisekunder. Det genererade också 2 datacacher, med vardera 5003 rader.
Om du tittar på den fysiska frågeplanen kan du se 5000 rader. De har inte lika många rader. Serverns resultat kommer ibland att ha en liten avvikelse till det exakta antalet rader i frågeplanen.
Så från att arbeta på en datacache med 25 miljoner rader har du nu två datacache med 5003 rader. Det är därför som arbete med Later Materialization får snabbare resultat än Early Materialization.
Inuti varje materialiseringsfråga
Genom att bara titta på frågan kan du redan se att den senare materialiseringen är snabbare. Frågan om tidig materialisering räknar raderna i en sammanfattad tabell.
Tabellen som sammanfattas och materialiseras är större än att bara göra enav på bordet, vilket är vad Late Materialization-frågan gör.
Om din fråga är långsam, börja med att titta på hur många rader som dras i din fråga och hur många som behövs för utdata. Du kan också gå till den logiska frågeplanen och följa flödet av arbete som sker inom beräkningen.
Slutsats
Materialisering sker när dina frågor drar kolumner eller rader från din datamodell. Denna process sker naturligt när din motor får data från din datamodell för att ge resultat för din fråga.
Däremot kan problem uppstå om din DAX drar för många rader än vad som behövs för resultatet. Det här problemet kan lösas genom att förenkla din DAX för att utföra specifika processer.
I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.
RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.
Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!
Excel Formler Fuskblad: Mellanvägledning
LuckyTemplates Kalendertabell: Vad är det och hur man använder det
Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.
Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.
Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.
I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.
Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.