Aktivieren des DirectQuery-Modus in SSMS

 

Gilt für: SQL Server 2016

Sie können die Datenzugriffseigenschaften eines tabellarischen Modells ändern, das bereits bereitgestellt wurde, und den DirectQuery-Modus aktivieren, bei dem Abfragen auf eine relationale Datenquelle im Back-End anstatt auf im Arbeitsspeicher zwischengespeicherte Daten angewendet werden.

In SQL Server 2016 unterscheiden sich die für die DirectQuery-Konfiguration erforderlichen Schritte je nach Kompatibilitätsgrad des Modells. Nachstehend finden Sie Schritte, die für alle Kompatibilitätsgrade funktionieren.

In diesem Thema wird davon ausgegangen, dass Sie ein tabellarisches In-Memory-Modell mit Kompatibilitätsgrad 1200 erstellt und überprüft haben und nur noch den DirectQuery-Zugriff aktivieren und Verbindungszeichenfolgen aktualisieren müssen. Wenn Sie mit einem niedrigeren Kompatibilitätsgrad beginnen, müssen Sie ihn zunächst manuell upgraden. Eine Anleitung finden Sie unter Upgraden von Analysis Services.

System_CAPS_ICON_important.jpg Wichtig


Wir empfehlen die Verwendung von SQL Server Data Tools anstelle von Management Studio zum Ändern des Datenspeichermodus. Wenn Sie SQL Server Data Tools zum Ändern des Modells verwenden und anschließend mit der Bereitstellung auf dem Server fortfahren, bleiben Modell und Datenbank synchronisiert. Darüber hinaus können Sie bei einer Änderung des Speichermodus im Modell überprüfen, ob Validierungsfehler auftreten. Wenn SQL Server Management Studio wie in diesem Artikel beschrieben verwendet wird, werden Validierungsfehler nicht gemeldet.

Es sind mehrere Schritte nötig, um den DirectQuery-Modus auf ein tabellarisches Modell anwenden zu können:

  • Stellen Sie sicher, dass das Modell keine Features aufweist, die im DirectQuery-Modus Validierungsfehler verursachen, und ändern Sie dann den Datenspeichermodus des Modells von „InMemory“ in „DirectQuery“.

    Eine Liste der Funktionseinschränkungen finden Sie unter DirectQuery-Modus (SSAS – tabellarisch).

  • Überprüfen Sie die Verbindungszeichenfolge und die Anmeldeinformationen, die von der bereitgestellten Datenbank verwendet werden, um Daten aus der externen Datenbank im Back-End abzurufen. Stellen Sie sicher, dass es nur eine Verbindung gibt, und dass die Einstellungen für die Ausführung von Abfragen geeignet sind.

    Tabellarische Datenbanken, die speziell für DirectQuery entworfen wurden, haben möglicherweise mehrere Verbindungen, die jetzt für den DirectQuery-Modus entsprechend auf eine reduziert werden müssen.

    Anmeldeinformationen, die ursprünglich für die Verarbeitung von Daten verwendet wurden, dienen nun zum Abfragen von Daten. Im Rahmen der DirectQuery-Konfiguration müssen Sie das Konto überprüfen und möglicherweise ändern, wenn Sie für bestimmte Vorgänge verschiedene Konten verwenden.

    Der DirectQuery-Modus ist das einzige Szenario, in dem Analysis Services die vertrauenswürdige Delegierung durchführt. Wenn Ihre Lösung die Delegierung zum Abrufen benutzerspezifischer Ergebnisse benötigt, muss das Konto, mit dem eine Verbindung mit der Back-End-Datenbank hergestellt wird, die Identität des Benutzers delegieren können, der die Anforderung stellt. Außerdem benötigen Benutzeridentitäten die Leseberechtigung für die Back-End-Datenbank.

  • Bestätigen Sie im letzten Schritt , dass der DirectQuery-Modus betriebsbereit ist, indem Sie eine Abfrage ausführen.

