Semantiska modelllägen i Power BI-tjänst

Den här artikeln innehåller en teknisk förklaring av power BI-semantiska modelllägen. Den gäller för semantiska modeller som representerar en live-anslutning till en analysis services-modell med extern värd och även för modeller som utvecklats i Power BI Desktop. I artikeln betonas logiken för varje läge och möjliga effekter på Power BI-kapacitetsresurser.

De tre semantiska modelllägena är:

Importläge

Importläge är det vanligaste läget som används för att utveckla semantiska modeller. Det här läget ger snabba prestanda tack vare minnesintern frågekörning. Det ger också designflexibilitet för modellerare och stöd för specifika Power BI-tjänst funktioner (Q&A, Snabbinsikter osv.). På grund av dessa styrkor är det standardläget när du skapar en ny Power BI Desktop-lösning.

Det är viktigt att förstå att importerade data alltid lagras på disk. När du frågar eller uppdaterar måste data läsas in helt i minnet för Power BI-kapaciteten. En gång i minnet kan importmodeller sedan uppnå mycket snabba frågeresultat. Det är också viktigt att förstå att det inte finns något begrepp om att en importmodell delvis läses in i minnet.

När de uppdateras komprimeras och optimeras data och lagras sedan på disk av VertiPaq-lagringsmotorn. När du läser in från disken till minnet går det att se 10-gångers komprimering. Därför är det rimligt att förvänta sig att 10 GB källdata kan komprimeras till cirka 1 GB i storlek. Lagringsstorleken på disken kan minskas med 20 % jämfört med den komprimerade storleken. Skillnaden i storlek kan fastställas genom att jämföra Power BI Desktop-filstorleken med Task Manager-minnesanvändningen för filen.

Designflexitet kan uppnås på tre sätt:

  • Integrera data genom att cachelagra data från dataflöden och externa datakällor, oavsett typ eller format av datakälla.
  • Använd hela uppsättningen Power Query M-formelspråk, som kallas M, funktioner när du skapar frågor för dataförberedelse.
  • Använd hela uppsättningen DAX-funktioner (Data Analysis Expressions) när du förbättrar modellen med affärslogik. Det finns stöd för beräknade kolumner, beräknade tabeller och mått.

Som du ser i följande bild kan en importmodell integrera data från valfritt antal typer av datakällor som stöds.

Diagram shows an Import model can integrate data from any number of external data source types.

Även om det finns övertygande fördelar med importmodeller finns det också nackdelar:

  • Hela modellen måste läsas in i minnet innan Power BI kan köra frågor mot modellen, vilket kan sätta press på tillgängliga kapacitetsresurser, särskilt när antalet och storleken på importmodeller växer.
  • Modelldata är bara lika aktuella som den senaste uppdateringen, och därför måste importmodeller uppdateras, vanligtvis enligt schema.
  • En fullständig uppdatering tar bort alla data från alla tabeller och läser in dem från datakällan igen. Den här åtgärden kan vara dyr när det gäller tid och resurser för Power BI-tjänst och datakällorna.

Kommentar

Power BI kan uppnå inkrementell uppdatering för att undvika att trunkera och läsa in hela tabeller igen. Mer information, inklusive planer och licensiering som stöds, finns i Inkrementell uppdatering och realtidsdata för semantiska modeller.

Ur ett Power BI-tjänst resursperspektiv kräver importmodeller:

  • Tillräckligt med minne för att läsa in modellen när den efterfrågas eller uppdateras.
  • Bearbeta resurser och extra minnesresurser för att uppdatera data.

DirectQuery-läge

DirectQuery-läge är ett alternativ till importläge. Modeller som utvecklats i DirectQuery-läge importerar inte data. I stället består de bara av metadata som definierar modellstrukturen. När modellen efterfrågas används interna frågor för att hämta data från den underliggande datakällan.

Diagram shows how DirectQuery model issues native queries to the underlying data source.

Det finns två huvudsakliga skäl att överväga att utveckla en DirectQuery-modell:

  • När datavolymerna är för stora, även när metoder för dataminskning tillämpas, för att läsas in i en modell eller uppdateras praktiskt taget.
  • När rapporter och instrumentpaneler behöver leverera data i nära realtid , utöver vad som kan uppnås inom schemalagda uppdateringsgränser. Schemalagda uppdateringsgränser är åtta gånger om dagen för delad kapacitet och 48 gånger om dagen för en Premium-kapacitet.

Det finns flera fördelar med DirectQuery-modeller:

  • Importmodellens storleksgränser gäller inte.
  • Modeller kräver inte schemalagd datauppdatering.
  • Rapportanvändare ser de senaste data när de interagerar med rapportfilter och utsnitt. Rapportanvändare kan också uppdatera hela rapporten för att hämta aktuella data.
  • Realtidsrapporter kan utvecklas med hjälp av funktionen Automatisk siduppdatering .
  • Paneler på instrumentpanelen, när de baseras på DirectQuery-modeller, kan uppdateras automatiskt så ofta som var 15:e minut.

