UNION DAX Funktion kontra Power Query

I den här handledningen lär du dig att använda UNION-funktionen. Denna handledning kommer att jämföra prestandan för UNION-funktionen med och andra tekniker för att kombinera tabeller.

Defunktion kombinerar två tabeller till en enda tabell genom att kombinera deras rader och ta bort eventuella dubbletter.

Exemplet i denna handledning är en försäljningstabell som har delats upp i tre tabeller för varje år (2007, 2008, 2009).

Innehållsförteckning

UNION-funktionen i DAX

Öppna och starta Server Timings and Query Plan.

UNION DAX Funktion kontra Power Query

DAX-koden nedan används som exempel:

UNION DAX Funktion kontra Power Query

När du har kört koden, gå till fliken Server Timings . Du kan se att koden tar totalt 5,4 sekunder att exekvera. Det mesta av avrättningstiden spenderades i . Var och en av dessa tre frågor innehåller samma operation, men åren är olika.

UNION DAX Funktion kontra Power Query

Efter att dessa tre frågor har returnerats av Storage Engine, utför den en UNION, som kan ses i den logiska frågeplanen. Frågeplanen utför också en beräkning av total försäljning.

UNION DAX Funktion kontra Power Query

I den fysiska frågeplanen kan du se de tre datacacharna som innehåller de operationer som utförs för varje år i tabellen Försäljning.

UNION DAX Funktion kontra Power Query

Jämför DAX-prestanda

För att bygga jämförelsen, låt oss skapa ett mått för total försäljning med den ursprungliga försäljningstabellen.

UNION DAX Funktion kontra Power Query

Om du kör den här koden och går till fliken Server Timings kan du se att detta är betydligt effektivare än UNION-funktionen.

UNION-funktionen förbrukar 97,9 kilobyte medan det nya måttet bara förbrukar 1KB.

UNION DAX Funktion kontra Power Query

När du använder UNION returnerar DAX Engine en enorm mängd datacache tillbaka till Formula Engine. Detta sätter stor press på RAM-minnet.

Så om du har att göra med en datamodell som innehåller mer än en miljon rader, rekommenderas det inte att använda UNION-funktionen

UNION DAX funktionsalternativ

Istället för att använda UNION kan du använda tre SUMX- funktioner för detta exempel. Det vill säga en SUMX-funktion för varje år.

UNION DAX Funktion kontra Power Query

När du kör den här koden och går till fliken Server Timings kan du se att exekveringstiden är betydligt lägre. Det gick från 5 400 ms till 33 ms medan det fortfarande kördes tre olika frågor.

UNION DAX Funktion kontra Power Query

Ett annat sätt är att lägga till tabellen Data Model i Power Query eller i själva datakällan.

Men det bästa alternativet är att skapa en som kommer att utföra föreningen av dessa tre tabeller. Men det här alternativet har sina för- och nackdelar.

Genom att använda en beräknad tabell kan du spara den totala bearbetningstiden i motsats till att utföra ett tillägg i Power Query. Detta kommer dock att göra att databasstorleken i VertiPaq ökar.

När du använder en beräknad tabell skapar du en ny tabell som kombinerar de tre tabellerna. Men dessa tre delade tabellerna kommer att fortsätta att finnas kvar i databasen.

UNION DAX Funktion kontra Power Query

I det här exemplet förbrukar de tre tabellerna totalt 25 MB. Om du skapar en beräknad tabell kommer den att förbruka ytterligare 25 MB i ditt RAM-minne.

För känsliga fall som dessa måste du fatta ett välgrundat beslut om vad som skulle vara det bästa sättet att vidta.

Slutsats

UNION-funktionen i DAX kombinerar två tabeller till en, vilket gör det lättare att analysera data. Det fungerar genom att ta två tabeller som indata och returnera en ny tabell som innehåller alla rader från båda inmatningstabellerna. Denna funktion har dock sina egna begränsningar.

UNION-funktionen kan vara långsammare än andra metoder för att kombinera data, särskilt om inmatningstabellerna är stora. Det kan också förbruka mer utrymme i förvaringen till skillnad från andra alternativ.

Närhelst en situation kräver att tabeller kombineras, är det viktigt att först väga för- och nackdelar innan du bestämmer dig för att använda UNION-funktionen. Dina alternativ inkluderar SUMX-funktionen, en datamodelltabell eller en beräknad tabell.

Med vänliga hälsningar,


Pipe In R: Anslutningsfunktioner med Dplyr

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.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

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.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

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

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

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.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

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.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

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.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

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.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

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.