Published on

December 2, 2021

Traitement de nouvelles données dans une partition de SQL Server Analysis Services

Problème : J’ai besoin de traiter de nouvelles données dans ma partition de SQL Server Analysis Services. Je sais que je peux traiter toutes les données, mais cela demande un peu plus de temps et de ressources que ce que je voudrais. Existe-t-il un moyen de ne traiter que les nouvelles données pour une partition dans SQL Server Analysis Services ?

Solution : Oui, il existe un moyen de ne traiter que les nouvelles données pour une partition dans SQL Server Analysis Services. Cela se fait dans SQL Server Analysis Services avec l’option ProcessAdd pour les partitions. Voyons comment cela fonctionne.

Pour commencer : Supposons que nous ayons déjà chargé 5 millions de lignes de données et que nous devions ajouter des données à la même partition. Avec l’option Process Full dans SSAS, toutes les données sont effacées et toutes les données sont chargées à nouveau. L’option ProcessAdd ne charge que les nouvelles données. C’est plus efficace et prend moins de temps. Vous pouvez ajouter des données plusieurs fois comme le montre cette image :

Image de Process Add

Comme vous pouvez le voir sur l’image, vous pouvez effectuer un Process Full puis ajouter les nouvelles données. De temps en temps, vous devrez peut-être utiliser le Process Full dans des situations où il y a eu des erreurs ou où certaines données sont obsolètes.

Exigences :

  • Le projet multidimensionnel Adventure Works.
  • SQL Server 2005 ou ultérieur (dans cet exemple, j’utilise SQL Server 2012).

Étapes :

  1. Dans cet exemple, nous allons ajouter des données à partir d’une table nommée AddPartitionFactInternetSalesReason à notre cube.
  2. Pour ce faire, nous allons d’abord créer la table :
CREATE TABLE [dbo].[AddPartitionFactInternetSalesReason](
 [SalesOrderNumber] [nvarchar](20) NOT NULL,
 [SalesOrderLineNumber] [tinyint] NOT NULL,
 [SalesReasonKey] [int] NOT NULL)
  1. Maintenant, nous allons ajouter des données dans cette nouvelle table :
insert into [dbo].[AddPartitionFactInternetSalesReason]
 values
 (
 'SO43697',1,1
 )
  1. Maintenant, ajoutons ces informations dans le cube SSAS.
  2. Ouvrez SQL Server Data Tools ou Business Intelligence Development Studio.
  3. Ouvrez le cube Adventure Works SSAS.
  4. Accédez à l’Explorateur de solutions et double-cliquez sur le cube Adventure Works, puis accédez à l’onglet Parcourir.
  5. Dans l’onglet Parcourir, accédez au cube Adventure Works, aux mesures, à la raison de vente, au nombre de raisons de vente, et faites glisser-déposer dans le volet de rapport. Vous remarquerez qu’il y a 64515 raisons de vente.
  6. Accédez à l’onglet partitions, sélectionnez la partition de raison de vente Internet et cliquez sur l’icône de traitement.
  7. Nous allons effectuer un Process Add sur la partition de raison de vente Internet.
  8. Dans la fenêtre Process Cube, sélectionnez “Process Add” dans la liste déroulante des options de traitement.
  9. Dans le champ des paramètres, cliquez sur le lien Configurer.
  10. Dans la mise à jour incrémentielle pour le cube Adventure Works, sélectionnez le groupe de mesures “Sales Reasons”.
  11. Par défaut, la seule partition de ce groupe de mesures est Internet_Sales_Reasons.
  12. Vous pouvez ajouter des données à partir d’une vue de source de données, mais dans cet exemple, nous allons interroger la table créée à l’étape 2.
  13. Nous allons ajouter les données de cette table à notre cube.
  14. Écrivez la requête comme indiqué dans l’image ci-dessous et cliquez sur OK.
  15. Démarrez le ProcessAdd en cliquant sur le bouton “Exécuter…”.
  16. Dans l’écran de progression du processus, vous pouvez constater que 1 ligne a été lue.
  17. Comme vous pouvez le voir à l’étape 3 ci-dessus, cette table ne contient qu’une seule ligne.
  18. Pour vérifier, accédez à l’onglet Parcourir dans le cube, cliquez sur l’icône de reconnexion et répétez l’étape 8.
  19. Remarquez que le nombre de raisons de vente est passé de 64515 à l’étape 8 à 64516 (1 nouvelle ligne ajoutée).

Dans cette astuce, vous avez ajouté de nouvelles données à une partition en utilisant l’option ProcessAdd. Vous voudrez peut-être utiliser XMLA pour ProcessAdd dans certaines circonstances. Le code XMLA peut être téléchargé ici. Il n’y a rien de spécial avec le code. Vous devez spécifier l’ID de la base de données, l’ID du cube, l’ID du groupe de mesures et dans la définition de la requête, vous spécifiez la requête à utiliser.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.