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.

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 en tant que gestionnaire de base de données ou en tant que rôle supérieur.
  2. Accédez à Analyser les données : sur la page d'accueil, accédez à l'application, puis sélectionnez le menu Actions Image de l'icône de menu Actions sur la page Applications, en regard du nom de l'application.. Sélectionnez Bases de données > Database Name > 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.

    Remarques :

    Lorsque vous utilisez Essbase sur la base de données Autonomous AI, n'incluez pas le caractère de pourcentage (%) dans les noms de rapport. Le caractère pourcentage (%) n'est pas pris en charge dans les URL. Si un nom de rapport contient %, une erreur peut se produire lorsque vous passez d'un état à l'autre dans Rapports de la vue Analyser les données.
  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
    

    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 MDX Essbase 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 avec le 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 dans cette section illustrent des types d'analyse particuliers que vous pouvez effectuer à l'aide de rapports MDX. Enregistrez les rapports MDX dans la vue Analyser de l'interface Web Essbase, dans l'onglet Rapports.

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.

Etat ADU

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 Essbase, MDX vous permet également de copier et d'actualiser 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'exportation MDX, voir Spécification d'insertion MDX et Spécification d'exportation 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 d'accueil, ouvrez l'application et la base de données (cube).

  2. Cliquez sur Scripts, puis sur Scripts MDX.

  3. Cliquez sur Créer, entrez le nom du script et 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écuter 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 à la section Utilisation des feuilles de travail 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 ou, si vous utilisez Smart View, utilisez l'option Calculer dans le ruban Essbase.

Instructions pour les scripts MDX

Utilisez des scripts MDX pour effectuer des insertions ou des exports de données. Pour l'analyse de grille dans l'interface Web Essbase, utilisez des rapports MDX au lieu de scripts MDX. Les scripts MDX peuvent éventuellement inclure des variables de substitution d'exécution et vous pouvez les exécuter à partir de Smart View.

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

Pour définir une variable d'exécution de substitution qui calcule uniquement la tranche de données visible dans Smart View, définissez la valeur de la variable d'exécution de substitution sur PDV et définissez le type de données sur le 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 d'insertion et d'exportation MDX que vous pouvez exécuter sur l'exemple de cube Basic, soit à partir des travaux de l'interface Web Essbase, soit à partir de l'opération Calculer Smart View.

Insertion MDX

Vous pouvez enregistrer ce script .mdx et l'exécuter à partir de Jobs ou à partir de la fenêtre 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 à partir de la fenêtre 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 des 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 fenêtre 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 des 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