Share via


DirectQuery-Bereitstellungsszenarien (SSAS – tabellarisch)

In diesem Abschnitt wird eine exemplarische Vorgehensweise des Entwurfs- und Bereitstellungsprozesses für DirectQuery-Modelle erläutert. Sie können das Modell so konfigurieren, dass es nur relationale Daten verwendet (nur DirectQuery) oder dass es zwischen der ausschließlichen Verwendung zwischengespeicherter Daten oder relationaler Daten wechselt (Hybridmodus). In diesem Abschnitt wird der Implementierungsprozess für beide Modi erläutert. Außerdem werden mögliche Unterschiede bei den Abfrageergebnissen in Abhängigkeit vom Modus und der Sicherheitskonfiguration beschrieben.

Entwurfs- und Bereitstellungsschritte

Vergleichen von DirectQuery-Konfigurationen

Entwurfs- und Bereitstellungsschritte

Schritt 1. Erstellen einer Lösung

Unabhängig vom verwendeten Modus müssen Sie die Informationen überprüfen, in denen Einschränkungen hinsichtlich der Daten, die in DirectQuery-Modellen verwendet werden können, beschrieben werden. Beispielsweise müssen alle im Modell verwendeten Daten sowie Berichte aus einer einzelnen relationalen Datenquelle, d. h. SQL Server oder SQL Server PDW, stammen. Weitere Informationen finden Sie unter DirectQuery-Modus (SSAS – tabellarisch).

Als Nächstes überprüfen Sie die Einschränkungen für Measures und berechnete Spalten und bestimmen, ob die zu verwendenden Formeln mit dem DirectQuery-Modus kompatibel sind. Möglicherweise müssen die folgenden Elemente des Modells entfernt oder geändert werden:

  • Berechnete Spalten werden nicht unterstützt.

  • Kopierte und eingefügte Daten können nicht verwendet werden. Wenn Sie daher die Erstellung der Lösung durch den Import eines PowerPivot-Modells beschleunigen möchten, müssen Sie alle verknüpften Tabellen vor dem Importieren der Lösung löschen, da diese Daten nicht gelöscht werden können und die DirectQuery-Überprüfung blockieren.

    Wichtig:

Schritt 2. Aktivieren des DirectQuery-Modus im Modell-Designer

Standardmäßig wird DirectQuery deaktiviert. Daher müssen Sie die Entwurfsumgebung für die Unterstützung des DirectQuery-Modus konfigurieren.

Klicken Sie mit der rechten Maustaste auf den Knoten Model.bim im Projektmappen-Explorer, und legen Sie die Eigenschaft DirectQuery-Modus auf On fest.

Sie können DirectQuery jederzeit aktivieren. Damit jedoch keine Spalten oder Formeln erstellt werden, die mit dem DirectQuery-Modus nicht kompatibel sind, wird empfohlen, den DirectQuery-Modus von Anfang an zu aktivieren.

Zunächst werden selbst die DirectQuery-Modelle immer im Arbeitsspeicher erstellt. Der Standardabfragemodus für die Arbeitsbereichsdatenbank wird ebenfalls auf DirectQuery mit InMemory festgelegt. Mit diesem hybriden Arbeitsmodus können Sie während des Modellentwurfsprozesses den Cache der importierten Daten zugunsten einer verbesserten Leistung verwenden, während das Modell gegen DirectQuery-Anforderungen überprüft wird.

Schritt 3. Beheben von Überprüfungsfehlern

Wenn Sie beim Aktivieren von DirectQuery Validierungsfehler erhalten, oder wenn Sie neue Daten oder Formeln hinzufügen, öffnen Sie die Visual Studio-Fehlerliste, und führen dann die erforderlichen Aktionen aus.

  • Ändern Sie alle erforderlichen Eigenschafteneinstellungen für den DirectQuery-Modus entsprechend der Beschreibung in den Fehlermeldungen.

  • Entfernen Sie berechnete Spalten. Wenn Sie für ein bestimmtes Measure eine berechnete Spalte benötigen, können Sie die Spalte immer mit dem Relationaler Abfrage-Designer (SSAS) im Tabellenimport-Assistenten erstellen.

  • Ändern oder entfernen Sie Formeln, die mit dem DirectQuery-Modus nicht kompatibel sind. Wenn Sie eine bestimmte Funktion für eine Berechnung benötigen, prüfen Sie Methoden zur Bereitstellung eines Äquivalents mithilfe von Transact-SQL.

  • Fügen Sie Daten nach Bedarf hinzu. Wenn im Modell zuvor kopierte und eingefügte Daten oder Daten von anderen Anbietern verwendet wurden, können Sie neue Sichten und abgeleitete Spalten innerhalb der relationalen Datenquelle und sogar innerhalb der beim Tabellenimport verwendeten Abfragedefinition erstellen. Auf alle in einem DirectQuery-Modell verwendeten Daten muss jedoch in einer einzelnen relationalen Datenquelle zugegriffen werden können. Wenn sich einige Daten in externen Systemen befinden, empfiehlt es sich, die Daten in der relationalen Datenquelle bereitzustellen.

