Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Automatisieren der tabellarischen Modellverarbeitung von Analysis Services (SSAS)-Datenbanken in SQL Server

Dieser Artikel behandelt die Automatisierung der Verarbeitung der Analysis Services-Datenbank in SQL Server. Die Automatisierung ist eine der wichtigsten Aufgaben, die von Datenbankadministratoren oder DevOps-Ingenieuren verwaltet wird.

Außerdem erhalten wir einen Überblick über Analysis Services-Datenbanken und wie sie sich von SQL Server-Datenbanken unterscheiden.

Dieser Artikel hebt auch die Bedeutung der Automatisierung von Aufgaben in SQL Server hervor, um Fehler zu minimieren und die Produktivität zu maximieren, insbesondere bei der Arbeit mit komplexen Szenarien wie Data-Warehouse-Business-Intelligence-Lösungen.

Informationen zu Analysis Services-Datenbanken

Werfen wir einen Blick auf Analysis Services-Datenbanken, damit wir verstehen, wie wichtig die Automatisierung ihrer Verarbeitung im Kontext von Data-Warehouse-Business-Intelligence-Lösungen und komplexen Datenanalyseszenarien ist.

Was ist eine Analysis Services-Datenbank?

Eine Analysis Services-Datenbank ist eine hochgradig optimierte Datenbank für Analysen und Berichte, die häufig als Teil von Data-Warehouse-Business-Intelligence-Lösungen vorbereitet und aktualisiert wird.

Wie sich Analysis Services-Datenbanken von SQL Server-Datenbanken unterscheiden

Eine Analysis Services-Datenbank unterscheidet sich von einer SQL Server-Datenbank, da sie in einer anderen Sprache (DAX/MDX) arbeitet und viele integrierte Business-Intelligence-Funktionen für Analysen und Berichte zusammen mit Features wie Data Mining und Time Intelligence bietet.

Wie viele Arten von Analysis Services-Datenbanken gibt es?

Die beiden Haupttypen von Analysis Services-Datenbanken sind wie folgt:

  1. Mehrdimensionaler Modus (Würfel)
  2. Tabellenmodus (Datenmodell)

Eine Analysis Services-Datenbank ist also entweder ein bereitgestellter Cube oder ein bereitgestelltes Datenmodell. Aber in beiden Formen bedient es Anforderungen, die von einfachen bis hin zu komplexen Datenanalyseszenarien reichen, und ermöglicht das Erstellen von Berichten darauf.

Was ist SQL Server Analysis Services (SSAS)

SQL Server Analysis Services, auch bekannt als SSAS, ist eine Microsoft-Serverinstanz, die das Hosten von Analysis Services-Datenbanken ermöglicht.

Was ist eine Analysis Services-Datenbank in einem Data Warehouse

Eine Analysedienstdatenbank im Zusammenhang mit einem Data Warehouse ist häufig ein Endprodukt, das Geschäftsanwendern für Self-Service-Berichte und Echtzeitanalysen zur Verfügung gestellt werden kann.

Mit einfachen Worten, sobald die Daten, die verschiedene Transformationen und Stadien eines Data Warehouse durchlaufen, die Analysis Services-Datenbank erreichen, gelten sie als bereit für die Analyse und Berichterstellung.

Was bedeutet die Verarbeitung einer Analysis Services-Datenbank?

Das Verarbeiten einer Analysis Services-Datenbank bedeutet, die Quellen auf neue Daten zu prüfen und sie in die Datenbank zu laden. Analysis Services-Datenbanken müssen mit der Zeit aktualisiert werden, da die Quelle(n), aus denen sie Daten abrufen, häufig neue Daten erhalten.

Warum sollten wir die Verarbeitung von Analysis Services-Datenbanken automatisieren

Die nächste wichtige Frage, die man sich stellen kann, lautet:Warum müssen wir die Verarbeitung einer Analysis Services-Datenbank automatisieren, wenn wir sie einfach manuell ausführen können?

Die einfache Antwort ist, dass wir sicherstellen müssen, dass die Analysis Services-Datenbank ohne manuellen Eingriff auf dem neuesten Stand ist, was Zeit und Mühe spart – insbesondere im Kontext einer Data-Warehouse-Business-Intelligence-Lösung, wenn das Projekt auf einem Live-Server bereitgestellt wird.

Automatisieren der Analysis Services-Datenbankverarbeitung

Lassen Sie uns nun die wichtigsten Schritte zur Automatisierung der Verarbeitung einer Azure Analysis Services-Datenbank durchgehen.

Voraussetzungen

