Planen von administrativen Tasks in SSAS mithilfe von SQL Server-Agent

Mithilfe des SQL Server-Agent-Diensts können Sie administrative Aufgaben für Analysis Services planen, die in einer bestimmten Reihenfolge und zu einer bestimmten Zeit ausgeführt werden sollen. Mit geplanten Tasks können Sie Vorgänge automatisieren, die in regelmäßigen oder vorhersagbaren Abständen ausgeführt werden müssen. Dabei können Sie administrative Tasks wie z. B. die Cubeverarbeitung so planen, dass sie zu Zeiten ausgeführt werden, in denen die geschäftliche Auslastung des Servers niedrig ist. Sie können auch die Reihenfolge bestimmen, in der die Tasks ausgeführt werden sollen, indem Sie innerhalb eines SQL Server-Agent-Auftrags Auftragsschritte erstellen. Beispielsweise können Sie einen Cube verarbeiten und dann eine Sicherung des Cubes durchführen lassen.

Mit Auftragsschritten können Sie den Ausführungsprozess steuern. Sie können SQL Server-Agent so konfigurieren, dass im Fall eines Fehlers bei einem Auftrag mit der Ausführung der restlichen Tasks fortgefahren wird, oder die Ausführung angehalten wird. Sie können in SQL Server-Agent auch das Senden von Benachrichtigungen über die erfolgreiche bzw. fehlerhafte Ausführung eines Auftrags konfigurieren.

Dieses Thema ist eine exemplarische Vorgehensweise, in der zwei Methoden erläutert werden, wie Sie XMLA-Skript mithilfe des SQL Server-Agents ausführen. Im ersten Beispiel wird veranschaulicht, wie die Verarbeitung einer einzelnen Dimension geplant wird. Im zweiten Beispiel wird gezeigt, wie Verarbeitungstasks in ein einzelnes Skript kombiniert werden, das nach einem Zeitplan ausgeführt wird. Wenn Sie diese exemplarische Vorgehensweise abschließen möchten, müssen folgende Voraussetzungen erfüllt sein.

Voraussetzungen

Der SQL Server-Agent-Dienst muss installiert sein.

Standardmäßig werden Aufträge unter demselben Dienstkonto ausgeführt. In SQL Server 2012 lautet das Standardkonto für den SQL Server-Agent: NT Service\SQLAgent$<Instanzname>. Um einen Sicherungs- oder Verarbeitungstask auszuführen, muss dieses Konto Systemadministrator auf der Analysis Services-Instanz sein. Weitere Informationen finden Sie unter Gewähren von Serveradministratorberechtigungen (Analysis Services).

Sie sollten außerdem eine Testdatenbank haben, um damit zu arbeiten. Sie können die mehrdimensionale AdventureWorks-Beispieldatenbank oder ein Projekt aus dem mehrdimensionalen Analysis Services-Lernprogramm bereitstellen, um es in dieser exemplarischen Vorgehensweise zu verwenden. Weitere Informationen finden Sie unter Installieren von Beispieldaten und -projekten für das Analysis Services-Lernprogramm zur mehrdimensionalen Modellierung.

Beispiel 1: Verarbeiten einer Dimension in einem geplanten Task

In diesem Beispiel wird veranschaulicht, wie Sie einen Auftrag erstellen und planen, um eine Dimension zu verarbeiten.

Ein geplanter Analysis Services-Task ist ein in einem SQL Server-Agent-Auftrag eingebettetes XMLA-Skript. Dieser Auftrag ist geplant, d. h. er wird zu den festgelegten Zeiten und mit der festgelegten Häufigkeit ausgeführt. SQL Server-Agent ist Teil von SQL Server, daher benötigen Sie zum Erstellen und Planen von administrativen Tasks sowohl das Datenbankmodul als auch Analysis Services.

