it-swarm-eu.dev

Was muss ein DBA über SSAS wissen?

Ich habe viel Material gesehen, das den Geschäftsaspekt von SSAS abdeckt, aber nicht wirklich viel über die wichtigen Aspekte von Verwaltung und Management.

Was muss ein funktionierender DBA aus Sicht der Verwaltung einer Instanz von SQL Server Analysis Services über SSAS wissen, um sie korrekt und effizient verwalten zu können?

40
ivanmp

Ein kurzer Überblick über SSAS für DBAs

Sie sind also ein SQL Server-DBA und haben gerade einige Cubes aus heiterem Himmel geerbt, um sie zu verwalten. Ein kurzer Crashkurs zur SSAS-Administration scheint angebracht zu sein.

Aus administrativer Sicht ist SSAS eine recht unkomplizierte, wenn auch ressourcenhungrige Anwendung. Es ist viel einfacher als eine DBMS-Plattform, obwohl es sich in mehrfacher Hinsicht unterscheidet. Es gibt auch einige administrative Aufgaben wie die nutzungsbasierte Optimierung für SSAS, die Sie möglicherweise in den Griff bekommen müssen.

Sichern Sie Ihre Konfigurationsdatei

Alle Konfigurationsdaten befinden sich in einer Datei namens msdmsrv.ini. Es ist eine XML-Datei. Wenn Sie die Konfiguration über SSMS basteln (Verbindung zum Server herstellen, mit der rechten Maustaste auf den Server klicken, Eigenschaften auswählen), können Sie Optionen festlegen, die den Server beim Start beschädigen. Nehmen Sie eine Kopie von msmdsrv.ini, Bevor Sie mit etwas spielen.

Wichtige Parameter

Gedächtnis: SSAS ist ein biblisches Gedächtnisfresser. Es mag 64-Bit-Builds, wenn möglich, und viel Speicher. Die Parameter 'Memory\LowMemoryLimit' und 'Memory\HighMemoryLimit' steuern die Richtlinien zur Speichernutzung. LowMemoryLimit ist keine minimale Speicherzuordnung. Dies ist ein Schwellenwert, bei dem SSAS davon ausgeht, dass das System über wenig Arbeitsspeicher verfügt, und beginnt, Daten aus seinen Caches zu löschen. HighMemoryLimit ist das absolute Maximum, das verwendet wird.

Beachten Sie, dass SSAS seine Daten in Dateien speichert (viele Dateien - es gibt keinen Mechanismus, der Dateigruppen entspricht), sodass das Caching des Betriebssystems für diese Dateien häufig verwendet wird. Beachten Sie, dass der Standardwert für diese Grenzwerte etwa 65% bzw. 80% des Arbeitsspeichers des Computers beträgt. Wenn Sie also möchten, dass der Server OLAP] mit einer SQL Server-Instanz koexistiert, müssen Sie diese deaktivieren Es wird also nicht um den Speicher mit dem Datenbankserver gekämpft.

Verzeichnisse: Fünf interessante Parameter decken dies ab: DataDir, AllowedBrowsingFolders, BackupDir, LogDir und TempDir. DataDir und AllowedBrowsingFolders sind die wichtigsten.

  • AllowedBrowsingFolders wirkt sich auf die Liste der Ordner aus, in die der OLAP Server seine Datendateien ablegt. Alles, was über eine Benutzeroberfläche verfügt (z. B. der Bereitstellungsassistent), schränkt Ihre Optionen ein in die Liste in AllowedBrowsingFolders. Der Wert ist eine durch Pipe ('|') getrennte Liste von Verzeichnissen.

  • DataDir ist der Standardpfad für Dateien. Wenn Sie den Cube auf mehrere Volumes verteilen möchten, müssen Sie AllowedBrowsingFolders entsprechend konfigurieren.

  • LogDir Hier legt der Server verschiedene Protokolldateien ab, einschließlich Flugschreiber und Abfrageprotokolle. Das Flugschreiberprotokoll wird zur Fehlerbehebung verwendet, und das Abfrageprotokoll OLAP wird zur nutzungsbasierten Optimierung verwendet (dazu später mehr)).

  • TempDir ist ein Speicherort für temporäre Dateien, die SSAS während der Verarbeitung erstellt. Wenn Sie große Datenmengen verarbeiten und Leistungsprobleme haben, können Sie diese von den Daten auf ein anderes Volumen verschieben.

  • BackupDir ist das, was es verspricht.