Schritt 4. Festlegen der bevorzugten Methode zur Beantwortung von Abfragen für das Modell

Nur DirectQuery

Legen Sie die Eigenschaft auf DirectQuery fest.

Hybridmodus

Legen Sie die Eigenschaft auf InMemory mit DirectQuery oder DirectQuery mit InMemory fest.

Sie können diesen Wert zu einem späteren Zeitpunkt ändern, um eine andere Einstellung zu verwenden.

Beachten Sie, dass Clients die bevorzugte Methode in der Verbindungszeichenfolge überschreiben können.

Schritt 5. Angeben der DirectQuery-Partition

Nur DirectQuery

Optional. Bei einem ausschließlichen DirectQuery-Modell besteht keine Notwendigkeit einer Partition.

Wenn Sie jedoch während der Entwurfsphase Partitionen im Modell erstellen, müssen Sie beachten, dass nur eine Partition als Datenquelle verwendet werden kann. Standardmäßig wird die erste Partition, die Sie erstellen, als DirectQuery-Partition verwendet.

Um zu gewährleisten, dass alle vom Modell benötigten Daten über die DirectQuery-Partition verfügbar sind, wählen Sie eine DirectQuery-Partition und bearbeiten Sie die SQL-Anweisung, um das gesamte Dataset abzurufen.

Hybridmodus

Wenn eine Tabelle im Modell mehrere Partitionen aufweist, müssen Sie eine einzelne Partition als DirectQuery-Partition auswählen. Wenn Sie standardmäßig keine Partition zuweisen, wird die erste erstellte Partition als DirectQuery-Partition verwendet.

Legen Sie Verarbeitungsoptionen für alle Partitionen mit Ausnahme von DirectQuery fest. In der Regel wird die DirectQuery-Partition nie verarbeitet, da die Daten von der relationalen Quelle aus übergeben werden.

Weitere Informationen finden Sie unter Partitionen und DirectQuery-Modus (SSAS – tabellarisch).

Schritt 6. Konfigurieren des Identitätswechsels

Identitätswechsel wird nur für DirectQuery-Modelle unterstützt. Die Identitätswechseloption, Identitätswechseleinstellungen, definiert die Anmeldeinformationen, die verwendet werden, wenn Daten von der angegebenen SQL Server-Datenquelle angezeigt werden.

Nur DirectQuery

Geben Sie für die Eigenschaft Identitätswechseleinstellungen das Konto an, über das eine Verbindung mit der relationalen Datenquelle hergestellt werden soll.

Bei Verwendung des Werts ImpersonateCurrentUser übergibt die Analysis Services-Instanz, die das Modell hostet, die Anmeldeinformationen des aktuellen Modellbenutzers an die relationale Datenquelle.

Hybridmodus

Geben Sie für die Eigenschaft Identitätswechseleinstellungen das Konto an, mit dem auf die Daten der relationalen Datenquelle zugegriffen werden soll.

Diese Einstellung beeinflusst nicht die Anmeldeinformationen, die zum Verarbeiten des vom Modell verwendeten Caches verwendet werden.

Schritt 7. Bereitstellen des Modells

Wenn Sie das Modell bereitstellen möchten, öffnen Sie das Menü Projekt in Visual Studio, und wählen Sie Eigenschaften aus. Legen Sie die QueryMode-Eigenschaft auf einen der Werte fest, der in der folgenden Tabelle beschrieben wird:

Weitere Informationen finden Sie unter Bereitstellen in SQL Server Data Tools (SSAS – tabellarisch).

Nur DirectQuery

DirectQueryOnly

Da Sie nur "Direkte Abfrage" angegeben haben, werden die Metadaten des Modells auf dem Server bereitgestellt, das Modell wird jedoch nicht verarbeitet.

Beachten Sie, dass der von der Arbeitsbereichsdatenbank verwendete Cache nicht automatisch gelöscht wird. Wenn Sie sicherstellen möchten, dass die zwischengespeicherten Daten für Benutzer nicht sichtbar sind, können Sie den Entwurfszeitcache löschen. Weitere Informationen finden Sie unter Löschen des Zwischenspeichers von Analysis Services.

Hybridmodus

DirectQuery mit InMemory

InMemory mit DirectQuery

Beide Werte ermöglichen je nach Bedarf entweder die Verwendung des Caches oder der relationalen Datenquelle. Durch die Reihenfolge wird definiert, welche Datenquelle standardmäßig verwendet wird, wenn Abfragen für das Modell beantwortet werden.

Im Hybridmodus muss die Verarbeitung des Caches zur gleichen Zeit wie die Bereitstellung der Modellmetadaten auf dem Server stattfinden.

Sie können diese Einstellung nach der Bereitstellung ändern.

Schritt 8. Überprüfen des bereitgestellten Modells

