Använda DirectQuery i Power BI Desktop

När du ansluter till en datakälla med Power BI Desktop kan du importera en kopia av data. För vissa datakällor kan du också ansluta direkt till datakällan utan att importera data med hjälp av DirectQuery.

Om du vill ta reda på om en datakälla stöder DirectQuery kan du visa den fullständiga listan över tillgängliga datakällor som finns i artikeln Anslut orer i Power Query som även gäller för Power BI, välj den artikel som beskriver den datakälla som du är intresserad av i listan över anslutningsprogram som stöds och se sedan avsnittet i anslutningsappens artikel med titeln Funktioner som stöds. Om DirectQuery inte visas i det avsnittet för datakällans artikel stöds inte DirectQuery för den dataanslutningen.

Här är skillnaderna mellan att använda import- och DirectQuery-anslutningslägen:

  • Import: En kopia av data från de valda tabellerna och kolumnerna importeras till Power BI Desktop. När du skapar eller interagerar med visualiseringar använder Power BI Desktop importerade data. Om du vill se underliggande dataändringar efter den första importen eller den senaste uppdateringen måste du importera den fullständiga semantiska modellen igen för att uppdatera data.

  • DirectQuery: Inga data importeras till Power BI Desktop. För relationskällor kan du välja tabeller och kolumner som ska visas i listan Power BI Desktop-fält. För flerdimensionella källor som SAP Business Warehouse (SAP BW) visas dimensionerna och måtten för den valda kuben i listan Fält . När du skapar eller interagerar med visualiseringar frågar Power BI Desktop den underliggande datakällan, så att du alltid visar aktuella data.

När du skapar eller interagerar med en visualisering med DirectQuery måste du fråga den underliggande källan. Den tid som krävs för att uppdatera visualiseringen beror på den underliggande datakällans prestanda. Om de data som behövs för att hantera begäran nyligen begärdes använder Power BI Desktop de senaste data för att minska den tid som krävs för att visa visualiseringen. Om du väljer Uppdatera från menyfliksområdet Start uppdateras alla visualiseringar med aktuella data.

Många datamodellering och datatransformeringar är tillgängliga när du använder DirectQuery, men med vissa prestandabaserade begränsningar. Mer information om DirectQuery-fördelar, begränsningar och rekommendationer finns i DirectQuery i Power BI.

DirectQuery-fördelar

Några fördelar med att använda DirectQuery är:

  • Med DirectQuery kan du skapa visualiseringar över mycket stora semantiska modeller, där det skulle vara omöjligt att importera alla data med föraggregering.

  • DirectQuery-rapporter använder alltid aktuella data. Om du ser underliggande dataändringar måste du uppdatera data och det kan vara omöjligt att importera om stora semantiska modeller för att uppdatera data.

  • Den semantiska modellbegränsningen på 1 GB gäller inte för DirectQuery.

Anslut med DirectQuery

Så här ansluter du till en datakälla med DirectQuery:

  1. I gruppen Start i menyfliksområdet Power BI Desktop väljer du Hämta data och väljer sedan en datakälla som DirectQuery stöder, till exempel SQL Server.

  2. I dialogrutan för anslutningen, under Dataanslutningsläge, väljer du DirectQuery.

Import- och DirectQuery-alternativ, dialogrutan SQL Server Database, Power BI Desktop

Publicera till Power BI-tjänsten

Du kan publicera DirectQuery-rapporter till Power BI-tjänst, men du måste vidta extra åtgärder för att Power BI-tjänst ska kunna öppna rapporterna.

  • Om du vill ansluta Power BI-tjänst till andra DirectQuery-datakällor än Azure SQL Database, Azure Synapse Analytics (tidigare SQL Data Warehouse), Amazon Redshift och Snowflake Data Warehouse installerar du en lokal datagateway och registrerar datakällan.

  • Om du använde DirectQuery med molnkällor som Azure SQL Database, Azure Synapse, Amazon Redshift eller Snowflake Data Warehouse behöver du ingen lokal datagateway. Du måste fortfarande ange autentiseringsuppgifter för Power BI-tjänst för att öppna den publicerade rapporten. Utan autentiseringsuppgifter uppstår ett fel när du försöker öppna en publicerad rapport eller utforska en semantisk modell som skapats med en DirectQuery-anslutning.

Så här anger du autentiseringsuppgifter för att öppna rapporten och uppdatera data:

  1. I Power BI-tjänst väljer du kugghjulsikonen längst upp till höger och väljer Inställningar.

    Skärmbild av listrutan Power BI-tjänst Inställningar.

  2. På sidan Inställningar väljer du fliken Semantiska modeller och väljer den semantiska modell som använder DirectQuery.

  3. Under Anslutning till datakälla anger du autentiseringsuppgifterna för att ansluta till datakällan.

Kommentar

Om du använde DirectQuery med en Azure SQL Database som har en privat IP-adress måste du använda en lokal gateway.

Beaktanden och begränsningar

Vissa Power BI Desktop-funktioner stöds inte i DirectQuery-läge, eller så har de begränsningar. Vissa funktioner i Power BI-tjänst, till exempel snabba insikter, är inte heller tillgängliga för semantiska modeller som använder DirectQuery. När du bestämmer dig för om du vill använda DirectQuery bör du överväga de här funktionsbegränsningarna. Tänk också på följande faktorer:

