Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Automatisation du traitement du modèle tabulaire des bases de données Analysis Services (SSAS) dans SQL Server

Cet article traite de l'automatisation du traitement de la base de données Analysis Services dans SQL Server. L'automatisation est l'une des tâches les plus importantes gérées par les administrateurs de base de données ou les ingénieurs DevOps.

De plus, nous aurons un aperçu des bases de données Analysis Services et de leurs différences avec les bases de données SQL Server.

Cet article souligne également l'importance de l'automatisation des tâches dans SQL Server pour minimiser les erreurs et maximiser la productivité, en particulier lors de l'utilisation de scénarios complexes tels que les solutions d'informatique décisionnelle d'entrepôt de données.

À propos des bases de données Analysis Services

Examinons les bases de données Analysis Services afin de comprendre l'importance d'automatiser son traitement dans le contexte des solutions d'informatique décisionnelle d'entrepôt de données et des scénarios complexes d'analyse de données.

Qu'est-ce qu'une base de données Analysis Services ?

Une base de données Analysis Services est une base de données hautement optimisée pour l'analyse et la création de rapports, qui est souvent préparée et mise à jour dans le cadre de solutions d'informatique décisionnelle d'entrepôt de données.

En quoi les bases de données Analysis Services sont différentes des bases de données SQL Server

Une base de données Analysis Services est différente d'une base de données SQL Server car elle fonctionne sur un langage différent (DAX/MDX) et offre de nombreuses fonctions intégrées d'informatique décisionnelle pour l'analyse et la création de rapports, ainsi que des fonctionnalités telles que l'exploration de données et l'intelligence temporelle.

Combien de types de bases de données Analysis Services existe-t-il

Les deux principaux types de bases de données Analysis Services sont les suivants :

  1. Mode multidimensionnel (Cube)
  2. Mode tabulaire (modèle de données)

Ainsi, une base de données Analysis Services est soit un cube déployé, soit un modèle de données déployé. Mais dans les deux formes, il répond à des demandes allant de scénarios d'analyse de données simples à complexes et permet de créer des rapports par-dessus.

Qu'est-ce que SQL Server Analysis Services (SSAS)

SQL Server Analysis Services, également connu sous le nom de SSAS, est une instance de serveur Microsoft qui permet d'héberger des bases de données Analysis Services.

Qu'est-ce qu'une base de données Analysis Services dans un entrepôt de données

Une base de données de service d'analyse dans le contexte d'un entrepôt de données est souvent un produit final qui peut être exposé aux utilisateurs professionnels pour des rapports en libre-service et une analyse en temps réel.

En termes simples, une fois que les données subissant différentes transformations et étapes d'un entrepôt de données atteignent la base de données Analysis Services, elles sont considérées comme prêtes pour l'analyse et la création de rapports.

Que signifie le traitement d'une base de données Analysis Services ?

Traiter une base de données Analysis Services signifie vérifier les sources de nouvelles données et les charger dans la base de données. Les bases de données Analysis Services doivent être mises à jour au fil du temps, car la ou les sources dont elles extraient les données obtiennent fréquemment de nouvelles données.

Pourquoi devrions-nous automatiser le traitement des bases de données Analysis Services ?

La prochaine question importante que l'on peut se poser est la suivante :pourquoi avons-nous besoin d'automatiser le traitement d'une base de données Analysis Services si nous pouvons facilement l'exécuter manuellement ?

La réponse simple est que nous devons nous assurer que la base de données Analysis Services est à jour sans intervention manuelle, économisant ainsi du temps et des efforts, en particulier dans le contexte d'une solution d'informatique décisionnelle d'entrepôt de données lorsque le projet est déployé sur un serveur en direct.

Automatisation du traitement de la base de données Analysis Services

Passons maintenant aux principales étapes de l'automatisation du traitement d'une base de données Azure Analysis Services.

Pré-requis

Cet article suppose que les lecteurs connaissent les concepts de base des solutions d'informatique décisionnelle d'entrepôt de données, y compris le déploiement de modèles de données sur un serveur d'analyse SQL ou Azure Analysis Services.

La création et la gestion de bases de données SQL et de projets de service d'analyse étant généralement le travail d'un développeur, nous allons nous concentrer sur le traitement et l'automatisation du traitement des bases de données Analysis Services ou des bases de données SSAS du point de vue d'un DBA ou d'un ingénieur DevOps.

Cet article suppose ce qui suit :

  1. Un exemple de base de données appelé SQLDevBlogV5 la source a déjà été configurée
  2. Un modèle de données tabulaire utilisant un projet Analysis Services a déjà été créé
  3. Une base de données Analysis Services appelée SQLDevBlogTabularProject basé sur le modèle tabulaire a déjà été déployé

Veuillez noter que la base de données source et une base de données Analysis Services mentionnées ci-dessus sont uniquement à des fins de référence, vous pouvez donc modifier ces noms selon vos besoins.

Vous pouvez maintenant passer directement au titre suivant. Toutefois, si vous souhaitez couvrir à la fois le point de vue du développeur et celui du DBA, vous pouvez effectuer les étapes mentionnées ci-dessus à l'aide de l'exemple de base de données suivant :

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

