Optimera DirectQuery-modeller med lagring på tabellnivå

Slutförd

DirectQuery är ett sätt att hämta data till Power BI Desktop. DirectQuery-metoden innebär att ansluta direkt till data i källdatabasen från Power BI Desktop. Det är ett alternativ till att importera data till Power BI Desktop.

Skärmbild som visar hur du använder DirectQuery-alternativet för att hämta data.

När du använder DirectQuery-metoden beror den övergripande användarupplevelsen på den underliggande datakällans prestanda. Långsamma svarstider för en fråga leder till en negativ användarupplevelse, och i värsta fall kan frågor passera tidsgränsen. Dessutom påverkar antalet användare som öppnar rapporterna belastningen på datakällan. Om din rapport till exempel innehåller 20 visuella objekt och 10 personer använder rapporten, finns 200 frågor eller mer på datakällan eftersom varje visualisering kommer att utfärda en eller flera frågor.

Tyvärr påverkas inte prestanda för din Power BI-modell enbart av prestanda för den underliggande datakällan, utan även av andra icke-kontrollerbara faktorer, till exempel:

  • Nätverksfördröjning; snabbare nätverk returnerar data snabbare.

  • Prestanda för datakällans server och hur många andra arbetsbelastningar som finns på den servern. Du kan till exempel ta hänsyn till konsekvenserna av en serveruppdatering som genomförs medan hundratals personer använder samma server av olika anledningar.

Därför innebär användningen av DirectQuery en risk för kvaliteten på modellens prestanda. För att optimera prestanda i den här situationen måste du ha kontroll över eller åtkomst till källdatabasen.

Mer detaljerad information finns i Vägledning för DirectQuery-modell i Power BI Desktop.

Effekter av att använda DirectQuery

Det är bäst att importera data till Power BI Desktop, men din organisation kan behöva använda DirectQuery-dataanslutningsläget på grund av någon av följande orsaker (fördelarna med DirectQuery):

  • Det är lämpligt i fall där data ändras ofta och rapportering i så gott som realtid krävs.

  • Den kan hantera stordata utan att behöva föraggregera.

  • Den tillämpar datasuveränitetsbegränsningar för att uppfylla juridiska krav.

  • Den kan användas med en flerdimensionell datakälla som innehåller mått som SAP Business Warehouse (BW).

Om din organisation behöver använda DirectQuery bör du tydligt förstå dess beteende i Power BI Desktop och vara medveten om dess begränsningar. Du kommer sedan att kunna vidta åtgärder för att optimera DirectQuery-modellen så mycket som möjligt.

Beteende för DirectQuery-anslutningar

När du använder DirectQuery för att ansluta till data i Power BI Desktop fungerar den anslutningen på följande sätt:

  • När du använder funktionen Hämta data i Power BI Desktop väljer du källan. Om du ansluter till en relationskälla kan du välja en uppsättning tabeller. Då definierar var och en en fråga som logiskt returnerar en datamängd. Om du väljer en flerdimensionell källa, till exempel SAP BW, kan du bara välja källan.

  • När du läser in data importeras inga data till Power BI Desktop. Endast schemat läses in. När du skapar ett visuellt objekt i Power BI Desktop skickas frågor till den underliggande källan för att hämta nödvändiga data. Hur lång tid det tar att uppdatera det visuella objektet beror på den underliggande datakällans prestanda.

  • Om ändringar görs i underliggande data återspeglas de inte direkt i befintliga visuella objekt i Power BI på grund av cachelagring. Du måste utföra en uppdatering för att se ändringarna. De nödvändiga frågorna finns för varje visuellt objekt och de visuella objekten uppdateras därefter.

  • När du publicerar rapporten till Power BI-tjänst resulterar den i en semantisk modell i Power BI-tjänst, samma som för import. Inga data ingår dock i den semantiska modellen.

  • När du öppnar en befintlig rapport i Power BI-tjänsten eller skapar en ny frågas den underliggande källan om hämtning av nödvändiga data. Beroende på den ursprungliga källans plats kan du behöva konfigurera en lokal datagateway.

  • Du kan fästa visuella objekt, eller hela rapportsidor, som paneler på instrumentpanelen. Panelerna uppdateras automatiskt enligt ett schema, till exempel varje timme. Du kan styra uppdateringsfrekvensen så att den uppfyller dina krav. När du öppnar en instrumentpanel återspeglar panelerna data vid tidpunkten för den senaste uppdateringen, och de kanske inte innehåller de senaste ändringarna som gjorts i den underliggande datakällan. Du kan alltid uppdatera en öppen instrumentpanel för att säkerställa att den är uppdaterad.

Begränsningar för DirectQuery-anslutningar

Användningen av DirectQuery kan ha negativa följder. Begränsningarna varierar beroende på datakällan som används. Du bör tänka på följande:

  • Prestanda – Som vi tog upp tidigare beror den övergripande användarupplevelsen på den underliggande datakällans prestanda.

  • Säkerhet – Om du använder flera datakällor i en DirectQuery-modell är det viktigt att förstå hur data flyttas mellan de underliggande datakällorna och de associerade säkerhetskonsekvenserna. Du bör också identifiera om säkerhetsregler gäller för data i den underliggande källan, eftersom varje användare i Power BI kan se dessa data.

  • Datatransformering – Jämfört med importerade data, har data som har ursprung från DirectQuery en begränsning när det gäller att använda datatransformeringstekniker i Power Query-redigeraren. Om du till exempel ansluter till en OLAP-källa, till exempel SAP BW, kan du inte göra några transformeringar alls. Hela den externa modellen hämtas från datakällan. Om du vill göra transformeringar av data måste du göra det i den underliggande datakällan.

  • Modellering – Vissa modelleringsfunktioner som du har med importerade data är inte tillgängliga eller är begränsade när du använder DirectQuery.

  • Rapportering – Nästan alla rapporteringsfunktioner som du har med importerade data stöds också för DirectQuery-modeller, förutsatt att den underliggande källan har en lämplig prestandanivå. Men när rapporten publiceras i Power BI-tjänsten stöds inte Snabbinsikter och funktioner för vanliga frågor och svar. Användningen av funktionen Utforska i Excel resulterar också i sämre prestanda.