Eigenschaften, die den Datenzugriff definieren, sind je nach Kompatibilitätsgrad unterschiedlich. Ein einleitender Schritt ist das Überprüfen des Kompatibilitätsgrads der Datenbank.

  1. Stellen Sie in Management Studio eine Verbindung mit der Instanz mit dem tabellarischen Modell her.

  2. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die Datenbank > Eigenschaften > Kompatibilitätsgrad.

    Der Wert ist entweder SQL Server 2016 (1200) oder ein früherer Grad wie SQL Server 2012 SP1 oder höher (1103). Befolgen Sie im nächsten Schritt die Anweisungen für den jeweiligen Kompatibilitätsgrad.

Wenn Sie ein tabellarisches Modell in den DirectQuery-Modus ändern, wird der neue Datenspeichermodus sofort wirksam.

  1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die Datenbank > Eigenschaften > Modell > Standardmodus.

  2. Legen Sie den Modus auf DirectQuery fest.

    Gültige WerteDescription
    DirectQueryAbfragen werden auf eine relationale Back-End-Datenbank angewendet, wofür die für das Modell definierte Datenquellenverbindung verwendet wird.

    Abfragen des Modells werden in native Datenbankabfragen konvertiert und an die Datenquelle umgeleitet.

    Bei der Verarbeitung eines Modells im DirectQuery-Modus werden nur Metadaten kompiliert und bereitgestellt. Die Daten selbst befinden sich außerhalb des Modells in den Datenbankdateien der betriebsbereiten Datenquelle.
    ImportierenAbfragen werden auf die tabellarische Datenbank in MDX oder DAX angewendet.

    Wenn Sie ein Modell im Importmodus verarbeiten, werden Daten aus einer Back-End-Datenquelle abgerufen und auf dem Datenträger gespeichert. Beim Laden der Datenbank werden die Daten vollständig in den Arbeitsspeicher geladen, um sehr schnelle Tabellenscans und Abfragen zu ermöglichen.

    Dies ist der Standardmodus für tabellarische Modelle und der einzige Modus für bestimmte (nicht relationale) Datenquellen.
  1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die Datenbank > Eigenschaften > Datenbank > DirectQueryMode.

  2. Legen Sie den Modus auf DirectQuery fest.

    Es folgen die Standardeigenschaften des Modus:

    Gültige WerteDescription
    InMemoryAbfragen verwenden nur die im Arbeitsspeicher zwischengespeicherten Daten.
    InMemoryWithDirectQueryFür Abfragen wird standardmäßig der Cache verwendet, sofern in der Verbindungszeichenfolge vom Client nichts Gegenteiliges angegeben wurde.

    Dies ist ein Hybridmodus, bei dem Partitionen einzeln für die Verwendung von „InMemory“ oder „DirectQuery“ konfiguriert werden.
    DirectQueryFür Abfragen wird nur die relationale Datenquelle verwendet.
    DirectQuerywithInMemoryBei Abfragen wird standardmäßig die relationale Datenquelle verwendet, sofern in der Verbindungszeichenfolge vom Client nichts Gegenteiliges angegeben wurde.

    Dies ist ein Hybridmodus, bei dem Partitionen einzeln für die Verwendung von „InMemory“ oder „DirectQuery“ konfiguriert werden.

Hybrid-Datenspeicher

Bei der Kombination des Zugriffs auf Arbeitsspeicher und Datenträger steht der Cache weiter zur Verfügung und kann für Abfragen genutzt werden. Ein Hybridmodus bietet Ihnen zahlreiche Optionen:

  • Wenn sowohl der Cache als auch die relationale Datenquelle verfügbar sind, können Sie die bevorzugte Verbindungsmethode festlegen, doch letztlich wird die zu verwendende Quelle vom Client bestimmt. Dafür wird die DirectQueryMode-Eigenschaft der Verbindungszeichenfolge verwendet.

  • Sie können Partitionen im Cache so konfigurieren, dass die primäre Partition, die für den DirectQuery-Modus verwendet wird, niemals verarbeitet wird und immer auf die relationale Quelle verweisen muss. Es gibt viele Möglichkeiten, mithilfe von Partitionen den Modellentwurf und die Berichtsfunktionen zu optimieren. Weitere Informationen finden Sie unter Definieren von Partitionen im DirectQuery-Modellen (SSAS – tabellarisch).

  • Nach der Bereitstellung des Modells können Sie die bevorzugte Verbindungsmethode ändern. Sie können zum Beispiel einen Hybridmodus für Tests verwenden und den Modus Nur DirectQuery für das Modell erst nach gründlichen Tests von Berichten oder Abfragen, für die das Modell verwendet wird, festlegen. Weitere Informationen finden Sie unter Festlegen oder Ändern der bevorzugten Verbindungsmethode für DirectQuery.

