Was muss ein DBA über SSAS wissen?

40

Ich habe viel Material gesehen, das den geschäftlichen Aspekt von SSAS abdeckt, aber nicht wirklich viel über die wichtigen Aspekte von Administration und Management.

Was muss ein funktionierender DBA unter dem Gesichtspunkt der Verwaltung einer Instanz von SQL Server Analysis Services über SSAS wissen, damit er ordnungsgemäß und effizient verwaltet werden kann?

ivanmp
quelle

Antworten:

50

Ein kurzer Überblick über SSAS für DBAs

Sie sind also ein SQL Server-DBA und haben gerade einige Cubes aus heiterem Himmel geerbt, die verwaltet werden sollen. Ein schneller Crashkurs zur SSAS-Administration scheint angebracht.

Aus administrativer Sicht ist SSAS eine recht einfache, wenn ressourcenhungrige Anwendung. Es ist viel einfacher als eine DBMS-Plattform, unterscheidet sich jedoch in verschiedener Hinsicht. Darüber hinaus gibt es einige administrative Aufgaben, z. B. die benutzungsbasierte Optimierung für SSAS, mit denen Sie sich möglicherweise auseinandersetzen müssen.

Sichern Sie Ihre Konfigurationsdatei

Alle Konfigurationsdaten befinden sich in einer Datei namens msdmsrv.ini. Es ist eine XML-Datei. Wenn Sie mit der 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 davon, msmdsrv.inibevor Sie mit etwas spielen.

Wichtige Parameter

Gedächtnis: SSAS ist ein biblisches Gedächtnisschwein. Es mag 64-Bit-Builds, wenn möglich, und viel Speicher. Die Parameter 'Memory \ LowMemoryLimit' und 'Memory \ HighMemoryLimit' steuern die Richtlinien für die Speichernutzung. LowMemoryLimit ist keine Mindestspeicherzuordnung. Dies ist ein Schwellenwert, bei dem SSAS davon ausgeht, dass auf dem System nur noch wenig Arbeitsspeicher vorhanden ist, und anfängt, Daten aus den Caches zu entfernen. 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 Zwischenspeichern von O / S-Dateisystemen für diese Dateien in hohem Maße genutzt wird. Beachten Sie, dass die Standardeinstellung für diese Grenzwerte etwa 65% bzw. 80% des Arbeitsspeichers des Computers beträgt. Wenn Sie also möchten, dass der OLAP-Server mit einer SQL Server-Instanz koexistiert, müssen Sie diese herunterfahren, damit nicht über den Arbeitsspeicher gestritten wird der Datenbankserver.

Verzeichnisse: Folgende fünf Parameter sind von Interesse: DataDir, AllowedBrowsingFolders, BackupDir, LogDir und TempDir. DataDir und AllowedBrowsingFolders sind die wichtigsten.

  • AllowedBrowsingFolders wirkt sich auf die Liste der Ordner aus, in denen der OLAP-Server seine Datendateien ablegt. Alle Elemente mit einer Benutzeroberfläche (z. B. der Bereitstellungsassistent) beschränken Ihre Optionen auf 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.

  • In LogDir speichert der Server verschiedene Protokolldateien, einschließlich Flugschreiber- und Abfrageprotokollen. Das Flugschreiberprotokoll wird zur Fehlerbehebung und das OLAP-Abfrageprotokoll 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 davon profitieren, diese von den Daten auf ein anderes Volumen zu verschieben.

  • BackupDir ist das, was es verspricht .

Verschiedenes: Einige verschiedene Parameter können ebenfalls von Interesse sein. Einige Sets, die Sie möglicherweise anpassen müssen, sind:

  • DefaultMaxDrillthroughRows: Hiermit wird die Größe der Drillthrough- Zeilensätze begrenzt. Möglicherweise müssen Sie dies fummeln, 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.

Ein Referenzhandbuch 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 bereitgestellt werden können . Möglicherweise müssen Sie die Dateipfade für Partitionen und einige andere Dinge anpassen.

Programmierte und gestapelte Verwaltungsaufgaben: Befehle werden über eine Webservice-API namens XML / A an SSAS ausgegeben. Microsoft bietet ein interaktives Tool zum Ausgeben von MDX- und XML / A-Befehlen. Wenn Sie MDX in einen XML / A-Befehl einbetten müssen, achten Sie auf die Notwendigkeit, XML-Escapezeichen wie z &. Dies ist kein Problem mit dem MDX-Editor und dem Abfrage-Tool in SSMS.

Offline-Jobs können über verschiedene SSIS-Cube-Verarbeitungsaufgaben, ein Befehlszeilendienstprogramm ascmd.exeoder eine .NET-API namens AMO ausgeführt werden. Sie können auch verschiedene PowerShell-Tools und Ähnliches erwerben. ascmd.exeNimmt eine XML / A-Datei und sendet sie an den Server. Wenn Sie die Datei programmgesteuert friggen müssen, ist es möglicherweise besser, mit kleinen .NET-Tools zu arbeiten, als zu versuchen, XML-Dateien aus einem CMD-Skript heraus zu manipulieren.