Erstellen eines Skripts zum Verarbeiten einer Dimension in einem SQL Server-Agent-Auftrag

  1. Stellen Sie in SQL Server Management Studio eine Verbindung zu Analysis Services her. Öffnen Sie einen Datenbankordner, und suchen Sie eine Dimension. Klicken Sie mit der rechten Maustaste auf die Dimension, und wählen Sie Verarbeiten.

  2. Überprüfen Sie im Dialogfeld Dimension aufbereiten in der Spalte Verarbeitungsoptionen unter Objektliste, ob die Option für diese Spalte Vollständig verarbeiten lautet. Falls dies nicht der Fall ist, klicken Sie auf die Option unter Verarbeitungsoptionen, und wählen Sie Vollständig verarbeiten aus der Dropdownliste aus.

  3. Klicken Sie auf Skript.

    Dieser Schritt öffnet ein XML-Abfragefenster, welches das XMLA-Skript enthält, das die Dimension verarbeitet.

  4. Klicken Sie im Dialogfeld Dimension aufbereiten auf Abbrechen, um das Dialogfeld zu schließen.

  5. Markieren Sie im XMLA-Abfragefenster das XMLA-Skript, klicken Sie mit der rechten Maustaste auf das markierte Skript, und wählen Sie Kopieren.

    Dieser Schritt kopiert das XMLA-Skript in die Windows-Zwischenablage. Sie können das XMLA-Skript in der Zwischenablage lassen oder es in Editor oder einen anderen Text-Editor einfügen. Unten ist ein Beispiel für das XMLA-Skript angegeben.

    <Batch xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
     <Parallel>
      <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Object>
          <DatabaseID>Adventure Works DW Multidimensional</DatabaseID>
          <DimensionID>Dim Account</DimensionID>
        </Object>
        <Type>ProcessFull</Type>
        <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
      </Process>
     </Parallel>
    </Batch>
    

Erstellen und Planen des Dimensionsverarbeitungsauftrags

  1. Stellen Sie eine Verbindung mit einer Instanz des Datenbankmoduls her, und öffnen Sie dann den Objekt-Explorer.

  2. Erweitern Sie SQL Server-Agent.

  3. Klicken Sie mit der rechten Maustaste auf Aufträge, und klicken Sie dann auf Neuer Auftrag.

  4. Geben Sie im Dialogfeld Neuer Auftrag unter Name einen Auftragsnamen ein.

  5. Wählen Sie unter Seite auswählen die Option Schritte aus, und klicken Sie dann auf Neu.

  6. Geben Sie im Dialogfeld Neuer Auftragsschritt unter Schrittname einen Schrittnamen ein.

  7. Geben Sie in Server localhost für eine Standardinstanz von Analysis Services und localhost\<instance name> für eine benannte Instanz ein.

    Wenn Sie den Auftrag von einem Remotecomputer ausführen, verwenden Sie den Namen des Servers und der Instanz, wo der Auftrag ausgeführt wird. Verwenden Sie das Format <server name> für eine Standardinstanz und <server name>\<instance name> für eine benannte Instanz.

  8. Wählen Sie unter Typ die Option SQL Server Analysis Services-Befehl aus.

  9. Klicken Sie unter Befehl mit der rechten Maustaste, und wählen Sie Einfügen aus. Das XMLA-Skript, das Sie im vorherigen Schritt generiert haben, sollte im Befehlsfenster angezeigt werden.

  10. Klicken Sie auf OK.

  11. Wählen Sie unter Seite auswählen die Option Zeitpläne aus, und klicken Sie dann auf Neu.

  12. Geben Sie im Dialogfeld Neuer Auftragszeitplan einen Namen für den Zeitplan in das Feld Name ein, und klicken Sie auf OK.

    Dieser Schritt erstellt einen Zeitplan für Sonntag 00:00 Uhr. Im nächsten Schritt sehen Sie, wie der Auftrag manuell ausgeführt wird. Sie können auch einen Zeitplan angeben, der den Auftrag ausführt, wenn Sie ihn überwachen.

  13. Klicken Sie im Dialogfeld Neuer Auftrag auf OK.

  14. Erweitern Sie im Objekt-Explorer den Eintrag Aufträge, klicken Sie mit der rechten Maustaste auf den erstellten Auftrag, und wählen Sie dann Auftrag starten bei Schritt aus.

    Da der Auftrag nur einen Schritt hat, wird der Auftrag sofort ausgeführt. Wenn der Auftrag aus mehr als einem Schritt besteht, können Sie angeben, mit welchem Schritt der Auftrag beginnen soll.

  15. Klicken Sie nach Abschluss des Auftrags auf Schließen.

