Aktivera DirectQuery-läge i SSMS

Gäller för: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Du kan ändra dataåtkomstegenskaperna för en tabellmodell som redan har distribuerats, vilket aktiverar DirectQuery-läge, där frågor körs mot en relationsdatakälla för serverdelen i stället för cachelagrade data som finns i minnet.

Viktigt!

Vi rekommenderar att du använder Tabellmodelldesignern i Visual Studio i stället för SQL Server Management Studio (SSMS) för att växla datalagringslägen. När du använder Visual Studio för att ändra modellläget och sedan följer upp det med distributionen till servern är modellen och databasen synkroniserade. Om du ändrar lagringslägena i modellen kan du dessutom granska eventuella valideringsfel som inträffar. När du använder SSMS enligt beskrivningen i den här artikeln rapporteras inte verifieringsfel.

Kravspecifikation

Att aktivera användningen av DirectQuery-läge i en tabellmodell är en process i flera steg:

  • Kontrollera att modellen inte har funktioner som kan orsaka valideringsfel i DirectQuery-läge och ändra sedan datalagringsläget på modellen från minnesinternt till DirectQuery.

    En lista över funktionsbegränsningar dokumenteras i DirectQuery-läge.

  • Granska anslutningssträngen och autentiseringsuppgifterna som används av den distribuerade databasen för att hämta data från den externa serverdelsdatabasen. Kontrollera att det bara finns en anslutning och att inställningarna är lämpliga för körning av frågor.

    Tabelldatabaser som inte är särskilt utformade för DirectQuery kan ha flera anslutningar som nu måste reduceras till en, vilket krävs för DirectQuery-läge.

    Autentiseringsuppgifter som ursprungligen användes för bearbetning av data används nu för att fråga efter data. Som en del av DirectQuery-konfigurationen kan du granska och eventuellt ändra kontot om du använder olika för dedikerade åtgärder.

    DirectQuery-läge är det enda scenario där Analysis Services utför betrodd delegering. Om lösningen kräver delegering för att få användarspecifika frågeresultat måste det konto som används för att ansluta till serverdelsdatabasen tillåtas delegera identiteten för den användare som gör begäran, och användaridentiteter måste ha läsbehörighet för serverdelsdatabasen.

  • Som ett sista steg bekräftar du att DirectQuery-läget fungerar genom att köra en fråga.

Växla till DirectQuery-läge

  1. I Objektutforskaren, högerklicka på databasen >Egenskaper>Modell>Standardläge.

  2. Ställ in läget på DirectQuery.

    Giltiga värden Beskrivning
    DirectQuery (DirectQuery) Frågekommandon körs mot en relationell backend-databas med hjälp av den datakällanslutning som definierats för modellen.

    Frågor till modellen konverteras till interna databasfrågor och omdirigeras till datakällan.

    När du bearbetar en modell inställd på DirectQuery-läge kompileras och distribueras endast metadata. Själva data är externa till modellen och finns i databasfilerna för den operativa datakällan.
    Importera Frågor körs mot tabelldatabasen i MDX eller DAX.

    När du bearbetar en modell som är inställd på importläge hämtas data från en serverdelsdatakälla och lagras på disken. När databasen läses in kopieras data helt till minnet för mycket snabba tabellgenomsökningar och frågor.

    Det här är standardläget för tabellmodeller, och det är det enda läget för vissa (icke-relationella) datakällor.
    Dual Tillåter både Import och DirectQuery. Det här läget stöds inte i Azure Analysis Services eller Power BI Premium.

Kontrollera anslutningsegenskaper

Beroende på hur datakällanslutningen har konfigurerats kan växling till DirectQuery ändra anslutningens säkerhetskontext. När du ändrar dataåtkomstläget granskar du egenskaperna för personifiering och anslutningssträng för att kontrollera att inloggningen är giltig för pågående anslutningar till serverdelsdatabasen.

Läs avsnittet Konfigurera Analysis Services för betrodd delegering i Konfigurera Analysis Services för Kerberos-begränsad delegering för bakgrundsinformation om delegering av en användaridentitet för DirectQuery-scenarier.

  1. I Object Explorer expanderar du Anslutningar och dubbelklickar på en anslutning för att visa dess egenskaper.

    För DirectQuery-modeller bör det bara finnas en anslutning som definierats för databasen och datakällan måste vara relationsbaserad och av en databastyp som stöds. Se Datakällor som stöds.

  2. Anslutningssträngen ska ange servern, databasnamnet och autentiseringsmetoden som används i DirectQuery-åtgärder. Om du använder SQL Server-autentisering kan du ange databasinloggningen här.

  3. Personifieringsinformation används för Windows-autentisering. Alternativ som är giltiga för tabellmodeller i DirectQuery-läge inkluderar följande:

    • Använd tjänstkontot. Du kan välja det här alternativet om Analysis Services-tjänstkontot har läsbehörighet för relationsdatabasen.

    • Använd ett specifikt användarnamn och lösenord. Ange ett Windows-användarkonto som har läsbehörighet för relationsdatabasen.

Observera att dessa autentiseringsuppgifter endast används för att besvara frågor mot relationsdatalagret. de är inte samma som de autentiseringsuppgifter som används för bearbetning av cachen för en hybridmodell.

Personifiering kan inte användas när modellen endast används i minnet. Inställningen ImpersonateCurrentUser är ogiltig om inte modellen använder DirectQuery-läge.

Verifiera DirectQuery-åtkomst

  1. Starta en spårning med antingen SQL Server Profiler eller xEvents i Management Studio, som är ansluten till relationsdatabasen på SQL Server.

    Om du använder Oracle eller Teradata använder du spårningsverktygen för dessa databasplattformar.

  2. I Management Studio anger du och kör sedan en enkel MDX-fråga, till exempel select <some measure> on 0 from model..

  3. I spårningen bör du se bevis på frågekörning på relationsdatabasen.

Se även

Kompatibilitetsnivå
Datakällor som stöds
Utökade händelser