sql >> Database >  >> RDS >> Sqlserver

Het automatiseren van de tabellarische modelverwerking van Analysis Services (SSAS)-databases in SQL Server

Dit artikel gaat over het automatiseren van de verwerking van de Analysis Services-database in SQL Server. Automatisering is een van de belangrijkste taken die worden beheerd door databasebeheerders of DevOps-technici.

Daarnaast krijgen we een overzicht van Analysis Services-databases en hoe ze verschillen van SQL Server-databases.

Dit artikel benadrukt ook het belang van het automatiseren van taken in SQL Server om de fouten te minimaliseren en de productiviteit te maximaliseren, met name bij het werken met complexe scenario's zoals datawarehouse business intelligence-oplossingen.

Over analyseservices-databases

Laten we eens kijken naar de databases van Analysis Services, zodat we het belang kunnen begrijpen van het automatiseren van de verwerking ervan in de context van datawarehouse-business intelligence-oplossingen en complexe scenario's voor gegevensanalyse.

Wat is een Analysis Services-database?

Een Analysis Services-database is een sterk geoptimaliseerde database voor analyse en rapportage die vaak wordt voorbereid en bijgewerkt als onderdeel van datawarehouse-business intelligence-oplossingen.

Hoe Analysis Services-databases verschillen van SQL Server-databases

Een Analysis Services-database verschilt van een SQL Server-database omdat deze in een andere taal (DAX/MDX) werkt en veel ingebouwde business intelligence-functies biedt voor analyse en rapportage, samen met functies zoals datamining en time intelligence.

Hoeveel soorten databases voor analyseservices zijn er

De twee belangrijkste typen Analysis Services-databases zijn als volgt:

  1. Multidimensionale modus (kubus)
  2. Tabulaire modus (gegevensmodel)

Een Analysis Services-database is dus ofwel een geïmplementeerde kubus of een geïmplementeerd gegevensmodel. Maar in beide vormen bedient het verzoeken die variëren van eenvoudige tot complexe scenario's voor gegevensanalyse en maakt het mogelijk om er rapporten op te bouwen.

Wat is SQL Server Analysis Services (SSAS)

SQL Server Analysis Services, ook bekend als SSAS, is een Microsoft-serverinstantie die het hosten van Analysis Services-databases mogelijk maakt.

Wat is een Analysis Services-database in een datawarehouse

Een analyseservicedatabase in de context van datawarehouse is vaak een eindproduct dat aan zakelijke gebruikers kan worden getoond voor zelfbedieningsrapportage en realtime analyse.

In eenvoudige bewoordingen, zodra de gegevens die verschillende transformaties en stadia van een datawarehouse ondergaan de Analysis Services-database bereiken, wordt deze beschouwd als gereed voor analyse en rapportage.

Wat betekent het verwerken van een database met analyseservices?

Het verwerken van een Analysis Services-database betekent de bronnen controleren op nieuwe gegevens en deze in de database laden. Databases van Analysis Services moeten met de tijd worden bijgewerkt, omdat de bron(nen) waaruit ze gegevens halen, vaak nieuwe gegevens krijgen.

Waarom zouden we de verwerking van databases voor analyseservices automatiseren

De volgende belangrijke vraag die men zich kan stellen is:waarom moeten we de verwerking van een Analysis Services-database automatiseren als we deze gemakkelijk handmatig kunnen uitvoeren?

Het simpele antwoord is dat we ervoor moeten zorgen dat de Analysis Services-database up-to-date is zonder handmatige tussenkomst, wat tijd en moeite bespaart, vooral in de context van een datawarehouse-business intelligence-oplossing wanneer het project wordt geïmplementeerd op een live server.

De verwerking van de Analysis Services-database automatiseren

Laten we nu de belangrijkste stappen doorlopen voor het automatiseren van de verwerking van een Azure Analysis Services-database.

Vereisten

In dit artikel wordt ervan uitgegaan dat de lezers bekend zijn met de basisconcepten van business intelligence-oplossingen voor datawarehouses, inclusief de implementatie van datamodellen op een SQL Analysis-server of Azure Analysis Services.

Aangezien het maken en beheren van SQL-databases en analyseserviceprojecten meestal de taak van een ontwikkelaar is, gaan we ons concentreren op de verwerking en automatisering van de verwerking van Analysis Services-databases of SSAS-databases vanuit het perspectief van een DBA of een DevOps-engineer.

Dit artikel gaat uit van het volgende:

  1. Een voorbeelddatabase genaamd SQLDevBlogV5 bron is al ingesteld
  2. Er is al een gegevensmodel in tabelvorm gemaakt met behulp van een Analysis Services-project
  3. Een Analysis Services-database genaamd SQLDevBlogTabularProject op basis van het tabelmodel is al geïmplementeerd

Houd er rekening mee dat de hierboven genoemde brondatabase en een Analysis Services-database alleen voor referentiedoeleinden zijn, dus u kunt deze namen naar wens wijzigen.

U kunt nu direct naar de volgende kop springen. Als u echter zowel het perspectief van de ontwikkelaar als het DBA-perspectief wilt behandelen, kunt u de bovengenoemde stappen uitvoeren met behulp van de volgende voorbeelddatabase:

-- 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

Maak vervolgens een nieuwe Analyseservices tabellair project, importeer de gegevensbron in het model en implementeer het model op de SSAS-server:

