Analyse et gestion de données avec MDX

MDX (expressions multidimensionnelles) est un langage performant d'interrogation et de manipulation de données.

Avec MDX, vous pouvez effectuer les opérations suivantes :

  • Requête et rapport au niveau des données et des métadonnées dans les cubes Essbase

  • Insertion de données dans un cube Essbase

  • Export de données à partir d'un cube Essbase

Une requête MDX est une instruction MDX unique, générant un seul ensemble de résultats, qui s'applique à un cube unique.

Un rapport MDX est une requête MDX unique, enregistrée dans le contexte du cube. Vous pouvez accéder aux rapports MDX à partir de Smart View et de l'interface Web Essbase.

Un script MDX est un fichier avec une extension .mdx que vous pouvez télécharger, puis exécuter à partir de Jobs ou dans Smart View. Seules des instructions d'insertion et d'export MDX doivent être utilisées dans les scripts MDX. Pour analyser des données de grille, utilisez plutôt des rapports MDX que des scripts MDX.

Rubriques :

Analyse de données avec des rapports MDX

Vous pouvez stocker et rendre des requêtes dans l'interface Web Essbase à l'aide de rapports MDX. L'autorisation minimale requise pour créer un rapport est Gestionnaire de base de données.

Définir des dispositions dans l'onglet Analyse ad hoc n'est pas toujours la méthode la plus efficace pour créer des rapports sophistiqués. Si vous savez exactement ce que vous voulez interroger, vous pouvez utiliser MDX pour créer une requête et remplir la grille.

Pour créer un rapport MDX, procédez comme suit :
  1. Connectez-vous à l'interface Web Essbase avec le rôle Gestionnaire de base de données ou un rôle supérieur.
  2. Accédez à Analyser les données en procédant comme suit :
    • Dans l'interface Redwood, ouvrez l'application, puis la base de données (cube), et cliquez sur Analyser les données.
    • Dans l'interface Web classique, développez l'application, sélectionnez un cube, cliquez sur le menu Actions à droite du nom du cube et sélectionnez Analyser les données.
  3. Dans la vue Analyser, sélectionnez l'onglet Rapports, puis cliquez sur Créer.
  4. Attribuez un nom au rapport et entrez éventuellement une description.
  5. Dans le champ Requête, entrez une requête MDX en rapport avec le cube en cours. Par exemple :
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    La requête doit contenir des spécifications portant sur les axes de colonne et de ligne. Autrement dit, la syntaxe de requête doit inclure des spécifications pour ON COLUMNS et ON ROWS, même si un ensemble vide ({}) seulement est indiqué pour un axe.

    Le contexte de l'analyse des données étant le cube actif, nous vous recommandons d'omettre la spécification de cube facultative (la clause FROM) des rapports MDX. L'omission de la clause FROM offre davantage de flexibilité : si le cube est copié ou renommé, le rapport fonctionnera avec le nouveau cube.

    Les variables de substitution sont prises en charge dans les rapports MDX, mais pas les variables de substitution d'exécution. Pour utiliser les variables de substitution d'exécution, enregistrez la requête MDX en tant que script et exécutez ce dernier à partir de Smart View à l'aide de l'option Calculer dans le ruban Essbase.

  6. Cliquez sur Valider pour vérifier la syntaxe MDX, puis sur Enregistrer.
  7. Dans le panneau Rapports à gauche, sélectionnez le rapport enregistré pour rendre une grille.

Pour en savoir plus sur MDX, reportez-vous à MDX et à Ecriture de requêtes MDX.

Accès aux rapports MDX

La manière d'utiliser les rapports dépend de votre accès aux cubes.

Les utilisateurs disposant du rôle de niveau application Accès à la base de données ou d'un rôle supérieur peuvent rendre les rapports MDX enregistrés créés par d'autres personnes. Les données visibles pour un utilisateur dans le rapport dépendent du filtre d'accès de cet utilisateur.

