Ta reda på när du ska utveckla en DirectQuery-modell
En DirectQuery-modell består av tabeller som har sin egenskap för lagringsläge inställd på DirectQuery, och de tillhör samma källgrupp.
En källgrupp är en uppsättning modelltabeller som är relaterade till en datakälla. Det finns två typer:
- Import – Representerar alla tabeller i importlagringsläge, inklusive beräknade tabeller. Det kan bara finnas en importkällagrupp i en modell.
- DirectQuery – Representerar alla DirectQuery-lagringslägestabeller som är relaterade till en specifik datakälla.
Kommentar
En importmodell och en DirectQuery-modell består bara av en enda källgrupp. När det finns mer än en källgrupp kallas modellramverket för en sammansatt modell. Sammansatta modeller beskrivs i enhet 5.
DirectQuery-modellfördelar
Det finns flera fördelar med att utveckla en DirectQuery-modell.
Modellera stora eller snabbt föränderliga datakällor
En DirectQuery-modell är ett bra ramverksval när dina källdata uppvisar volym- och/eller hastighetsegenskaper. Eftersom DirectQuery-tabeller inte kräver uppdatering passar de bra för stora datalager, till exempel ett informationslager. Det är opraktiskt och ineffektivt, om inte omöjligt, att importera ett helt informationslager till en modell. När källdata ändras snabbt och användarna behöver se aktuella data kan en DirectQuery-modell leverera frågeresultat i nära realtid.
När en rapport frågar en DirectQuery-modell skickar Power BI dessa frågor till den underliggande datakällan.
Framtvinga käll-RLS
DirectQuery är också användbart när källdatabasen tillämpar säkerhet på radnivå (RLS). I stället för att replikera RLS-regler i Power BI-modellen kan källdatabasen tillämpa sina regler. Den här metoden fungerar bara för vissa relationsdatabaser och innebär att konfigurera enkel inloggning för datamängdens datakälla. Mer information finns i Azure SQL Database med DirectQuery.
Begränsningar för datasuveränitet
Om din organisation har säkerhetsprinciper som begränsar data som lämnar deras lokaler går det inte att importera data. En DirectQuery-modell som ansluter till en lokal datakälla kan vara lämplig. (Du kan också överväga att installera Power BI-rapportserver för lokal rapportering.)
Skapa specialiserade datauppsättningar
DirectQuery-läget stöder vanligtvis relationsdatabaskällor. Det beror på att Power BI måste översätta analysfrågor till interna frågor som datakällan förstår.
Det finns dock ett kraftfullt undantag. Du kan ansluta till en Power BI-datauppsättning (eller Azure Analysis Services-modell) och konvertera den till en lokal DirectQuery-modell. En lokal modell är en relativ term som beskriver en modells relation till en annan modell. I det här fallet är den ursprungliga datamängden en fjärrmodell och den nya datauppsättningen är den lokala modellen. Dessa modeller är länkade, vilket är en term som används för att beskriva relaterade modeller. Du kan länka upp till tre modeller på det här sättet.
Den här funktionen för att länka modeller stöder möjligheten att anpassa och/eller utöka en fjärrmodell. Det enklaste du kan göra är att byta namn på objekt, till exempel tabeller eller kolumner, eller lägga till mått i den lokala modellen. Du kan också utöka modellen med beräknade kolumner eller beräknade tabeller eller lägga till nya import- eller DirectQuery-tabeller. Dessa tillägg resulterar dock i att nya källgrupper skapas, vilket innebär att modellen blir en sammansatt modell. Det scenariot beskrivs i enhet 5.
Mer information finns i Använda DirectQuery för Power BI-datauppsättningar och Azure Analysis Services.
Begränsningar för DirectQuery-modell
Det finns många begränsningar som rör DirectQuery-modeller som du måste tänka på. Här är de viktigaste begränsningarna:
Alla datakällor stöds inte. Vanligtvis stöds endast större relationsdatabassystem. Power BI-datauppsättningar och Azure Analysis Services-modeller stöds också.
Alla Power Query-transformeringar (M) är inte möjliga, eftersom dessa frågor måste översättas till interna frågor som förstås av källsystem. Det går till exempel inte att använda pivot- eller unpivot-transformeringar.
Analysfrågans prestanda kan vara långsam, särskilt om källsystemen inte är optimerade (med index eller materialiserade vyer) eller om det inte finns tillräckligt med resurser för analysarbetsbelastningen.
Analysfrågor kan påverka källsystemprestanda. Det kan leda till en långsammare upplevelse för alla arbetsbelastningar, inklusive OLTP-åtgärder.
Öka DirectQuery-modellprestanda
När det finns en motivering för att utveckla en DirectQuery-modell kan du minska vissa begränsningar på två sätt.
Optimering av datakälla
Du kan optimera källdatabasen för att säkerställa att den förväntade analysfrågearbetsbelastningen fungerar bra. Mer specifikt kan du skapa index och materialiserade vyer och se till att databasen har tillräckligt med resurser för alla arbetsbelastningar.
Dricks
Vi rekommenderar att du alltid arbetar i samarbete med databasägaren. Det är viktigt att de förstår den ytterligare arbetsbelastning som en DirectQuery-modell kan placera i databasen.
DirectQuery-användardefinierade sammansättningstabeller
Du kan lägga till användardefinierade sammansättningstabeller i en DirectQuery-modell. Användardefinierade sammansättningstabeller är särskilda modelltabeller som är dolda (från användare, beräkningar och RLS). De fungerar bäst när de uppfyller analysfrågor med högre kornighet över stora faktatabeller. När du anger att sammansättningstabellen ska använda DirectQuery-lagringsläge kan den fråga en materialiserad vy i datakällan. Du kan också ange att en aggregeringstabell ska använda importlagringsläge eller aktivera automatiska aggregeringar, och dessa alternativ beskrivs i enhet 4.
Mer information finns i DirectQuery-modellvägledning i Power BI Desktop.