Compatibiliteitsniveau

In dit voorbeeld gebruiken we SQL Server 2014 / SQL Server 2012 SP1 (1103) compatibiliteitsniveau voor het gegevensmodel. U kunt echter een ander compatibiliteitsniveau specificeren volgens uw vereisten.

Verbinding maken met analyseservices

Open SSMS (SQL Server Management Studio) en maak verbinding met een analyseserver door uw inloggegevens in te voeren:

Ga naar Analysis Services Database (geïmplementeerd)

Zodra de verbinding tot stand is gebracht, vouwt u de Databases . uit knooppunt in de Objectverkenner en vouw vervolgens het geïmplementeerde Analysis Services-databaseknooppunt uit door op de plus . te klikken icoon ernaast:

Verwerk de Analysis Services-database

Klik met de rechtermuisknop op de Analysis Services-database en klik op Procesdatabase:

Behoud de standaard verwerkingsmodus en klik op OK :

De Analysis Services-database is succesvol verwerkt:

Script de databaseverwerking

Vervolgens moeten we het script ophalen dat wordt gebruikt om de Analysis Services-database te verwerken.

Een van de manieren om de verwerking van een Analysis Services-database te automatiseren, is door de taak die de verwerking uitvoert te scripten en uit te voeren als een SQL-taak (stap) in SQL Server.

Klik op Database verwerken nogmaals, maar druk niet op OK deze keer.

In het Script vervolgkeuzemenu in de linkerbovenhoek van het venster, klik op Scriptactie naar nieuw queryvenster zoals hieronder weergegeven:

Het verwerkingsscript wordt geopend in een nieuw venster met de naam XMLA-queryvenster :

Voer het Process Database-script uit

Druk op F5 om het XMLA-script uit te voeren dat begint met het verwerken van de Analysis Services-database:

SQL Server Agent-controle

Maak nu verbinding met de SQL Server-database-engine en zorg ervoor dat de SQL Server-agent actief is.

SQL Server Agent-toegang instellen

Een ander belangrijk ding is om ervoor te zorgen dat het account waarop de SQL Server Agent wordt uitgevoerd, toegang heeft tot de Analysis Services-database.

In ons geval draait het NT Service\SQLAgent-account de SQL Server-agent - dit betekent dat dit account machtigingen moet hebben om de Analysis Services-database te verwerken.

Maak verbinding met de Analysis Services-tabelinstantie en ga naar de gewenste Analysis Services-database. Maak vervolgens een nieuwe rol Database Runner door NT Service\SQLAgent . toe te voegen account en geef het de Procesdatabase toestemming:

Houd er rekening mee dat een van de standaard manieren om dit te bereiken is om een ​​proxy te maken en de referenties aan die proxy toe te wijzen. De details van dit proces vallen echter buiten het bestek van dit artikel.

Kopieer XMLA-script om de database te verwerken

Kopieer het XMLA-script uit het SQL Analysis Services XMLA-queryvenster dat we hebben gebruikt om de Analysis Services-database te verwerken.

Een taakstap maken

Ga terug naar SQL Server Agent en maak een nieuwe taakstap als Process Analysis Services Database SQLDevBlogV5.

Maak een nieuwe stap door de volgende informatie op te geven en klik op OK :

Houd er rekening mee dat u de naam van uw server en database moet typen en vervolgens het script moet plakken dat u uit de XMLA-queryeditor hebt gekopieerd.

Start de taak

Klik met de rechtermuisknop op de taak en klik op Start taak bij stap…

De taakstap wordt met succes uitgevoerd zoals hieronder wordt weergegeven:

De taak plannen om de verwerking te automatiseren

Plan vervolgens de taak om de verwerking van uw Analysis Services-database te automatiseren.

Gefeliciteerd! U hebt de databaseverwerking van Analysis Services met succes geautomatiseerd, waardoor u de tijd en moeite bespaart die een DBA of een DevOps-engineer nodig heeft om de database te verwerken telkens wanneer gegevens vanuit de bron moeten worden bijgewerkt.

Dingen om te doen

Nu u de verwerking van een Analysis Services-database kunt automatiseren, kunt u het volgende proberen om uw vaardigheden verder te verbeteren:

  1. Plan de verwerkingstaak van de Analysis Services-database die in dit artikel wordt genoemd, zodat deze dagelijks wordt uitgevoerd en voeg in de loop van de tijd meer gegevens aan de steekproef toe
  2. Implementeer de complete oplossing door de volgende dingen te doen:
    1. Een voorbeelddatabase instellen
    2. Een gegevensmodel in tabelvorm maken
    3. Importeer een voorbeelddatabase in het gegevensmodel in tabelvorm
    4. Het gegevensmodel in tabelvorm implementeren om een ​​Analysis Services-database te maken
    5. Automatiseer de verwerking van de Analysis Services-database met SQL Agent
  3. Maak verbinding met de Analysis Services-database via Excel om de gegevens te bekijken nadat de Analysis Services-database automatisch is bijgewerkt met behulp van de SQL-taak

  1. Wanneer zijn de prestaties van Distinct en Group By anders?

  2. Een string invoegen die een &bevat

  3. Hoe om te gaan met booleaanse waarden in SQLite met JavaScript-proxy's

  4. Een nieuwe waarde toevoegen aan een bestaand ENUM-type