Actualiser et automatiser le traitement d'un cube Analysis Services

@joekakone

Joseph Konka @joekakone

03/03/2026 · 12 min

Maîtrisez les options de traitement (ProcessFull, ProcessDefault, ProcessAdd), les commandes XMLA/TMSL et la planification automatique de jobs avec SQL Server Agent.

Une fois déployé en production, un cube ou un modèle tabulaire Analysis Services est statique : il conserve l'image exacte des données au moment de son chargement initial. À mesure que les systèmes opérationnels (ERP, CRM, sites e-commerce) enregistrent de nouvelles commandes, le modèle analytique doit être traité (processed) pour intégrer les flux frais et recalculer ses agrégations.

Dans ce cours, nous détaillons les différents types de traitement, l'exécution via scripts XMLA / TMSL, et la mise en place d'une planification automatisée nocturne robuste avec SQL Server Agent.


1. Les différents types de traitement (Processing Options)#

Le traitement d'un modèle décisionnel consomme des ressources CPU, mémoire et réseau. Il est donc crucial de choisir la granularité et le mode d'actualisation adaptés à votre volumétrie :

flowchart TD
    A[Demande de Traitement] --> B{Type d'actualisation}
    B -->|Complet| C[ProcessFull\nPurge totale + Rechargement SQL + Recalcul complet]
    B -->|Par défaut| D[ProcessDefault\nDétecte les objets non traités et applique le strict nécessaire]
    B -->|Incrémentiel| E[ProcessAdd\nAjoute les nouvelles partitions sans toucher à l'historique]
    B -->|En 2 temps| F[ProcessData\nCharge les données brutes] --> G[ProcessIndex\nConstruit les index et agrégations]
    B -->|Maintenance| H[ProcessClear\nPurge les données pour libérer la RAM/Disque]
Type de traitement Action réalisée Impact métier & Cas d'usage
ProcessFull (Complet) Purge toutes les structures existantes, extrait l'intégralité des données SQL et reconstruit tous les index et dictionnaires. Obligatoire après modification d'une dimension, d'une colonne ou d'une relation. Opération longue.
ProcessDefault (Par défaut) Analyse l'état du modèle et n'exécute que le traitement minimal nécessaire pour rendre l'objet interrogeable. Idéal pour les déploiements rapides lors des développements.
ProcessData (Données) Charge les lignes brutes de SQL Server dans le cube sans recalculer les index ni les agrégations. Première étape d'un traitement en deux phases pour paralléliser l'ingestion.
ProcessIndex (Index) Reconstruit les index et agrégations sur les partitions dont les données ont déjà été chargées via ProcessData. Seconde étape rapide après un ProcessData.
ProcessAdd (Ajout) Insère les nouvelles lignes dans une partition existante sans relire l'historique. Actualisations incrémentielles fréquentes (ex: toutes les heures).
ProcessClear (Effacement) Supprime l'intégralité des données stockées. Le cube passe à l'état non traité (unprocessed). Utilisé avant un réagencement complet de l'espace disque.

2. Actualiser depuis Visual Studio (Développement)#

Pendant la phase de développement d'un cube :

  1. Ouvrez votre projet dans Visual Studio.
  2. Dans l'Explorateur de solutions, faites un clic droit sur le nom du projet ou de la dimension à actualiser.
  3. Sélectionnez Traiter (Process).
  4. Choisissez l'option souhaitée (ProcessDefault ou ProcessFull), puis cliquez sur Exécuter (Run).

3. Actualiser depuis SQL Server Management Studio (SSMS)#

En environnement de recette ou pour une intervention manuelle d'exploitation :

  1. Lancez SSMS et connectez-vous à votre instance Analysis Services.
  2. Développez le nœud Bases de données.
  3. Faites un clic droit sur votre base (ex: Cube_Tabular ou AdventureWorks_SSAS_Cube) \(\rightarrow\) Traiter (Process).
  4. Dans la fenêtre de dialogue, sélectionnez la base, une table ou une partition spécifique.
  5. Dans la colonne Options de traitement, sélectionnez Traiter entièrement (Process Full) ou Traiter par défaut (Process Default).
  6. Cliquez sur OK pour lancer l'exécution.

4. Automatiser avec des scripts XMLA et TMSL#

Pour intégrer le traitement dans des pipelines automatisés (Airflow, scripts PowerShell ou ordonnanceurs d'entreprise), Analysis Services s'administre via des scripts XMLA (XML for Analysis) ou TMSL (Tabular Model Scripting Language).

Générer le script XMLA depuis SSMS#

Plutôt que d'écrire le script manuellement, SSMS offre un bouton Script en haut de chaque boîte de dialogue de traitement :

  1. Ouvrez un nouvel éditeur de requête XMLA dans SSMS :

  1. Pour un modèle tabulaire moderne, saisissez la commande TMSL JSON suivante :
Commande TMSL d'actualisation complète
{
  "refresh": {
    "type": "full",
    "objects": [
      {
        "database": "Cube_Tabular"
      }
    ]
  }
}

  1. Cliquez sur le bouton Exécuter (F5). La fenêtre de résultats confirme l'opération :

Script XMLA pour cube multidimensionnel
<Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <Type>ProcessFull</Type>
  <Object>
    <DatabaseID>AdventureWorks_SSAS_Cube</DatabaseID>
  </Object>
</Process>

5. Planifier le traitement avec SQL Server Agent#

SQL Server Agent est le service d'arrière-plan de Microsoft SQL Server dédié à l'exécution et à la planification des travaux d'automatisation décisionnels (Jobs).

Étape 1 : Créer un nouveau travail (Job)#

  1. Dans SSMS, connectez-vous au moteur relationnel SQL Server.
  2. Développez l'arborescence jusqu'à Agent SQL Server (assurez-vous que l'icône indique qu'il est démarré avec un rond vert).
  3. Faites un clic droit sur le dossier Travaux (Jobs) \(\rightarrow\) Nouveau travail... (New Job) :

  1. Dans la page Général, nommez votre travail : Actualisation_Cube_Tabular :

Étape 2 : Configurer l'étape de traitement SSAS#

  1. Dans le volet de gauche, sélectionnez la page Étapes (Steps), puis cliquez sur Nouvelle... :

  1. Renseignez les paramètres de l'étape :
  2. Nom de l'étape : Traiter_Cube
  3. Type : sélectionnez Commande SQL Server Analysis Services (SQL Server Analysis Services Command).
  4. Serveur : renseignez votre instance SSAS (ex: localhost).
  5. Commande : collez votre script TMSL JSON ou XMLA.

Étape 3 : Définir la planification récurrente#

  1. Dans le volet de gauche, cliquez sur la page Planifications (Schedules), puis sur Nouvelle... :

  1. Configurez une exécution nocturne quotidienne (par exemple tous les jours à 02:00 du matin, après les traitements ETL de nuit) :

Validez en cliquant sur OK pour enregistrer la planification :

Validez la création complète du travail : le job Actualisation_Cube_Tabular est désormais listé sous le dossier Travaux de l'Agent SQL Server :


6. Tester et résoudre l'erreur classique de droits d'accès#

Pour tester immédiatement le travail planifié sans attendre la nuit :

  1. Faites un clic droit sur le travail Actualisation_Cube_Tabular \(\rightarrow\) Démarrer le travail à l'étape... (Start Job at Step...) :

  1. L'Agent SQL Server exécute l'étape :

L'erreur fréquente de sécurité#

Dans de nombreux cas lors de la première exécution, le travail échoue avec une croix rouge :

[!WARNING] Diagnostic de l'erreur : Le message d'erreur indique : L'utilisateur 'NT SERVICE\SQLSERVERAGENT' n'a pas les autorisations nécessaires pour administrer ou traiter le modèle Analysis Services.

Par défaut, le compte de service Windows utilisé par SQL Server Agent (NT SERVICE\SQLSERVERAGENT) n'est pas administrateur de l'instance SSAS !

La solution : Accorder les droits au compte SQL Server Agent#

  1. Dans SSMS, connectez-vous directement à votre instance Analysis Services.
  2. Faites un clic droit sur le nom de l'instance \(\rightarrow\) Propriétés \(\rightarrow\) Sécurité.
  3. Cliquez sur Ajouter... et saisissez le compte de service : NT SERVICE\SQLSERVERAGENT.
  4. Validez en cliquant sur OK :

Relancez le travail : le job s'exécute désormais avec succès en quelques secondes. Vos utilisateurs disposeront ainsi chaque matin de données parfaitement à jour !


L'actualisation de votre modèle décisionnel est désormais automatisée. Dans la leçon suivante, nous allons explorer la finalité ultime de tout projet OLAP : l'interrogation interactive de notre cube depuis Microsoft Excel.

Commentaires

Inscrivez-vous à une formation complète

Voir le catalogue