Abhängig davon, wie die Datenquellenverbindung eingerichtet ist, kann sich beim Umschalten zu DirectQuery der Sicherheitskontext der Verbindung ändern. Überprüfen Sie beim Ändern des Datenzugriffsmodus die Identitätswechsel- und Verbindungszeichenfolgen-Eigenschaften, um festzustellen, ob die Anmeldung für fortlaufende Verbindungen mit der Back-End-Datenbank gültig ist.

Überprüfen Sie unter Konfigurieren von Analysis Services für die eingeschränkte Kerberos-Delegierung den Abschnitt Konfigurieren von Analysis Services für die vertrauenswürdige Delegierung auf Hintergrundinformationen zur Delegierung einer Benutzeridentität für DirectQuery-Szenarios.

  1. Klappen Sie im Objekt-Explorer Verbindungen auf, und doppelklicken Sie auf eine Verbindung, um ihre Eigenschaften anzuzeigen.

    Für DirectQuery-Modelle darf es nur eine für die Datenbank definierte Verbindung geben. Außerdem muss die Datenquelle relational sein und einen unterstützten Datenbanktyp haben. Weitere Informationen finden Sie unter Unterstützte Datenquellen (SSAS – tabellarisch).

  2. Die Verbindungszeichenfolge muss den Server, Datenbanknamen und die Authentifizierungsmethode angeben, die für DirectQuery-Vorgänge verwendet werden. Wenn Sie die SQL Server-Authentifizierung verwenden, können Sie hier die Datenbankanmeldung angeben.

  3. Die Identitätswechselinformationen werden für die Windows-Authentifizierung verwendet. Die folgenden Optionen sind für tabellarische Modelle im DirectQuery-Modus gültig:

    • Dienstkonto verwenden. Sie können diese Option wählen, wenn das Analysis Services-Dienstkonto über Leseberechtigungen für die relationale Datenbank verfügt.

    • Bestimmten Benutzernamen und bestimmtes Kennwort verwenden. Geben Sie ein Windows-Benutzerkonto an, das über Leseberechtigungen für die relationale Datenbank verfügt.

Diese Anmeldeinformationen werden nur zum Beantworten von Abfragen des relationalen Datenspeichers verwendet. Sie sind nicht mit den Anmeldeinformationen für die Verarbeitung des Caches eines Hybridmodells identisch.

Identitätswechsel kann nicht verwendet werden, wenn das Modell nur innerhalb des Arbeitsspeichers verwendet wird. Die Einstellung ImpersonateCurrentUser ist ungültig, sofern das Modell nicht den DirectQuery-Modus verwendet.

  1. Starten Sie in Management Studio bei bestehender Verbindung mit der relationalen Datenbank in SQL Server eine Ablaufverfolgung mithilfe von SQL Server Profiler oder xEvents.

    Wenn Sie mit Oracle oder Teradata arbeiten, verwenden Sie die Ablaufverfolgungstools dieser Systeme.

  2. Führen Sie in Management Studio eine einfache MDX-Abfrage, wie z.B. select <some measure> on 0 from model., aus.

  3. Die Ablaufverfolgung sollte zeigen, dass die Abfrage auf die relationale Datenbank angewendet wurde.

Kompatibilitätsgrad für tabellarische Modelle in Analysis Services
Unterstützte Datenquellen (SSAS – tabellarisch)
Erweiterte Ereignisse
Überwachen einer Instanz von Analysis Services

Community-Beiträge

HINZUFÜGEN
Anzeigen: