sql >> Databasteknik >  >> RDS >> Sqlserver

Automatisera tabellmodellbearbetningen av Analysis Services-databaser (SSAS) i SQL Server

Den här artikeln talar om att automatisera bearbetningen av Analysis Services-databasen i SQL Server. Automatisering är en av de viktigaste uppgifterna som hanteras av databasadministratörer eller DevOps-ingenjörer.

Dessutom får vi en översikt över Analysis Services-databaser och hur de skiljer sig från SQL Server-databaser.

Den här artikeln belyser också vikten av att automatisera uppgifter i SQL Server för att minimera felen och maximera produktiviteten, särskilt när du arbetar med komplexa scenarier som affärsinformationslösningar för datalager.

Om Analysis Services-databaser

Låt oss ta en titt på Analysis Services-databaser så att vi kan förstå vikten av att automatisera dess bearbetning i samband med affärsinformationslösningar för datalager och komplexa scenarier för dataanalys.

Vad är en analystjänstdatabas?

En Analysis Services-databas är en mycket optimerad databas för analys och rapportering som ofta förbereds och uppdateras som en del av affärsinformationslösningar för datalager.

Hur Analysis Services-databaser skiljer sig från SQL Server-databaser

En Analysis Services-databas skiljer sig från en SQL Server-databas eftersom den fungerar på ett annat språk (DAX/MDX) och erbjuder många inbyggda business intelligence-funktioner för analys och rapportering tillsammans med funktioner som datautvinning och tidsintelligens.

Hur många typer av analystjänstdatabaser finns det

De två huvudtyperna av Analysis Services-databaser är följande:

  1. Multidimensionellt läge (kub)
  2. Tabellläge (datamodell)

Så en Analysis Services-databas är antingen en distribuerad kub eller en utplacerad datamodell. Men i båda formerna betjänar den förfrågningar som sträcker sig från enkla till komplexa dataanalysscenarier och gör att rapporter kan byggas ovanpå det.

Vad är SQL Server Analysis Services (SSAS)

SQL Server Analysis Services, även känd som SSAS, är en Microsoft-serverinstans som tillåter värd för Analysis Services-databaser.

Vad är en analystjänstdatabas i ett datalager

En analystjänstdatabas i samband med datalager är ofta en slutprodukt som kan exponeras för företagsanvändare för självbetjäningsrapportering och realtidsanalys.

Med enkla ord, när data som genomgår olika transformationer och stadier i ett datalager når Analysis Services-databasen anses den vara redo för analys och rapportering.

Vad betyder bearbetning av en analystjänstdatabas?

Att bearbeta en Analysis Services-databas innebär att kontrollera källorna för ny data, ladda den till databasen. Analysis Services-databaser måste uppdateras med tiden eftersom källorna de hämtar data från ofta får ny data.

Varför ska vi automatisera bearbetningen av analystjänstdatabaser

Nästa viktiga fråga man kan ställa är denna:varför behöver vi automatisera behandlingen av en Analysis Services-databas om vi enkelt kan köra den manuellt?

Det enkla svaret är att vi måste se till att Analysis Services-databasen är uppdaterad utan manuella ingrepp, vilket sparar både tid och ansträngning – särskilt i samband med en affärsinformationslösning för datalager när projektet distribueras till en liveserver.

Automatisk bearbetning av analystjänsters databas

Låt oss nu gå igenom huvudstegen för att automatisera behandlingen av en Azure Analysis Services-databas.

Förutsättningar

Den här artikeln förutsätter att läsarna är bekanta med de grundläggande koncepten för affärsinformationslösningar för datalager, inklusive distribution av datamodeller till en SQL Analysis-server eller Azure Analysis Services.

Eftersom att skapa och hantera SQL-databaser och analystjänstprojekt vanligtvis är ett utvecklares jobb, kommer vi att fokusera på bearbetning och automatisering av bearbetningen av Analysis Services-databaser eller SSAS-databaser utifrån en DBA- eller DevOps-ingenjörs perspektiv.

Den här artikeln förutsätter följande:

  1. En exempeldatabas som heter SQLDevBlogV5 källan har redan ställts in
  2. En tabellformad datamodell som använder ett Analysis Services-projekt har redan skapats
  3. En Analysis Services-databas som heter SQLDevBlogTabularProject baserad på tabellmodellen har redan distribuerats

Observera att källdatabasen och en Analysis Services-databas som nämns ovan endast är för referensändamål, så du kan ändra dessa namn enligt dina krav.

Du kan nu hoppa direkt till nästa rubrik. Men om du vill täcka både utvecklar- och DBA-perspektivet kan du utföra de ovan nämnda stegen med hjälp av följande exempeldatabas:

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

Skapa sedan en ny Analystjänst tabellprojekt, importera datakällan till modellen och distribuera modellen till SSAS-servern:

Kompatibilitetsnivå

I det här exemplet använder vi SQL Server 2014 / SQL Server 2012 SP1 (1103) kompatibilitetsnivå för datamodellen. Du kan dock ange en annan kompatibilitetsnivå enligt dina krav.

Anslut till analystjänster

Öppna SSMS (SQL Server Management Studio) och anslut till en analysserver genom att ange dina referenser:

Gå till Analysis Services Database (distribuerat)

När anslutningen är upprättad expanderar du databaserna nod i Objektutforskaren och expandera sedan den distribuerade Analysis Services-databasnoden genom att klicka på plus ikonen bredvid:

Bearbeta Analysis Services-databasen

Högerklicka på Analysis Services-databasen och klicka på Process Database:

Behåll standardbearbetningsläget och klicka på OK :

Analysis Services-databasen bearbetades framgångsrikt:

Skript databasbearbetningen

Därefter måste vi hämta skriptet som används för att bearbeta Analysis Services-databasen.

Ett av sätten att automatisera bearbetningen av en Analysis Services-databas är att skripta uppgiften som utför bearbetningen och köra den som ett SQL-jobb (steg) i SQL Server.

Klicka på Bearbeta databas igen, men tryck inte på OK den här gången.

I Script rullgardinsmenyn längst upp till vänster i fönstret, klicka på Skriptåtgärd till nytt frågefönster som visas nedan:

Bearbetningsskriptet kommer att öppnas i ett nytt fönster som heter XMLA-frågefönster :

Kör skriptet Process Database

Tryck på F5 för att köra XMLA-skriptet som börjar bearbeta Analysis Services-databasen:

SQL Server Agent Check

Anslut nu till SQL-serverns databasmotor och se till att SQL Server-agenten körs.

Konfigurera SQL Server Agent Access

En annan viktig sak är att se till att kontot som kör SQL Server Agent har tillgång till Analysis Services-databasen.

I vårt fall kör NT Service\SQLAgent-kontot SQL Server-agent – ​​det betyder att detta konto måste ha behörighet för att bearbeta Analysis Services-databasen.

Anslut till Analysis Services-tabellinstansen och gå till önskad Analysis Services-databas. Skapa sedan en ny roll Databas Runner genom att lägga till NT Service\SQLAgent kontot och ge det Processdatabasen tillstånd:

Observera att ett av standardsätten att uppnå detta är att skapa en proxy och mappa referenserna till den proxyn. Men detaljerna i denna process ligger utanför ramen för denna artikel.

Kopiera XMLA-skript för att bearbeta databasen

Kopiera XMLA-skriptet från SQL Analysis Services XMLA Query Window som vi använde för att bearbeta Analysis Services-databasen.

Skapa ett jobbsteg

Gå tillbaka till SQL Server Agent och skapa ett nytt jobbsteg som Process Analysis Services Database SQLDevBlogV5.

Skapa ett nytt steg genom att ange följande information och klicka på OK :

Kom ihåg att du måste skriva in namnet på din server och databas och sedan klistra in skriptet som du kopierade från XMLA Query Editor.

Starta jobbet

Högerklicka på jobbet och klicka på Starta jobb i steg...

Jobbsteget kommer att köras framgångsrikt enligt nedan:

Schemalägg jobbet för att automatisera bearbetningen

Schemalägg sedan jobbet för att automatisera behandlingen av din Analysis Services-databas.

Grattis! Du har framgångsrikt automatiserat Analysis Services-databasbearbetningen, vilket sparar tid och ansträngning som en DBA- eller DevOps-ingenjör lägger ner på att bearbeta databasen varje gång data behöver uppdateras från källan.

Saker att göra

Nu när du kan automatisera behandlingen av en Analysis Services-databas, försök med följande saker för att förbättra dina färdigheter ytterligare:

  1. Schemalägga Analysis Services-databasbearbetningsjobbet som nämns i den här artikeln att köras dagligen och lägga till mer data till provet med tiden
  2. Implementera den kompletta lösningen genom att göra följande:
    1. Konfigurera en exempeldatabas
    2. Skapa en tabelldatamodell
    3. Importera en exempeldatabas till tabelldatamodellen
    4. Distribuera tabelldatamodellen för att skapa en Analysis Services-databas
    5. Automatisera bearbetningen av Analysis Services-databasen med SQL Agent
  3. Anslut till Analysis Services-databasen via Excel för att visa data efter att Analysis Services-databasen har uppdaterats automatiskt med SQL-jobbet

  1. Hur man laddar JAR-fil i Oracle Database?

  2. Skanningar av allokeringsorder

  3. DATEDIFF() Exempel – MySQL

  4. Få räkningar av alla tabeller i ett schema