In diesem Artikel wird davon ausgegangen, dass die Leser mit den grundlegenden Konzepten von Data-Warehouse-Business-Intelligence-Lösungen vertraut sind, einschließlich der Bereitstellung von Datenmodellen auf einem SQL Analysis-Server oder Azure Analysis Services.

Da das Erstellen und Verwalten von SQL-Datenbanken und Analysedienstprojekten normalerweise eine Aufgabe eines Entwicklers ist, werden wir uns auf die Verarbeitung und Automatisierung der Verarbeitung von Analysis Services-Datenbanken oder SSAS-Datenbanken aus der Sicht eines DBA oder eines DevOps-Ingenieurs konzentrieren. P>

Dieser Artikel geht von Folgendem aus:

  1. Eine Beispieldatenbank namens SQLDevBlogV5 Quelle wurde bereits eingerichtet
  2. Ein tabellarisches Datenmodell mit einem Analysis Services-Projekt wurde bereits erstellt
  3. Eine Analysis Services-Datenbank namens SQLDevBlogTabularProject basierend auf dem tabellarischen Modell wurde bereits eingesetzt

Bitte beachten Sie, dass die oben erwähnte Quelldatenbank und eine Analysis Services-Datenbank nur zu Referenzzwecken dienen, sodass Sie diese Namen gemäß Ihren Anforderungen ändern können.

Sie können nun direkt zur nächsten Überschrift springen. Wenn Sie jedoch sowohl die Entwickler- als auch die DBA-Perspektive abdecken möchten, können Sie die oben genannten Schritte mit der folgenden Beispieldatenbank durchführen:

-- Create the sample database (SQLDevBlogV5)
CREATE DATABASE SQLDevBlogV5;
GO


USE SQLDevBlogV5;

-- (1) Create the Article table in the sample database
CREATE TABLE Article (
  ArticleId INT PRIMARY KEY IDENTITY (1, 1)
 ,Category	VARCHAR(50)
 ,Author VARCHAR(50)
 ,Title VARCHAR(150)
 ,Published DATETIME2
 ,Notes VARCHAR(400)  
)

GO

-- (2) Populating the Article table
SET IDENTITY_INSERT [dbo].[Article] ON
INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (1, N'Development', N'Atif', N'Introduction to SQL Server Analysis Services (SSAS)', N'2019-01-01 00:00:00', NULL)
INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (2, N'Testing', N'Peter', N'Processing SSAS database', N'2019-01-10 00:00:00', NULL)
INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (3, N'DLM', N'Sadaf', N'Automating Analysis Services Database Processing', N'2019-01-20 00:00:00', NULL)
SET IDENTITY_INSERT [dbo].[Article] OFF

Erstellen Sie als Nächstes einen neuen Analysedienst Tabellenprojekt, importieren Sie die Datenquelle in das Modell und stellen Sie das Modell auf dem SSAS-Server bereit:

Kompatibilitätsstufe

In diesem Beispiel verwenden wir SQL Server 2014 / SQL Server 2012 SP1 (1103) Kompatibilitätsgrad für das Datenmodell. Sie können jedoch entsprechend Ihren Anforderungen einen anderen Kompatibilitätsgrad angeben.

Mit Analysis Services verbinden

Öffnen Sie SSMS (SQL Server Management Studio) und stellen Sie eine Verbindung zu einem Analysis-Server her, indem Sie Ihre Anmeldeinformationen eingeben:

Gehen Sie zur Analysis Services-Datenbank (bereitgestellt)

Sobald die Verbindung hergestellt ist, erweitern Sie die Datenbanken -Knoten im Objekt-Explorer und erweitern Sie dann den bereitgestellten Analysis Services-Datenbankknoten, indem Sie auf das Plus klicken Symbol daneben:

Verarbeiten Sie die Analysis Services-Datenbank

Klicken Sie mit der rechten Maustaste auf die Analysis Services-Datenbank und klicken Sie auf Datenbank verarbeiten:

Behalten Sie den standardmäßigen Verarbeitungsmodus bei und klicken Sie auf OK :

Die Analysis Services-Datenbank wurde erfolgreich verarbeitet:

Skript für die Datenbankverarbeitung

Als Nächstes müssen wir das Skript abrufen, das zum Verarbeiten der Analysis Services-Datenbank verwendet wird.

Eine der Möglichkeiten, die Verarbeitung einer Analysis Services-Datenbank zu automatisieren, besteht darin, die Aufgabe, die die Verarbeitung durchführt, zu skripten und sie als SQL-Auftrag (Schritt) in SQL Server auszuführen.

Klicken Sie auf Datenbank verarbeiten erneut, aber drücken Sie nicht OK diesmal.