Verschiedenes: Einige verschiedene Parameter können ebenfalls von Interesse sein. Einige Sätze, die Sie möglicherweise optimieren müssen, sind:

  • DefaultMaxDrillthroughRows : Dies begrenzt die Größe von Drillthrough-Zeilensätzen. Möglicherweise müssen Sie dies ausprobieren, um mehr zuzulassen.

  • Threads/Timeouts : Möglicherweise müssen Sie diese anpassen. Ich musste mich nie darum kümmern.

Das sind die Grundlagen. Möglicherweise müssen Sie die anderen aus bestimmten Gründen optimieren, aber Sie können Ihre Hausaufgaben machen.

Eine Referenzanleitung für die SSAS-Servereigenschaften finden Sie hier.

Operationen

Bereitstellung: Sie können ein Projekt in BIDS kompilieren und eine Reihe von Dateien abrufen, die mit dem Bereitstellungsassistenten. You bereitgestellt werden können Möglicherweise müssen die Dateipfade für Partitionen und einige andere Dinge angepasst werden.

Programmierte und gestapelte Administratoraufgaben: Befehle werden über eine Webdienst-API namens XML/A an SSAS ausgegeben. Microsoft bietet ein interaktives Tool zum Ausgeben von MDX- und XML/A-Connands. Wenn Sie MDX in einen XML/A-Befehl einbetten müssen, achten Sie darauf, dass XML-Escapezeichen wie & Verwendet werden müssen. Dies ist kein Problem mit dem MDX-Editor und dem Abfragetool in SSMS.

Offline-Jobs können über verschiedene SSIS-Cube-Verarbeitungsaufgaben, ein Befehlszeilenprogramm namens ascmd.exe Oder eine .Net-API namens AMO ausgeführt werden. Sie können auch verschiedene Powershell-Tools und dergleichen erhalten. ascmd.exe Nimmt eine XML/A-Datei und sendet sie an den Server. Wenn Sie die Datei programmgesteuert bearbeiten müssen, ist es möglicherweise besser, mit kleinen .NET-Tools zu arbeiten, als zu versuchen, XML-Dateien über ein CMD-Skript zu bearbeiten.

Das Operations Guide geht näher darauf ein.

Sicherheit

Die Sicherheit auf SSAS ist ziemlich simpel. Es verfügt über eine globale Serverrolle mit Administratorrechten für das gesamte System. Leider benötigen Sie 'Server', um Datenbanken zu erstellen. Daher müssen Sie diese wahrscheinlich Entwicklern auf allen Entwicklungsservern gewähren, die Sie haben OLAP Server, die Sie haben.

Andere Sicherheit kann nur auf einzelne Cube-Schemas angewendet werden. Sie können Rollen innerhalb eines Schemas Berechtigungen zum Lesen, Verarbeiten, Drillthrough, Zurückschreiben und dergleichen für einzelne Elemente erteilen. Rollen in OLAP Schemas können in BIDS definiert und mit dem Cube bereitgestellt werden. AD-Gruppen oder Benutzer können diesen Rollen über SSMS zugewiesen werden.

Ein Beispiel für die programmgesteuerte Verwaltung der Rollenmitgliedschaft finden Sie unter hier.

Nutzungsbasierte Optimierung

Als DBA könnten Sie sich durchaus auf diesen einlassen, aber zuerst ein wenig Hintergrundwissen über den physischen Speicher. SSAS berechnet und speichert vorgefertigte Aggregate zusammen mit den Basisdaten. Wenn eine Abfrage durch Auftreffen auf ein Aggregat erfüllt werden kann, verwendet der Server OLAP) dies bevorzugt gegenüber den Basisdaten, da das Aggregat viel weniger E/A umfasst und daher schneller abgerufen werden kann die Daten.