Les utilisateurs dotés du rôle Accès à la base de données peuvent non seulement rendre des rapports enregistrés, mais aussi exporter des ensembles de résultats sous différents formats : HTML, CSV, Excel et JSON.

Les utilisateurs dotés du rôle Accès à la base de données peuvent également visualiser la requête MDX qui définit le rapport en cliquant sur le menu Actions en regard du nom du rapport et en sélectionnant Afficher.

Si vous disposez du rôle Gestionnaire de base de données ou d'un rôle supérieur, vous pouvez utiliser les rapports de la même façon que les utilisateurs dotés du rôle Accès à la base de données. De plus, vous pouvez modifier et supprimer des rapports à l'aide du menu Actions.

Si vous êtes un administrateur de service, vous pouvez en outre utiliser le bouton Exécuter en tant que pour emprunter l'identité d'autres utilisateurs et vérifier leur accès aux données. Cela peut se révéler utile pour tester les filtres affectés aux différents utilisateurs.

Exemples de rapports MDX

Les exemples MDX de cette section correspondent à des types d'analyse particuliers, que vous pouvez effectuer à l'aide de rapports MDX et qui sont difficiles à effectuer dans la vue Analyse ad hoc.

Les exemples suivants sont conçus pour fonctionner avec le cube Sample Basic.

Rapport sur des métadonnées

L'exemple suivant renvoie seulement des métadonnées (des noms de membre, mais pas de données) :

SELECT 
  {[Product].Levels(1).Members} 
ON ROWS, 
  {} 
ON COLUMNS

Renvoi de la grille :

La sortie du rapport affiche les membres Product 100, 200, 300, 400 et Diet.

Rapport sur des attributs

L'exemple suivant utilise, pour les colonnes, les membres d'une dimension d'attribut :

SELECT 
 [Product].Children 
ON ROWS, 
 [Ounces].Children 
ON COLUMNS 
WHERE {Sales}

Renvoi de la grille :

La sortie du rapport affiche, dans les lignes, les membres Product 100, 200, 300, 400 et Diet. Des membres d'attribut apparaissent dans les colonnes : Ounces_32, Ounces_20, Ounces_16 et Ounces_12.

Rapport filtré

L'exemple suivant utilise une tranche (clause WHERE) pour limiter la requête à Cola. En outre, la fonction Filter limite les marchés de niveau 0 de la requête à ceux dont le profit est négatif.

SELECT
  { Profit } 
ON COLUMNS,
  Filter( [Market].levels(0).members, Profit < 0) 
ON ROWS
WHERE {Cola}

Renvoi de la grille :

La sortie du rapport affiche, dans les lignes, les membres Market Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri et Iowa. Profit apparaît dans les colonnes. Toutes les valeurs de données sont négatives.

Rapport sur des attributs définis par l'utilisateur (UDA)

L'exemple suivant montre les données Product de membres de dimension Market dont l'attribut défini par l'utilisateur (UDA) est "Major Market". Une tranche (clause WHERE) limite la requête de façon à n'inclure que des données Sales.

SELECT 
  [Product].Children 
ON ROWS, 
  {Intersect(UDA([Market], "Major Market"), [Market].Children)} 
ON COLUMNS 
WHERE {Sales}

Renvoi de la grille :

La sortie du rapport affiche, dans les lignes, les membres Product 100, 200, 300, 400 et Diet. Les marchés principaux East et Central apparaissent dans les colonnes.

Insertion et export de données avec MDX

Outre son utilité en matière d'analyse basée sur une grille, MDX vous permet de copier et de mettre à jour des sous-ensembles de données multidimensionnelles.

La clause d'insertion MDX vous permet de mettre à jour le cube avec des données, via un membre (non physique) calculé que vous définissez à l'aide de MDX.

La clause d'export MDX vous permet d'enregistrer et d'exporter les résultats de requête sous la forme d'ensembles de données que vous pouvez afficher ou importer ultérieurement.

Vous pouvez exécuter les instructions d'insertion et d'export MDX en tant que scripts MDX enregistrés.