Ensuite, créez un nouveau Services d'analyse projet tabulaire, importez la source de données dans le modèle et déployez le modèle sur le serveur SSAS :

Niveau de compatibilité

Dans cet exemple, nous utilisons SQL Server 2014 / SQL Server 2012 SP1 (1103) niveau de compatibilité du modèle de données. Cependant, vous pouvez spécifier un niveau de compatibilité différent selon vos besoins.

Se connecter aux services d'analyse

Ouvrez SSMS (SQL Server Management Studio) et connectez-vous à un serveur d'analyse en saisissant vos identifiants :

Accéder à la base de données Analysis Services (déployée)

Une fois la connexion établie, développez les Bases de données nœud dans l'Explorateur d'objets puis développez le nœud de base de données Analysis Services déployé en cliquant sur le plus icône à côté :

Traiter la base de données Analysis Services

Cliquez avec le bouton droit sur la base de données Analysis Services et cliquez sur Traiter la base de données :

Conservez le mode de traitement par défaut et cliquez sur OK :

La base de données Analysis Services a été traitée avec succès :

Scripter le traitement de la base de données

Ensuite, nous devons obtenir le script utilisé pour traiter la base de données Analysis Services.

L'un des moyens d'automatiser le traitement d'une base de données Analysis Services consiste à créer un script pour la tâche qui effectue le traitement et à l'exécuter en tant que tâche SQL (étape) dans SQL Server.

Cliquez sur Traiter la base de données à nouveau, mais n'appuyez pas sur OK cette fois.

Dans le script menu déroulant en haut à gauche de la fenêtre, cliquez sur Script Action to New Query Window comme indiqué ci-dessous :

Le script de traitement va s'ouvrir dans une nouvelle fenêtre appelée Fenêtre de requête XMLA :

Exécutez le script de traitement de la base de données

Appuyez sur F5 pour exécuter le script XMLA qui commence à traiter la base de données Analysis Services :

Vérification de l'agent SQL Server

Connectez-vous maintenant au moteur de base de données SQL Server et assurez-vous que l'agent SQL Server est en cours d'exécution.

Configurer l'accès à l'agent SQL Server

Une autre chose importante est de s'assurer que le compte qui exécute l'Agent SQL Server a accès à la base de données Analysis Services.

Dans notre cas, le compte NT Service\SQLAgent exécute l'agent SQL Server. Cela signifie que ce compte doit disposer des autorisations nécessaires pour traiter la base de données Analysis Services.

Connectez-vous à l'instance tabulaire Analysis Services et accédez à la base de données Analysis Services souhaitée. Ensuite, créez un nouveau rôle Database Runner en ajoutant NT Service\SQLAgent compte et en lui donnant la base de données de processus autorisation :

Veuillez noter que l'un des moyens standard d'y parvenir consiste à créer un proxy et à mapper les informations d'identification sur ce proxy. Cependant, les détails de ce processus sortent du cadre de cet article.

Copier le script XMLA pour traiter la base de données

Copiez le script XMLA à partir de la fenêtre de requête XMLA de SQL Analysis Services que nous avons utilisée pour traiter la base de données Analysis Services.

Créer une étape de tâche

Revenez à SQL Server Agent et créez une nouvelle étape de tâche en tant que Process Analysis Services Database SQLDevBlogV5.

Créez une nouvelle étape en fournissant les informations suivantes et cliquez sur OK :

N'oubliez pas que vous devez saisir le nom de votre serveur et de votre base de données, puis coller le script que vous avez copié à partir de l'éditeur de requête XMLA.

Démarrer la tâche

Faites un clic droit sur la tâche et cliquez sur Démarrer la tâche à l'étape…

L'étape de tâche va s'exécuter avec succès comme indiqué ci-dessous :

Planifier la tâche pour automatiser le traitement

Ensuite, planifiez la tâche pour automatiser le traitement de votre base de données Analysis Services.

Toutes nos félicitations! Vous avez réussi à automatiser le traitement de la base de données Analysis Services, ce qui a permis à un DBA ou à un ingénieur DevOps d'économiser du temps et des efforts pour traiter la base de données chaque fois que des données doivent être mises à jour à partir de la source.

Choses à faire

Maintenant que vous pouvez automatiser le traitement d'une base de données Analysis Services, essayez les choses suivantes pour améliorer vos compétences :

  1. Planifier l'exécution quotidienne de la tâche de traitement de la base de données Analysis Services mentionnée dans cet article et ajouter plus de données à l'échantillon au fil du temps
  2. Mettez en œuvre la solution complète en procédant comme suit :
    1. Configurer un exemple de base de données
    2. Créer un modèle de données tabulaire
    3. Importer un exemple de base de données dans le modèle de données tabulaire
    4. Déployer le modèle de données tabulaire pour créer une base de données Analysis Services
    5. Automatiser le traitement de la base de données Analysis Services à l'aide de SQL Agent
  3. Se connecter à la base de données Analysis Services via Excel pour afficher les données après la mise à jour automatique de la base de données Analysis Services à l'aide de la tâche SQL