Im Skript Klicken Sie im Dropdown-Menü oben links im Fenster auf Skriptaktion für neues Abfragefenster wie unten gezeigt:

Das Verarbeitungsskript wird in einem neuen Fenster namens XMLA-Abfragefenster geöffnet :

Führen Sie das Process Database-Skript aus

Drücken Sie F5, um das XMLA-Skript auszuführen, das mit der Verarbeitung der Analysis Services-Datenbank beginnt:

SQL Server Agent-Prüfung

Stellen Sie nun eine Verbindung zur SQL Server-Datenbank-Engine her und vergewissern Sie sich, dass der SQL Server-Agent ausgeführt wird.

SQL Server-Agentenzugriff einrichten

Außerdem muss sichergestellt werden, dass das Konto, auf dem der SQL Server-Agent ausgeführt wird, Zugriff auf die Analysis Services-Datenbank hat.

In unserem Fall führt das NT Service\SQLAgent-Konto den SQL Server-Agent aus – das bedeutet, dass dieses Konto über Berechtigungen zum Verarbeiten der Analysis Services-Datenbank verfügen muss.

Stellen Sie eine Verbindung mit der tabellarischen Analysis Services-Instanz her, und wechseln Sie zur gewünschten Analysis Services-Datenbank. Erstellen Sie dann eine neue Rolle Database Runner durch Hinzufügen von NT Service\SQLAgent -Konto und geben Sie ihm die Prozessdatenbank Erlaubnis:

Bitte beachten Sie, dass eine der Standardmethoden, dies zu erreichen, darin besteht, einen Proxy zu erstellen und die Anmeldeinformationen diesem Proxy zuzuordnen. Die Einzelheiten dieses Vorgangs gehen jedoch über den Rahmen dieses Artikels hinaus.

XMLA-Skript kopieren, um die Datenbank zu verarbeiten

Kopieren Sie das XMLA-Skript aus dem XMLA-Abfragefenster von SQL Analysis Services, das wir zum Verarbeiten der Analysis Services-Datenbank verwendet haben.

Erstellen Sie einen Jobschritt

Kehren Sie zum SQL Server-Agent zurück und erstellen Sie einen neuen Auftragsschritt als Process Analysis Services Database SQLDevBlogV5.

Erstellen Sie einen neuen Schritt, indem Sie die folgenden Informationen bereitstellen und auf OK klicken :

Bitte denken Sie daran, dass Sie den Namen Ihres Servers und Ihrer Datenbank eingeben und dann das Skript einfügen müssen, das Sie aus dem XMLA-Abfrage-Editor kopiert haben.

Job starten

Klicken Sie mit der rechten Maustaste auf den Job und klicken Sie auf Job bei Schritt starten…

Der Auftragsschritt wird wie unten gezeigt erfolgreich ausgeführt:

Planen Sie den Job, um die Verarbeitung zu automatisieren

Planen Sie als Nächstes den Auftrag, um die Verarbeitung Ihrer Analysis Services-Datenbank zu automatisieren.

Herzliche Glückwünsche! Sie haben die Verarbeitung der Analysis Services-Datenbank erfolgreich automatisiert und sparen Zeit und Mühe, die ein DBA oder ein DevOps-Ingenieur aufwenden muss, um die Datenbank jedes Mal zu verarbeiten, wenn Daten von der Quelle aktualisiert werden müssen.

Dinge zu tun

Da Sie nun die Verarbeitung einer Analysis Services-Datenbank automatisieren können, versuchen Sie bitte Folgendes, um Ihre Fähigkeiten weiter zu verbessern:

  1. Planen Sie den in diesem Artikel erwähnten Analysis Services-Datenbankverarbeitungsauftrag so, dass er täglich ausgeführt wird, und fügen Sie dem Beispiel mit der Zeit weitere Daten hinzu
  2. Implementieren Sie die vollständige Lösung, indem Sie die folgenden Schritte ausführen:
    1. Eine Beispieldatenbank einrichten
    2. Erstellen Sie ein tabellarisches Datenmodell
    3. Importieren Sie eine Beispieldatenbank in das tabellarische Datenmodell
    4. Stellen Sie das tabellarische Datenmodell bereit, um eine Analysis Services-Datenbank zu erstellen
    5. Automatisieren Sie die Verarbeitung der Analysis Services-Datenbank mit SQL Agent
  3. Stellen Sie über Excel eine Verbindung zur Analysis Services-Datenbank her, um die Daten anzuzeigen, nachdem die Analysis Services-Datenbank mithilfe des SQL-Auftrags automatisch aktualisiert wurde