Pour en savoir plus sur l'insertion et l'export MDX, reportez-vous à Spécification d'insertion MDX et à Spécification d'export MDX.

Exécution de scripts MDX

Utilisez des scripts MDX lorsque vous devez exécuter des opérations d'insertion ou d'export de données.

Pour analyser des données de grille, utilisez des rapports MDX. Reportez-vous à Analyse de données avec des rapports MDX.

Pour utiliser les scripts MDX, sélectionnez un workflow :

Ecriture, téléchargement et exécution d'un script MDX

Utilisez ce workflow pour écrire des scripts MDX dans un éditeur de texte et les télécharger vers Essbase.

  1. Ecrivez le script MDX dans un éditeur de texte et enregistrez-le avec l'extension .mdx.

  2. Téléchargez le script MDX dans le répertoire d'application ou de cube sous Fichiers dans l'interface Web Essbase.

  3. Exécutez le script MDX à partir de Jobs ou de Smart View, à l'aide de l'option Calculer du ruban Essbase.

Ecriture d'un script MDX dans l'éditeur de scripts et exécution

Utilisez ce workflow pour écrire des scripts MDX dans un éditeur de scripts sur le cube et les exécuter à partir de Jobs.

  1. Sur la page Applications, ouvrez l'application et la base de données (cube).

  2. Cliquez sur Scripts, puis sur Scripts MDX.

  3. Cliquez sur Créer, saisissez le nom du script, puis cliquez sur OK.

  4. Ecrivez le script MDX. Vous pouvez vous aider d'un arbre de membres et d'une liste de fonctions.

  5. Validez et enregistrez le script, puis fermez l'éditeur de scripts.

  6. Exécutez le script MDX à partir de Jobs (reportez-vous à Exécution de MDX). Sinon, avec Smart View, utilisez l'option Calculer dans le ruban Essbase.

  1. Sur la page Applications, développez une application et un cube.

  2. Dans le menu Actions du cube, cliquez sur Inspecter.

  3. Cliquez sur Scripts, puis sur Scripts MDX.

  4. Cliquez sur l'icône + pour ouvrir un éditeur de scripts.

  5. Ecrivez le script MDX. Vous pouvez vous aider d'un arbre de membres et d'une liste de fonctions.

  6. Validez et enregistrez le script, puis fermez l'éditeur de scripts.

  7. Exécutez le script MDX à partir de Jobs (reportez-vous à Exécution de MDX). Sinon, avec Smart View, utilisez l'option Calculer dans le ruban Essbase.

Création d'un script MDX dans le concepteur de cubes et exécution

Utilisez ce workflow pour créer des scripts MDX à l'aide d'un classeur d'application et les exécuter à partir de Jobs.

  1. Dans un classeur d'application, créez une feuille de calcul MDX. Reportez-vous à Utilisation de feuilles de calcul MDX dans le concepteur de cubes.
  2. Ajoutez un nom de fichier dans le champ Nom de fichier.
  3. Dans le champ Exécuter MDX, indiquez s'il faut exécuter le MDX lors de la création du cube. Les entrées valides sont Oui et Non.
  4. Ajoutez le script MDX en dessous de la ligne Script.
  5. Enregistrez le classeur d'application.
  6. Construisez le cube. Reportez-vous à Création d'une application et d'un cube dans le concepteur de cubes.
  7. Exécutez le script MDX à partir de Jobs. Sinon, avec Smart View, utilisez l'option Calculer dans le ruban Essbase.

Instructions pour les scripts MDX