Mer detaljerad information om begränsningarna för att använda DirectQuery finns i Effekter av att använda DirectQuery.

Nu när du har lite förståelse för hur DirectQuery fungerar och de begränsningar som det innebär kan du vidta åtgärder för att förbättra prestanda.

Optimera prestanda

När du fortsätter med Tailwind Traders-scenariot upptäcker du under din granskning av semantikmodellen att frågan använde DirectQuery för att ansluta Power BI Desktop till källdata. Den här användningen av DirectQuery är orsaken till att användare upplever dåliga rapportprestanda. Det tar för lång tid att läsa in sidor i rapporten, och tabeller uppdateras inte tillräckligt snabbt när vissa val görs. Du måste vidta åtgärder för att optimera DirectQuery-modellens prestanda.

Du kan undersöka de frågor som skickas till den underliggande källan och försöka identifiera orsaken till dåliga frågeprestanda. Du kan sedan göra ändringar i Power BI Desktop och den underliggande datakällan för att optimera övergripande prestanda.

Optimera data i Power BI Desktop

När du har optimerat datakällan så mycket som möjligt kan du vidta ytterligare åtgärder i Power BI Desktop genom att använda Performance Analyzer, där du kan isolera frågor för att validera frågeplaner.

Du kan analysera varaktigheten för de frågor som skickas till den underliggande källan för att identifiera de frågor som tar lång tid att läsa in. Med andra ord kan du identifiera var flaskhalsarna finns.

Du behöver inte använda en särskild metod när du optimerar en DirectQuery-modell. Du kan använda samma optimeringstekniker som du använde för importerade data för att justera data från DirectQuery-källan. Du kan till exempel minska antalet visuella objekt på rapportsidan eller minska antalet fält som används i ett visuellt objekt. Du kan också ta bort onödiga kolumner och rader.

Mer detaljerad vägledning om hur du optimerar en DirectQuery-fråga finns i: DirectQuery-modellvägledning i Power BI Desktop och Vägledning för att använda DirectQuery korrekt.

Optimera den underliggande datakällan (ansluten databas)

Din första anhalt är datakällan. Du måste justera källdatabasen så mycket som möjligt eftersom allt du gör för att förbättra prestandan för den källdatabasen i sin tur kan förbättra Power BI DirectQuery. De åtgärder som du utför i databasen kommer att göra mest nytta.

Överväg att använda följande standardmetoder för databaser som gäller för de flesta situationer:

  • Undvik att använda komplexa beräknade kolumner eftersom beräkningsuttrycket är inbäddat i källfrågorna. Det är mer effektivt att skicka tillbaka uttrycket till källan eftersom det undviker push-funktionen. Du kan också överväga att lägga till surrogatnyckelkolumner i tabeller av dimensionstyp.

  • Granska indexen och kontrollera att den aktuella indexeringen är korrekt. Om du behöver skapa nya index kontrollerar du att de är lämpliga.

Läs riktlinjerna för din datakälla och implementera deras prestandarekommendationer.

Anpassa alternativen för frågereduktion

Power BI Desktop ger dig möjlighet att skicka färre frågor och att inaktivera vissa interaktioner som leder till en dålig upplevelse om det tar lång tid att köra de resulterande frågorna. Genom att använda de här alternativen förhindrar du att frågor kontinuerligt når datakällan, vilket bör förbättra prestanda.

I det här exemplet redigerar du standardinställningarna för att tillämpa de tillgängliga alternativen för dataminskning i din modell. Du kommer åt inställningarna genom att välja Filalternativ>och inställningar>Alternativ, rulla nedåt på sidan och sedan välja alternativet Frågereduktion .

Följande alternativ för frågereduktion är tillgängliga:

  • Minska antalet frågor som skickas av – Som standard interagerar varje visuellt objekt med alla andra visuella objekt. Om du markerar den här kryssrutan inaktiveras standardinteraktion. Du kan välja att välja vilka visuella objekt som ska interagera med varandra genom att använda funktionen Redigera interaktioner.

  • Utsnitt – Som standard är alternativet Tillämpa utsnittsändringar direkt markerat. Om du vill tvinga rapportanvändarna att manuellt tillämpa utsnittsändringar markerar du alternativet Lägg till en Tillämpa-knapp i varje utsnitt för att tillämpa ändringarna när du är klar.

  • Filter – Som standard är alternativet Använd grundläggande filterändringar direkt markerat. Om du vill tvinga rapportanvändarna att manuellt tillämpa filterändringar väljer du något av de andra alternativen:

    • Lägg till en Tillämpa-knapp i alla grundläggande filter för att tillämpa ändringarna när du är klar

    • Lägg till en enkel Tillämpa-knapp i filterpanelen för att tillämpa ändringarna direkt (förhandsversion)

Åtkomst till inställningar för frågereduktion