Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Automatizzazione dell'elaborazione del modello tabulare dei database di Analysis Services (SSAS) in SQL Server

Questo articolo parla dell'automazione dell'elaborazione del database di Analysis Services in SQL Server. L'automazione è una delle attività più importanti gestite dagli amministratori di database o dagli ingegneri DevOps.

Inoltre, avremo una panoramica dei database di Analysis Services e di come differiscono dai database di SQL Server.

Questo articolo sottolinea inoltre l'importanza di automatizzare le attività in SQL Server per ridurre al minimo gli errori e massimizzare la produttività, in particolare quando si lavora con scenari complessi come le soluzioni di business intelligence di data warehouse.

Informazioni sui database di Analysis Services

Diamo un'occhiata ai database di Analysis Services per comprendere l'importanza di automatizzarne l'elaborazione nel contesto di soluzioni di business intelligence di data warehouse e scenari complessi di analisi dei dati.

Che cos'è un database di Analysis Services?

Un database di Analysis Services è un database altamente ottimizzato per l'analisi e il reporting, spesso preparato e aggiornato come parte delle soluzioni di business intelligence del data warehouse.

In che modo i database di Analysis Services sono diversi dai database di SQL Server

Un database di Analysis Services è diverso da un database di SQL Server perché funziona su un linguaggio diverso (DAX/MDX) e offre molte funzioni di business intelligence integrate per l'analisi e la creazione di report insieme a funzionalità come data mining e time intelligence.

Quanti tipi di database di Analysis Services esistono

I due tipi principali di database di Analysis Services sono i seguenti:

  1. Modalità multidimensionale (Cubo)
  2. Modalità tabellare (Modello dati)

Quindi un database di Analysis Services è un cubo distribuito o un modello di dati distribuito. Ma in entrambe le forme soddisfa richieste che vanno da scenari di analisi dei dati semplici a complessi e consente di creare report su di essi.

Che cos'è SQL Server Analysis Services (SSAS)

SQL Server Analysis Services noto anche come SSAS è un'istanza del server Microsoft che consente l'hosting di database di Analysis Services.

Che cos'è un database di Analysis Services in un data warehouse

Un database del servizio di analisi nel contesto del data warehouse è spesso un prodotto finale che può essere esposto agli utenti aziendali per il reporting self-service e l'analisi in tempo reale.

In parole semplici, una volta che i dati sottoposti a diverse trasformazioni e fasi di un data warehouse raggiungono il database di Analysis Services, vengono considerati pronti per l'analisi e il reporting.

Che cosa significa Elaborazione di un database di Analysis Services?

L'elaborazione di un database di Analysis Services significa controllare le origini per i nuovi dati caricarlo nel database. I database di Analysis Services devono essere aggiornati nel tempo poiché le origini da cui estraggono i dati ottengono frequentemente nuovi dati.

Perché dovremmo automatizzare l'elaborazione dei database di Analysis Services

La prossima domanda importante che ci si può porre è questa:perché abbiamo bisogno di automatizzare l'elaborazione di un database di Analysis Services se possiamo eseguirlo facilmente manualmente?

La semplice risposta è che dobbiamo garantire che il database di Analysis Services sia aggiornato senza intervento manuale, risparmiando così tempo e fatica, in particolare nel contesto di una soluzione di business intelligence di data warehouse quando il progetto viene distribuito su un server live.

Automatizzazione dell'elaborazione del database di Analysis Services

Esaminiamo ora i passaggi principali dell'automazione dell'elaborazione di un database di Azure Analysis Services.

Prerequisiti

Questo articolo presuppone che i lettori abbiano familiarità con i concetti di base delle soluzioni di business intelligence di data warehouse, inclusa la distribuzione di modelli di dati in un server di analisi SQL o Azure Analysis Services.

Poiché la creazione e la gestione di database SQL e progetti di servizi di analisi è solitamente compito di uno sviluppatore, ci concentreremo sull'elaborazione e sull'automazione dell'elaborazione di database di Analysis Services o database SSAS dal punto di vista di un DBA o di un ingegnere DevOps.

Questo articolo presuppone quanto segue:

  1. Un database di esempio chiamato SQLDevBlogV5 la sorgente è già stata configurata
  2. È già stato creato un modello di dati tabulare che utilizza un progetto Analysis Services
  3. Un database di Analysis Services chiamato SQLDevBlogTabularProject basato sul modello tabulare è già stato distribuito

Tieni presente che il database di origine e un database di Analysis Services sopra menzionati sono solo a scopo di riferimento, quindi puoi modificare questi nomi in base alle tue esigenze.

Ora puoi saltare direttamente all'intestazione successiva. Tuttavia, se desideri coprire sia la prospettiva dello sviluppatore che quella del DBA, puoi eseguire i passaggi sopra menzionati utilizzando il seguente database di esempio:

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