Öffnen Sie in SQL Server Management Studio die Instanz von Analysis Services, in der Sie das Modell bereitgestellt haben. Klicken Sie mit der rechten Maustaste auf den Namen der Datenbank, und wählen Sie Eigenschaften aus.

  • Die Eigenschaft DirectQueryMode wurde festgelegt, als die Bereitstellungseigenschaften definiert wurden.

  • Die Eigenschaft Identitätswechselinformationen der Datenquelle wurde festgelegt, als die Benutzeridentitätswechseloptionen definiert wurden. Weitere Informationen finden Sie unter Festlegen von Identitätswechseloptionen (SSAS – mehrdimensional).

  • Sie können diese Eigenschaften nach der Bereitstellung des Modells jederzeit ändern.

Zurück zum Anfang

Vergleichen von DirectQuery-Optionen

  • Nur DirectQuery
    Diese Option wird bevorzugt, wenn Sie eine einzelne Datenquelle garantieren möchten oder wenn die Datenmenge die Größe des Arbeitsspeichers übersteigt. Wenn Sie mit einer sehr großen relationalen Datenquelle arbeiten, können Sie während der Entwurfszeit das Modell mit einer Teilmenge der Daten erstellen. Wenn Sie das Modell im ausschließlichen DirectQuery-Modus bereitstellen, können Sie die Datenquellendefinition bearbeiten, um alle erforderlichen Daten einzuschließen.

    Diese Option wird auch bevorzugt, wenn Sie die von der relationalen Datenquelle bereitgestellten Sicherheitsfunktionen für die Steuerung des Benutzerzugriffs auf Daten verwenden möchten. Mit zwischengespeicherten Tabellenmodellen können Sie den Datenzugriff auch mithilfe von Analysis Services-Rollen steuern, doch die im Cache gespeicherten Daten müssen ebenfalls gesichert werden. Sie sollten diese Option immer verwenden, wenn der Sicherheitskontext erfordert, dass Daten niemals zwischengespeichert werden sollen.

    In der folgenden Tabelle werden die möglichen Bereitstellungsergebnisse für den ausschließlichen DirectQuery-Modus beschrieben:

    DirectQuery ohne Cache

    Es werden keine Daten in den Zwischenspeicher geladen. Das Modell kann niemals verarbeitet werden.

    Das Modell kann nur mit Clients abgerufen werden, die Unterstützung für DAX-Abfragen bieten. Abfrageergebnisse werden immer von der ursprünglichen Datenquelle zurückgegeben.

    • DirectQueryMode = On

    • QueryMode = DirectQuery

    Nur DirectQuery mit Abfragen für Cache

    Bereitstellungsfehler Diese Konfiguration wird nicht unterstützt.

    • DirectQueryMode = On

    • QueryMode = In-Memory

  • Hybridmodus
    Die Bereitstellung des Modells in einem Hybridmodus bietet zahlreiche Vorteile: Sie können nach Bedarf aktuelle Daten aus der relationalen Datenquelle abrufen, insbesondere wenn die Daten in Echtzeit aktualisiert werden müssen. Allerdings haben Sie bei Beibehaltung des Caches die Möglichkeit, mit Daten im Arbeitsspeicher zu arbeiten, um beim Entwerfen von Berichten oder Testen des Modells eine höhere Leistung zu erzielen.

    Ein hybrider DirectQuery-Modus ist auch sinnvoll, wenn das Modell sehr groß ist. Damit Benutzer keine veralteten Daten erhalten oder das Modell nicht während der Verarbeitung des Caches nicht verfügbar ist, können Sie das Modell direkt auf den DirectQuery-Modus umstellen, während die Verarbeitung läuft. Zwar kann die Leistung leicht beeinträchtigt werden, gleichzeitig ist jedoch gewährleistet, dass Daten direkt aus dem relationalen Speicher abgerufen werden und die Ergebnisse auf dem neuesten Stand sind.

    In der folgenden Tabelle wird das Bereitstellungsergebnis in jeder Kombination der DirectQuery-Optionen verglichen.

    Hybridmodus (Cache bevorzugt)

    Das Modell kann verarbeitet werden, und Daten können in den Cache geladen werden. Bei Abfragen wird der Cache standardmäßig verwendet.

    Wenn ein Client die DirectQuery-Quelle verwenden möchte, muss ein Parameter in die Verbindungszeichenfolge eingefügt werden.

    • DirectQueryMode = On

    • QueryMode = InMemory mit DirectQuery

    Hybridmodus mit DirectQuery bevorzugt

    Das Modell wird verarbeitet, und Daten können in den Cache geladen werden. Für Abfragen wird jedoch standardmäßig DirectQuery verwendet.

    Wenn ein Client die zwischengespeicherten Daten verwenden möchte, muss ein Parameter in die Verbindungszeichenfolge eingefügt werden.

    Wenn die Tabellen im Modell partitioniert werden, wird die Prinzipalpartition des Caches auch auf InMemory mit DirectQuery festgelegt.

    • DirectQueryMode = On

    • QueryMode = DirectQuery mit InMemory

Siehe auch

Konzepte

DirectQuery-Modus (SSAS – tabellarisch)

Zugriff auf Daten im tabellarischen Modell