DirectQuery-Bereitstellungsszenarien (SSAS – tabellarisch)
In diesem Abschnitt wird eine exemplarische Vorgehensweise des Entwurfs- und Bereitstellungsprozesses für DirectQuery-Modelle erläutert. Sie können DirectQuery konfigurieren, um ausschließlich relationale Daten (nur DirectQuery) zu verwenden, oder Sie können das Modell konfigurieren, um zwischen der Verwendung ausschließlich zwischengespeicherter Daten oder ausschließlich relationaler Daten zu wechseln (hybrider Modus). 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 der Projektmappe
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. Alle im Modell verwendeten Daten und Berichte müssen z. B. von einer einzelnen SQL Server-Datenbank kommen. Weitere Informationen finden Sie unter DirectQuery Mode (SSAS Tabular).
Überprüfen Sie außerdem die Einschränkungen bezüglich der Measures und der berechneten Spalten. Stellen Sie fest, ob die Formeln, die Sie zu verwenden beabsichtigen, mit dem DirectQuery-Modus kompatibel sind. Sie müssen unter Umständen die folgenden Elemente entfernen oder ändern:
Berechnete Spalten werden nicht unterstützt.
Kopierte und eingefügte Daten können nicht verwendet werden. Wenn Sie ein PowerPivot-Modell importieren, um die Lösung zu beschleunigen, müssen Sie sicherstellen, das verknüpfte Tabellen vor dem Importieren der Lösung gelöscht werden, da die entsprechenden Daten nicht gelöscht werden können und eventuell die DirectQuery-Überprüfung blockieren.
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 in Projektmappen-Explorer auf den Knoten Model.bim, und legen Sie die Eigenschaft DirectQuery Mode auf festOn
.
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 InMemoryfestgelegt. 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 eine berechnete Spalte für ein bestimmtes Measure benötigen, können Sie die Spalte jederzeit mithilfe der relationalen Abfrage-Designer (SSAS) erstellen, die im Tabellenimport-Assistenten bereitgestellt wird.
Ä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 das Modell zuvor kopierte und eingefügte Daten oder Daten von anderen Anbietern als dem SQL Server verwendet hat, können Sie neue Sichten und abgeleitete Spalten innerhalb der vorhandenen Verbindung erstellen oder verteilte Abfragen verwenden. Alle in einem DirectQuery-Modell verwendeten Daten müssen über eine einzelne SQL Server-Datenquelle zugänglich sein.
Schritt 4. Festlegen der bevorzugten Methode zur Beantwortung von Abfragen für das Modell
Nur DirectQuery | Legen Sie die Eigenschaft auf DirectQueryfest. |
Hybridmodus | Legen Sie die Eigenschaft auf InMemory mit DirectQuery oder DirectQuery mit InMemoryfest. 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-Partitionauswä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, das zum Herstellen einer Verbindung mit der SQL Server Datenquelle verwendet wird. Wenn Sie den Wert ImpersonateCurrentUser verwenden, übergibt der instance von Analysis Services, der das Modell hostet, die Anmeldeinformationen des aktuellen Benutzers des Modells an die SQL Server-Datenbank. |
Hybridmodus | Geben Sie für die Eigenschaft Identitätswechseleinstellungen das Konto an, mit dem auf die Daten der SQL Server-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 bereit sind, das Modell bereitzustellen, öffnen Sie das Menü Projekt von 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 von 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 der Analysis Services-Caches. |
Hybridmodus | DirectQuery mit InMemory In-Memory 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 instance 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 Eigenschaftenaus.
Die Eigenschaft DirectQueryModewurde festgelegt, als die Bereitstellungseigenschaften definiert wurden.
Die Eigenschaft Identitätswechselinformationen der Datenquellewurde 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.
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. Bei zwischengespeicherten tabellarischen Modellen können Sie auch Analysis Services-Rollen verwenden, um den Datenzugriff zu steuern, aber auch die im Cache gespeicherten Daten müssen geschützt 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 hat viele Vorteile: Sie können aktuelle Daten aus der SQL Server-Datenquelle nach Bedarf abrufen, doch die Beibehaltung des Caches bietet 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. Die Leistung kann dadurch leicht beeinträchtigt werden, doch Daten können direkt vom relationalen Speicher abgerufen werden, wodurch sichergestellt wird, dass die Ergebnisse aktuell waren.
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 = In-Memory 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 DirectQueryfestgelegt. DirectQueryMode = On QueryMode = DirectQuery mit In-Memory |
Weitere Informationen
DirectQuery-Modus (SSAS – tabellarisch)
Zugriff auf Daten im tabellarischen Modell