Quindi, crea un nuovo Servizi di analisi progetto tabulare, importare l'origine dati nel modello e distribuire il modello al server SSAS:

Livello di compatibilità

In questo esempio, stiamo usando SQL Server 2014/SQL Server 2012 SP1 (1103) livello di compatibilità per il modello di dati. Tuttavia, puoi specificare un livello di compatibilità diverso in base alle tue esigenze.

Connetti ad Analysis Services

Apri SSMS (SQL Server Management Studio) e connettiti a un server di analisi inserendo le tue credenziali:

Vai al database di Analysis Services (distribuito)

Una volta stabilita la connessione, espandi i Database nodo in Esplora oggetti quindi espandere il nodo del database di Analysis Services distribuito facendo clic su più icona accanto ad essa:

Elabora il database di Analysis Services

Fare clic con il pulsante destro del database di Analysis Services e fare clic su Elabora database:

Mantieni la modalità di elaborazione predefinita e fai clic su OK :

Il database di Analysis Services è stato elaborato correttamente:

Script dell'elaborazione del database

Successivamente, è necessario ottenere lo script utilizzato per elaborare il database di Analysis Services.

Uno dei modi per automatizzare l'elaborazione di un database di Analysis Services consiste nello script dell'attività che esegue l'elaborazione ed eseguirla come un processo SQL (passaggio) in SQL Server.

Fai clic su Elabora database di nuovo, ma non premere OK questa volta.

Nello Script menu a discesa nella parte in alto a sinistra della finestra, fai clic su Azione script per la nuova finestra della query come mostrato di seguito:

Lo script di elaborazione verrà aperto in una nuova finestra denominata Finestra di query XMLA :

Esegui lo script Elabora database

Premere F5 per eseguire lo script XMLA che avvia l'elaborazione del database di Analysis Services:

Verifica dell'agente SQL Server

Ora connettiti al motore di database di SQL Server e assicurati che l'agente di SQL Server sia in esecuzione.

Configurare SQL Server Agent Access

Un'altra cosa importante è assicurarsi che l'account che esegue SQL Server Agent abbia accesso al database di Analysis Services.

Nel nostro caso, l'account NT Service\SQLAgent esegue l'agente SQL Server:significa che questo account deve disporre delle autorizzazioni per elaborare il database di Analysis Services.

Connettersi all'istanza tabulare di Analysis Services e passare al database di Analysis Services desiderato. Quindi, crea un nuovo ruolo Database Runner aggiungendo NT Service\SQLAgent account e assegnandogli il Database di elaborazione permesso:

Tieni presente che uno dei metodi standard per ottenere ciò è creare un proxy e mappare le credenziali su quel proxy. Tuttavia, i dettagli di questo processo esulano dallo scopo di questo articolo.

Copia script XMLA per elaborare il database

Copia lo script XMLA dalla finestra della query XMLA di SQL Analysis Services utilizzata per elaborare il database di Analysis Services.

Crea una fase di lavoro

Torna a SQL Server Agent e crea una nuova fase del processo come Database di Process Analysis Services SQLDevBlogV5.

Crea un nuovo passaggio fornendo le seguenti informazioni e fai clic su OK :

Ricorda che devi digitare il nome del tuo server e database e quindi incollare lo script che hai copiato dall'editor di query XMLA.

Inizia il lavoro

Fare clic con il pulsante destro del lavoro e fare clic su Avvia lavoro al passaggio...

Il passaggio del lavoro verrà eseguito correttamente come mostrato di seguito:

Programma il lavoro per automatizzare l'elaborazione

Quindi, pianifica il processo per automatizzare l'elaborazione del database di Analysis Services.

Congratulazioni! Hai automatizzato con successo l'elaborazione del database di Analysis Services, risparmiando il tempo e lo sforzo spesi da un DBA o da un ingegnere DevOps per elaborare il database ogni volta che i dati devono essere aggiornati dall'origine.

Cose da fare

Ora che puoi automatizzare l'elaborazione di un database di Analysis Services, prova le seguenti cose per migliorare ulteriormente le tue competenze:

  1. Pianificare il processo di elaborazione del database di Analysis Services menzionato in questo articolo in modo che venga eseguito quotidianamente e aggiungere più dati all'esempio nel tempo
  2. Implementare la soluzione completa effettuando le seguenti operazioni:
    1. Imposta un database di esempio
    2. Crea un modello di dati tabulari
    3. Importa un database di esempio nel modello di dati tabulari
    4. Distribuire il modello di dati tabulari per creare un database di Analysis Services
    5. Automatizzare l'elaborazione del database di Analysis Services utilizzando SQL Agent
  3. Connettiti al database di Analysis Services tramite Excel per visualizzare i dati dopo che il database di Analysis Services è stato aggiornato automaticamente utilizzando il processo SQL