Beispiel 2: Batchverarbeitung einer Dimension und einer Partition in einem geplanten Task

Die Prozeduren in diesem Beispiel veranschaulichen, wie Sie einen Auftrag erstellen und planen, der eine Batchverarbeitung für eine Analysis Services-Datenbankdimension ausführt und zur gleichen Zeit eine Cubepartition verarbeitet, deren Aggregation von der Dimension abhängt. Weitere Informationen zur Batchverarbeitung von Analysis Services-Objekten finden Sie unter Batchverarbeitung von Analysis Services-Objekten.

Erstellen eines Skripts zur Batchverarbeitung einer Dimension und einer Partition in einem SQL Server-Agent-Auftrag

  1. Erweitern Sie unter Verwendung der gleichen Datenbank den Eintrag Dimensionen, klicken Sie mit der rechten Maustaste auf die Customer-Dimension, und wählen Sie Verarbeiten aus.

  2. Überprüfen Sie im Dialogfeld Dimension aufbereiten in der Spalte Verarbeitungsoptionen unter Objektliste, ob die Option für diese Spalte Vollständig verarbeiten lautet.

  3. Klicken Sie auf Skript.

    Dieser Schritt öffnet ein XML-Abfragefenster, welches das XMLA-Skript enthält, das die Dimension verarbeitet.

  4. Klicken Sie im Dialogfeld Dimension aufbereiten auf Abbrechen, um das Dialogfeld zu schließen.

  5. Erweitern Sie Cubes, erweitern Sie Adventure Works, erweitern Sie Measuregruppen, erweitern Sie Internet Sales, erweitern Sie Partitionen, klicken Sie mit der rechten Maustaste in der Liste auf die letzte Partition, und wählen Sie dann Verarbeiten aus.

  6. Überprüfen Sie im Dialogfeld Partition verarbeiten in der Spalte Verarbeitungsoptionen unter Objektliste, ob die Option für diese Spalte Vollständig verarbeiten lautet.

  7. Klicken Sie auf Skript.

    Dieser Schritt öffnet ein zweites XML-Abfragefenster, welches das XMLA-Skript enthält, das die Partition verarbeitet.

  8. Klicken Sie im Dialogfeld Partition verarbeiten auf Abbrechen, um den Editor zu schließen.

    An diesem Punkt müssen Sie die zwei Skripts zusammenführen und sicherstellen, dass die Dimension zuerst verarbeitet wird.

    VorsichtshinweisVorsicht

    Wenn die Partition zuerst verarbeitet wird, bewirkt die nachfolgende Dimensionsverarbeitung, dass die Partition nicht mehr verarbeitet ist. Die Partition würde dann eine zweite Verarbeitung erfordern, um den Status "Verarbeitet" aufzuweisen.

  9. Markieren Sie im XMLA-Abfragefenster, welches das XMLA-Skript enthält, das die Partition verarbeitet, den Code in den Tags Batch und Parallel, klicken Sie mit der rechten Maustaste auf das markierte Skript, und wählen Sie Kopieren.

    <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Object>
          <DatabaseID> Adventure Works DW Multidimensional</DatabaseID>
          <CubeID>Adventure Works</CubeID>
          <MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>
          <PartitionID> Internet_Sales_2004</PartitionID>
        </Object>
        <Type>ProcessFull</Type>
        <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
      </Process>
    
  10. Öffnen Sie das XMLA-Abfragefenster, welches das XMLA-Skript enthält, das die Dimension verarbeitet. Klicken Sie mit der rechten Maustaste innerhalb des Skripts links vom </Process>-Tag, und wählen Sie Einfügen aus.

    Im folgenden Beispiel sehen Sie das überarbeitete XMLA-Skript.

    <Batch xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
     <Parallel>
      <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Object>
          <DatabaseID>Adventure Works DW Multidimensional</DatabaseID>
          <DimensionID>Dim Customer</DimensionID>
        </Object>
        <Type>ProcessFull</Type>
        <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
      </Process>
      <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Object>
          <DatabaseID>Adventure Works DW Multidimensional</DatabaseID>
          <CubeID>Adventure Works</CubeID>
          <MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>
          <PartitionID>Internet_Sales_2004</PartitionID>
        </Object>
        <Type>ProcessFull</Type>
        <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
      </Process>
     </Parallel>
    </Batch>
    
  11. Markieren Sie das überarbeitete XMLA-Skript, klicken Sie mit der rechten Maustaste auf das markierte Skript, und wählen Sie Kopieren.

  12. Dieser Schritt kopiert das XMLA-Skript in die Windows-Zwischenablage. Sie können das XMLA-Skript in der Zwischenablage lassen, in einer Datei speichern oder es in Editor oder einen anderen Text-Editor einfügen.