Prestanda- och belastningsöverväganden

DirectQuery skickar alla begäranden till källdatabasen, så den nödvändiga uppdateringstiden för visuella objekt beror på hur lång tid det tar för den underliggande källan att returnera resultat. Fem sekunder eller mindre är den rekommenderade svarstiden för att ta emot begärda data för visuella objekt. Uppdateringstider över 30 sekunder ger en oacceptabelt dålig upplevelse för användare som använder rapporten. En fråga som tar längre tid än fyra minuter i Power BI-tjänst och användaren får ett fel.

Belastningen på källdatabasen beror också på antalet Power BI-användare som använder den publicerade rapporten, särskilt om rapporten använder säkerhet på radnivå (RLS). Uppdateringen av en icke-RLS-instrumentpanel som delas av flera användare skickar en enda fråga till databasen, men uppdatering av en instrumentpanelspanel som använder RLS kräver en fråga per användare. De ökade frågorna ökar belastningen avsevärt och kan påverka prestanda.

Gräns på en miljon rader

DirectQuery definierar en radgräns på en miljon för data som returneras från molndatakällor, som är alla datakällor som inte är lokala. Lokala källor är begränsade till en definierad nyttolast på cirka 4 MB per rad, beroende på en egen komprimeringsalgoritm eller 16 MB för hela det visuella objektet. Premium-kapaciteter kan ange olika maximala radgränser enligt beskrivningen i blogginlägget om nya kapacitetsinställningar för Power BI Premium.

Power BI skapar frågor som är så effektiva som möjligt, men vissa genererade frågor kan hämta för många rader från den underliggande datakällan. Den här situationen kan till exempel inträffa med ett enkelt diagram som innehåller en kolumn med hög kardinalitet med aggregeringsalternativet inställt på Sammanfatta inte. Det visuella objektet får bara ha kolumner med en kardinalitet under 1 miljon eller använda lämpliga filter.

Radgränsen gäller inte för aggregeringar eller beräkningar som används för att välja den semantiska modellen DirectQuery returnerar, bara för de rader som returneras. Frågan som körs på datakällan kan till exempel aggregera 10 miljoner rader. Så länge data som returneras till Power BI är mindre än 1 miljon rader kan frågan returnera resultatet korrekt. Om data är över 1 miljon rader visar Power BI ett fel, förutom i Premium-kapacitet med olika administratörsuppsättningsgränser. Felet anger: Resultatuppsättningen för en fråga till en extern datakälla har överskridit den maximala tillåtna storleken på raderna "1000000".

Säkerhetsfrågor

Som standard ansluter alla användare som använder en publicerad rapport i Power BI-tjänst till den underliggande datakällan med hjälp av de autentiseringsuppgifter som angetts efter publiceringen. Den här situationen är densamma som för importerade data. Alla användare ser samma data, oavsett säkerhetsregler som den underliggande källan definierar.

Om du behöver säkerhet per användare implementerad med DirectQuery-källor använder du antingen RLS eller konfigurerar Kerberos-begränsad autentisering mot källan. Kerberos är inte tillgängligt för alla källor. Mer information finns i Säkerhet på radnivå (RLS) med Power BI och Konfigurera Kerberos-baserad enkel inloggning från Power BI-tjänst till lokala datakällor.

Andra DirectQuery-begränsningar

Några andra begränsningar för att använda DirectQuery är:

  • Om den Power Query-redigeraren frågan är alltför komplex uppstår ett fel. Om du vill åtgärda felet måste du antingen ta bort det problematiska steget i Power Query-redigeraren eller växla till importläge. Flerdimensionella källor som SAP BW kan inte använda Power Query-redigeraren.

  • Automatisk datum-/tidshierarki är inte tillgänglig i DirectQuery. DirectQuery-läget stöder inte datumkolumnsgranskning efter år, kvartal, månad eller dag.

  • För tabell- eller matrisvisualiseringar finns det en gräns på 125 kolumner för resultat som returnerar mer än 500 rader från DirectQuery-källor. Dessa resultat visar en rullningslist i tabellen eller matrisen som gör att du kan hämta mer data. I så fall är det maximala antalet kolumner i tabellen eller matrisen 125. Om du måste inkludera fler än 125 kolumner i en enskild tabell eller matris kan du överväga att skapa mått som använder MIN, MAX, FIRSTeller LAST, eftersom de inte räknas mot det här maxvärdet.

  • Du kan inte ändra från import till DirectQuery-läge. Du kan växla från DirectQuery-läge till importläge om du importerar alla nödvändiga data. Det går inte att växla tillbaka, främst på grund av funktionsuppsättningen som DirectQuery inte stöder. DirectQuery-modeller över flerdimensionella källor, till exempel SAP BW, kan inte heller växlas från DirectQuery till importläge på grund av den olika behandlingen av externa mått.

  • Beräknade tabeller och beräknade kolumner som refererar till en DirectQuery-tabell från en datakälla med enkel inloggningsautentisering (SSO) stöds inte i Power BI-tjänst.