Die Bedienungsanleitung geht detaillierter darauf ein.

Sicherheit

Sicherheit auf SSAS ist ziemlich simpel. Es hat eine globale 'Server'-Rolle, die über Administratorrechte im gesamten System verfügt. Leider benötigen Sie "Server", um Datenbanken zu erstellen. Daher müssen Sie es wahrscheinlich Entwicklern auf allen vorhandenen OLAP-Entwicklungsservern gewähren.

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

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

Nutzungsbasierte Optimierung

Als DBA werden Sie vielleicht in diesen einbezogen, aber zuerst ein wenig Hintergrundwissen über den physischen Speicher. SSAS berechnet vorgefertigte Aggregate und speichert sie zusammen mit den Basisdaten. Wenn eine Abfrage durch Schlagen auf ein Aggregat beantwortet werden kann, verwendet der OLAP-Server dies gegenüber den Basisdaten, da das Aggregat viel weniger E / A-Vorgänge erfordert und daher die Daten schneller abgerufen werden können.

Sie müssen jedoch herausfinden, welche Aggregate berechnet werden sollen (dh für welche Kombinationen von Dimensionsattributen Rollups generiert werden sollen). BIDS hat ein Tool, das eine Vermutung anstellt und welche für Sie generiert. Mit einigen Tools, z. B. dem BIDS-Hilfsprogramm , können Sie die Aggregate auch manuell bearbeiten.

Die nutzungsbasierte Optimierung erstellt ein Protokoll der tatsächlich an den Server ausgegebenen Abfragen und verwendet dieses Protokoll, um eine Gruppe von Aggregaten zu ermitteln, die für diese Abfragen optimal sind. Als DBA können Sie die OLAP-Abfrageprotokollierung zum Erfassen dieser Daten einrichten und anschließend die Optimierung für den Cube ausführen. Ein Klappentext zum Einrichten des Abfrageprotokolls finden Sie hier.

Das Tool dafür heißt "Nutzungsbasierter Optimierungsassistent". Dies befindet sich in SSMS und kann gefunden werden, indem die Partition im Explorer geöffnet und im Kontextmenü die Option "Benutzungsbasierte Optimierung" ausgewählt wird.

In der Leistungsübersicht wird die Optimierung detaillierter beschrieben.

MDX

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

MDX kennt kein Konzept zum Filtern von Zeilen. Die Sprache verfügt über zahlreiche festgelegte Operationen, mit denen ermittelt werden kann, was auf den verschiedenen Achsen der Abfrage 1 angezeigt werden soll , sowie 'SELECT'. Sie können withAnweisungen 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 umständlich). 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 Segmente auf den Achsen angezeigt werden sollen, und nicht leere Operatoren sind erforderlich, um zu vermeiden, dass Abfragen kombinatorische Mengen leerer Zellen zurückgeben.

Betroffen vonTunbridgeWells
quelle
5
Hervorragende Informationen, insbesondere die Ratschläge "Sie können Optionen festlegen, die den Server beim Start beschädigen".
SqlACID
Das ist eine tolle Antwort! Danke, Mann!
Marian
6

Einige Antworten zur SSAS-Verwaltung finden Sie in diesem ausführlichen Whitepaper zum 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. Im Mittelpunkt dieses Handbuchs steht das Testen, Überwachen, Diagnostizieren und Entfernen von Produktionsproblemen auch bei den größten skalierten Cubes. Dieses Dokument enthält auch Anleitungen zum Konfigurieren des Servers für die bestmögliche Leistung.

Es richtet sich eindeutig an DBA / Administratoren. Wenn Sie auch Anwendungen mit SSAS entwickeln, lesen Sie auch das Whitepaper zum Analysis Services 2008-Leistungshandbuch

DaniSQL
quelle
Vielen Dank, DaniSQL. Ich habe auch dieses Papier gefunden, und ich hätte es wahrscheinlich bei der Frage erwähnen sollen (Entschuldigung!), Aber ich suchte nach einer sanfteren Einführung in das Thema und nach Meinungen, die auf den Erfahrungen unserer DBAs basieren.
Iwanmp
2
Ich kann nicht aus Erfahrung sprechen, da ich selbst nicht direkt an SSAS arbeite :-( Ich versuche mich nur mit einigen Teilen des oben erwähnten Whitepapers vertraut zu machen und habe einige Monate lang ein zweitägiges Training mit Pragmatic-Werken absolviert Lesen Sie das von den Trainern verfasste Buch amzn.to/za1ypP und eine grundlegende Einführung in Kapitel 17 dieses Buches - Microsoft® SQL Server® 2008 Administration ( amzn.to/xnKAWw )
DaniSQL,