Erstellen und Planen des Batchverarbeitungsauftrags

  1. Stellen Sie eine Verbindung mit einer Instanz von SQL Server her, und öffnen Sie den Objekt-Explorer.

  2. Erweitern Sie SQL Server-Agent. Starten Sie den Dienst, wenn er nicht bereits ausgeführt wird.

  3. Klicken Sie mit der rechten Maustaste auf Aufträge, und klicken Sie dann auf Neuer Auftrag.

  4. Geben Sie im Dialogfeld Neuer Auftrag unter Name einen Auftragsnamen ein.

  5. Klicken Sie in Schritte auf Neu.

  6. Geben Sie im Dialogfeld Neuer Auftragsschritt unter Schrittname einen Schrittnamen ein.

  7. Wählen Sie unter Typ die Option SQL Server Analysis Services-Befehl aus.

  8. Wählen Sie unter Ausführen als das SQL Server-Agent-Dienstkonto aus. Aus dem Abschnitt zu Voraussetzungen wissen Sie bereits, dass dieses Konto über Administratorberechtigungen für Analysis Services verfügen muss.

  9. Geben Sie unter Server den Servernamen der Analysis Services-Instanz an.

  10. Klicken Sie unter Befehl mit der rechten Maustaste, und wählen Sie Einfügen aus.

  11. Klicken Sie auf OK.

  12. Klicken Sie auf der Seite Zeitpläne auf Neu.

  13. Geben Sie im Dialogfeld Neuer Auftragszeitplan einen Namen für den Zeitplan in das Feld Name ein, und klicken Sie auf OK.

    Dieser Schritt erstellt einen Zeitplan für Sonntag 00:00 Uhr. Im nächsten Schritt sehen Sie, wie der Auftrag manuell ausgeführt wird. Sie können auch einen Zeitplan auswählen, der den Auftrag ausführt, wenn Sie ihn überwachen.

  14. Klicken Sie auf OK, um das Dialogfeld zu schließen.

  15. Erweitern Sie im Objekt-Explorer den Eintrag Aufträge, klicken Sie mit der rechten Maustaste auf den erstellten Auftrag, und wählen Sie Auftrag starten bei Schritt aus.

    Da der Auftrag nur einen Schritt hat, wird der Auftrag sofort ausgeführt. Wenn der Auftrag aus mehr als einem Schritt besteht, können Sie angeben, mit welchem Schritt der Auftrag beginnen soll.

  16. Klicken Sie nach Abschluss des Auftrags auf Schließen.

Siehe auch

Konzepte

Verarbeiten von Optionen und Einstellungen (Analysis Services)

Skriptverwaltungsaufgaben in Analysis Services