Sie müssen jedoch herausfinden, welche Aggregate berechnet werden sollen (d. H. Für welche Kombinationen von Dimensionsattributen Rollups generiert werden sollen). BIDS hat ein Tool, das dies errät und einige für Sie generiert. Mit einigen Tools wie BIDS-Helfer können Sie die Aggregate auch manuell bearbeiten.

Bei der nutzungsbasierten Optimierung wird ein Protokoll der tatsächlich an den Server ausgegebenen Abfragen erstellt und anschließend anhand dieses Protokolls eine Reihe von Aggregaten erstellt, die für diese Abfragen optimal sind. Als DBA können Sie OLAP Abfrageprotokollierung einrichten, um diese Daten zu erfassen, und dann die Optimierung für den Cube ausführen. Ein Klappentext zum Einrichten des Abfrageprotokolls finden Sie hier) .

Das Tool hierfür heißt 'Assistent für nutzungsbasierte Optimierung.' Dies befindet sich in SSMS und kann durch Öffnen der Partition im Explorer und Auswahl von 'nutzungsbasierte Optimierung' mit der rechten Maustaste gefunden werden Speisekarte.

Das Performance Guide geht detaillierter auf die Abstimmung ein.

[~ # ~] mdx [~ # ~]

MDX sieht ein bisschen wie SQL aus, funktioniert aber ganz anders. Eine Abhandlung über 'MDX für SQL-Programmierer' ist ein eigenständiges Thema. Ich schlage vor, einige der Tutorials zu lesen und/oder ein Buch darüber zu bekommen. Außerdem können die freundlichen Leute hier bei dba.se bei Fragen helfen, wenn Sie welche haben.

MDX hat kein Konzept zum Filtern von Zeilen. Die Sprache verfügt über eine Reihe von festgelegten Operationen, um herauszufinden, was auf den verschiedenen Achsen der Abfrage angezeigt werden soll1, plus 'SELECT'. Sie können with -Anweisungen verwenden, die CTEs ähneln, um Kennzahlen und Mengen zu definieren.

Einige einführende MDX-Programmierressourcen finden Sie hier und hier (diese ist ziemlich alt und sehr langwierig). Es gibt auch ein paar gute Bücher zu diesem Thema; diese SO Frage hat einiges an Fan-Out für SSAS-Ressourcen.

1 Obwohl es nicht leere Operatoren gibt, die die Ergebnisse auf Kombinationen beschränken, die tatsächlich Daten enthalten. Die meisten MDX-Abfragen bestehen darin, zu definieren, welche Slices auf den Achsen angezeigt werden sollen. Nicht leere Operatoren sind erforderlich, um zu vermeiden, dass Abfragen kombinatorische Mengen leerer Zellen zurückgeben.

Einige der Antworten zur SSAS-Verwaltung finden Sie möglicherweise in diesem ausführlichen Whitepaper SQL Server 2008 R2 Analysis Services-Betriebshandbuch . So beginnt die Einführung:

In diesem Handbuch finden Sie Informationen zum Testen und Ausführen von Microsoft SQL Server Analysis Services in SQL Server 2005, SQL Server 2008 und SQL Server 2008 R2 in einer Produktionsumgebung. Der Schwerpunkt dieses Handbuchs liegt darauf, wie Sie Produktionsprobleme selbst bei den größten skalierten Cubes testen, überwachen, diagnostizieren und entfernen können. Dieses Dokument enthält auch Anleitungen zur Konfiguration des Servers für die bestmögliche Leistung.

Es richtet sich eindeutig an DBA/Administratoren. Wenn Sie auch Anwendungen mit SSAS entwickeln, können Sie auch das Whitepaper Analysis Services 2008 Performance Guide Whitepaper lesen

6
DaniSQL