Det finns dock vissa begränsningar som är associerade med DirectQuery-modeller:

  • Power Query-/Kombinationsuttryck kan bara vara funktioner som kan transponeras till interna frågor som datakällan förstår.
  • DAX-formler är begränsade till att endast använda funktioner som kan transponeras till interna frågor som datakällan förstår. Beräknade tabeller stöds inte.
  • Snabbinsikter funktioner stöds inte.

Från ett Power BI-tjänst resursperspektiv kräver DirectQuery-modeller:

  • Minimalt minne för att läsa in modellen (endast metadata) när den efterfrågas.
  • Ibland måste Power BI-tjänst använda betydande processorresurser för att generera och bearbeta frågor som skickas till datakällan. När den här situationen uppstår kan det påverka dataflödet, särskilt när samtidiga användare kör frågor mot modellen.

Mer information finns i Använda DirectQuery i Power BI Desktop.

Sammansatt läge

Sammansatt läge kan blanda import- och DirectQuery-lägen eller integrera flera DirectQuery-datakällor. Modeller som utvecklats i sammansatt läge stöder konfiguration av lagringsläget för varje modelltabell. Det här läget stöder även beräknade tabeller som definierats med DAX.

Tabelllagringsläget kan konfigureras som Import, DirectQuery eller Dual. En tabell som har konfigurerats som läget För dubbla lagringar är både Import och DirectQuery, och med den här inställningen kan Power BI-tjänst fastställa det mest effektiva läget att använda på fråge-för-fråga-basis.

Diagram shows that a Composite model is a combination of Import and DirectQuery storage modes, configured at table level.

Sammansatta modeller strävar efter att leverera det bästa av import- och DirectQuery-lägen. När de har konfigurerats på rätt sätt kan de kombinera hög frågeprestanda för minnesinterna modeller med möjlighet att hämta data i nära realtid från datakällor.

Mer information finns i Använda sammansatta modeller i Power BI Desktop.

Tabeller med ren import och DirectQuery

Datamodellerare som utvecklar sammansatta modeller kommer sannolikt att konfigurera tabeller av dimensionstyp i import- eller dubbellagringsläge och tabeller av faktatyp i DirectQuery-läge. Mer information om modelltabellroller finns i Förstå star-schema och vikten för Power BI.

Tänk dig till exempel en modell med en tabell av typen Produktdimension i dubbelt läge och en tabell av faktatyp för försäljning i DirectQuery-läge. Tabellen Produkt kan efterfrågas effektivt och snabbt från minnet för att återge ett rapportsnitt. Tabellen Försäljning kan också efterfrågas i DirectQuery-läge med den relaterade produkttabellen . Den senare frågan kan möjliggöra generering av en enda effektiv intern SQL-fråga som ansluter tabellerna Produkt och Försäljning och filtrerar efter utsnittsvärdena.

Hybridtabeller

Datamodellerare som utvecklar sammansatta modeller kan också konfigurera faktatabeller som hybridtabeller. En hybridtabell är en tabell med en eller flera importpartitioner och en DirectQuery-partition. Fördelen med en hybridtabell är att den kan efterfrågas effektivt och snabbt från minnet samtidigt som de senaste dataändringarna från datakällan som inträffade efter den senaste importcykeln, som följande visualisering illustrerar.

Screenshot shows a hybrid table partition with Archived, Incremental refresh, and Real time rows marked.

Det enklaste sättet att skapa en hybridtabell är att konfigurera en inkrementell uppdateringsprincip i Power BI Desktop och aktivera alternativet Hämta de senaste data i realtid med DirectQuery (endast Premium). När Power BI tillämpar en inkrementell uppdateringsprincip som har det här alternativet aktiverat partitionerar den tabellen som partitioneringsschemat som visades i föregående diagram. För att säkerställa bra prestanda konfigurerar du dina tabeller av dimensionstyp i läget Dubbla lagring så att Power BI kan generera effektiva interna SQL-frågor när du kör frågor mot DirectQuery-partitionen.

Kommentar

Power BI stöder endast hybridtabeller när den semantiska modellen finns på arbetsytor på Premium-kapaciteter. Därför måste du ladda upp din semantiska modell till en Premium-arbetsyta om du konfigurerar en inkrementell uppdateringsprincip med alternativet att hämta de senaste data i realtid med DirectQuery. Mer information finns i Inkrementell uppdatering och realtidsdata för semantiska modeller.

Det går också att konvertera en importtabell till en hybridtabell genom att lägga till en DirectQuery-partition med hjälp av TMSL (Tabular Model Scripting Language) eller TOM (Tabular Object Model) eller med hjälp av ett verktyg från tredje part. Du kan till exempel partitioneras en faktatabell så att huvuddelen av data finns kvar i informationslagret medan endast en bråkdel av de senaste data importeras. Den här metoden kan hjälpa till att optimera prestanda om huvuddelen av dessa data är historiska data som används sällan. En hybridtabell kan ha flera importpartitioner, men bara en DirectQuery-partition.