Suivez les instructions ci-dessous lorsque vous utilisez les scripts MDX.

  • Utilisez des scripts MDX pour effectuer des insertions ou des exports de données.

  • Pour analyser des grilles, utilisez plutôt des rapports MDX.

  • Les scripts MDX peuvent éventuellement inclure des variables de substitution d'exécution.

    • Pour pouvoir les utiliser dans Smart View, les scripts MDX avec des variables de substitution d'exécution doivent utiliser la syntaxe XML dans la commande de calcul SET RUNTIMESUBVARS, y compris <RTSV_HINT>.

    • Pour définir une variable de substitution d'exécution qui calcule uniquement la tranche de données visible dans Smart View, définissez la valeur de la variable de substitution d'exécution sur PDV et définissez le type de données sur membre.

    • Lorsque vous exécutez l'interface Web Essbase, les scripts MDX peuvent utiliser des variables de substitution, mais pas des variables de substitution d'exécution. Pour utiliser les variables de substitution d'exécution dans les scripts MDX, vous devez exécuter les scripts à partir de Smart View, à l'aide de l'option Calculer dans le ruban Essbase.

Utilisation de variables de substitution

Exemples de scripts MDX

Vous trouverez ci-dessous des exemples de scripts MDX à exécuter sur le cube Sample Basic, à partir de Jobs ou dans Smart View.

Insertion MDX

Vous pouvez enregistrer ce script .mdx et l'exécuter à partir de Jobs ou dans la boîte de dialogue Calculer dans Smart View.

INSERT "([Measures].[Payroll])" TO "([Measures].[Revised_Payroll])"
INTO [Sample].[Basic]
FROM (
       SELECT 
            {[Measures].[Payroll]} ON COLUMNS,
                {Crossjoin
                  (Crossjoin(Descendants([Year]), 
                   Crossjoin(Descendants([Scenario]),
                  Descendants([Product]))),
                  Descendants([Market]))} ON ROWS
       FROM [Sample].[Basic]
);

L'exemple ci-dessus suppose que vous avez précédemment ajouté une mesure Revised_Payroll à Sample Basic.

Export MDX

Vous pouvez enregistrer ce script .mdx et l'exécuter à partir de Jobs ou dans la boîte de dialogue Calculer dans Smart View.

EXPORT INTO FILE "sample01" OVERWRITE
SELECT 
 {[Mar],[Apr]} 
ON COLUMNS,
 Crossjoin({[New York]},
  Crossjoin({[Actual],[Budget]},
     {[Opening Inventory],[Ending Inventory]})) 
ON ROWS
FROM [Sample].[Basic]
WHERE ([100-10])

Après avoir exécuté le script, le fichier d'export suivant sample01.txt est enregistré dans le répertoire de cube du catalogue de fichiers :

Market,Scenario,Measures,Mar,Apr
New York,Actual,Opening Inventory,2041,2108
New York,Actual,Ending Inventory,2108,2250
New York,Budget,Opening Inventory,1980,2040
New York,Budget,Ending Inventory,2040,2170

Export MDX à l'aide d'une variable de substitution d'exécution

Vous pouvez enregistrer ce script .mdx et l'exécuter à partir de la boîte de dialogue Calculer dans Smart View.

SET RUNTIMESUBVARS
{
 States = "Massachusetts"<RTSV_HINT><svLaunch>
                    <description>US States</description>
                    <type>member</type>
                    <allowMissing>false</allowMissing>
                    <dimension>Market</dimension>
                    <choice>multiple</choice>
                    </svLaunch></RTSV_HINT>;
};
EXPORT INTO FILE "sample002" OVERWRITE
SELECT
 {[Mar],[Apr]}
ON COLUMNS,
 Crossjoin({&States}, Crossjoin({[Actual],[Budget]},
 {[Opening Inventory],[Ending Inventory]}))
ON ROWS
FROM [Sample].[Basic]
WHERE ([100-10])

Après avoir exécuté le script, le fichier d'export suivant sample002.txt est enregistré dans le répertoire de cube du catalogue de fichiers :

Market,Scenario,Measures,Mar,Apr
Massachusetts,Actual,Opening Inventory,-54,-348
Massachusetts,Actual,Ending Inventory,-348,-663
Massachusetts,Budget,Opening Inventory,-160,-520
Massachusetts,Budget,Ending Inventory,-520,-910