Analyser et gérer les données à l'aide de MDX

MDX (Multidimensional Expression Language) est un puissant langage de manipulation et d'interrogation des données.

Avec MDX, vous pouvez :

  • Lancer des interrogations et générer des rapports sur les données et métadonnées des cubes Essbase.

  • Insérer des données dans un cube Essbase.

  • Exporter des données depuis un cube Essbase.

Une interrogation MDX est un énoncé MDX présentant un jeu de résultats qui s'applique à un seul cube.

Un rapport MDX est une interrogation MDX unique, enregistrée dans le contexte du cube. Les rapports MDX sont accessibles depuis Smart View et depuis l'interface Web d'Essbase.

Un script MDX est un fichier doté d'une extension .mdx, qui peut être chargé, puis exécuté depuis Tâches ou dans Smart View. Seuls des énoncés d'insertion et d'exportation MDX doivent être utilisés dans les scripts MDX. Pour analyser les données de grille, utilisez les rapports MDX, plutôt que les scripts.

Rubriques :

Analyser les données à l'aide de rapports MDX

Vous pouvez stocker des interrogations dans l'interface Web d'Essbase et en faire le rendu à l'aide des rapports MDX. L'autorisation minimum 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 manière la plus efficace de créer un rapport complexe. Si vous savez exactement ce que vous souhaitez interroger, vous pouvez utiliser MDX pour créer une interrogation pour alimenter la grille.

Pour créer un rapport MDX :
  1. Connectez-vous à l'interface Web d'Essbase en tant que gestionnaire de base de données ou avec un rôle supérieur.
  2. Naviguez jusqu'à Analyser les données.
    • Dans l'interface Redwood, ouvrez l'application, ouvrez la base de données (cube), puis cliquez sur Analyser les données.
    • Dans l'interface Web classique, développez l'application, sélectionnez un cube, puis 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 et cliquez sur Créer.
  4. Entrez un nom pour le rapport et, facultativement, une description.
  5. Dans le champ Interrogation, entrez une interrogation MDX correspondant au cube courant. Par exemple :
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    La colonne doit comporter des définitions d'axes de rangée et de colonne. En d'autres mots, la syntaxe de l'interrogation doit inclure des spécifications pour ON COLUMNS et ON ROWS, même si seul un jeu vide {} est défini pour un axe.

    Le contexte de l'analyse de données étant le cube actif, nous vous recommandons d'omettre la définition de cube optionnelle (clause FROM) dans les rapports MDX. L'omission de la clause FROM permet une plus grande souplesse, si le cube est copié ou renommé, le rapport sera utilisable dans le nouveau cube.

    Les variables de substitution sont prises en charge dans les rapports MDX, mais les variables de substitution à l'exécution ne le sont pas. Pour utiliser des variables de substitution à l'exécution, vous devez enregistrer l'interrogation MDX en tant que script, puis l'exécuter à partir de Smart View, à l'aide de l'option Calculer du ruban Essbase.

  6. Cliquez sur Valider pour vérifier votre syntaxe MDX, puis cliquez sur Enregistrer.
  7. Dans le panneau Rapports de gauche, sélectionnez le rapport enregistré pour faire le rendu d'une grille.

Pour en savoir plus sur MDX, voir MDX et Écriture d'interrogations MDX.

Accès aux rapports MDX

Votre mode de travail sur les rapports dépend de vos droits d'accès au cube.

Les utilisateurs disposant, au minimum, du rôle de niveau application Accès à la base de données peuvent faire le rendu de rapports MDX enregistrés créés par d'autres. Les données affichées pour un utilisateur dans un rapport dépendent de son accès de filtre.

Outre le rendu des rapports enregistrés, les utilisateurs dotés d'un accès à la base de données peuvent exporter des jeux de résultats dans plusieurs formats : HTML, CSV, Excel et JSON.

Ils peuvent également consulter l'interrogation MDX qui définit le rapport en cliquant sur le menu Actions à côté du nom du rapport et en sélectionnant Vue.

Si vous disposez au moins du rôle Gestionnaire de base de données, vous pouvez utiliser des rapports de la même manière que des utilisateurs dotés de l'accès à la base de données. De plus, vous pouvez modifier et supprimer des rapports à l'aide du menu Actions.

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

Exemples de scripts MDX

Les exemples MDX de cette section indiquent les types particuliers d'analyse que vous pouvez effectuer à l'aide des rapports MDX, mais dont la réalisation n'est pas aisée dans la vue Analyse ad hoc.

Les exemples ci-après sont conçus pour l'exemple de cube de base.

Rapport de métadonnées

L'exemple suivant ne renvoie que des métadonnées (noms de membres, mais aucune donnée) :

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

grille produite :

Le rapport obtenu présente les membres Product 100, 200, 300, 400 et Diet.

Rapport d'attributs

L'exemple suivant utilise, dans des colonnes, des membres d'une dimension d'attribut :

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

grille produite :

Le rapport obtenu présente, dans des rangées, les membres Product 100, 200, 300, 400 et Diet. Dans les colonnes, les membres d'attribut sont présentés : Ounces_32, Ounces_20, Ounces_16, et Ounces_12

Rapport filtré

L'exemple suivant utilise une tranche (clause WHERE) pour limiter l'interrogation à Cola. De plus, la fonction de filtre limite les marchés de niveau 0 dans l'interrogation à ceux dont le profit est négatif.

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

grille produite :

Le rapport obtenu présente, dans des rangées, les membres Market Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri et Iowa. Le profit est présenté dans les colonnes. Toutes les valeurs de données sont négatives.

Rapport d'ADU

L'exemple suivant présente les données Product pour les membres de dimension Market dotés d'un attribut défini par l'utilisateur (ADU) "Major Market". Une tranche (clause WHERE) limite l'interrogation aux données Sales.

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

grille produite :

Le rapport obtenu présente, dans des rangées, les membres Product 100, 200, 300, 400 et Diet. Dans les colonnes, les marchés principaux East et Central sont présentés.

Insérer et exporter des données à l'aide de MDX

En plus d'être utile pour l'analyse par grille, MDX vous permet de copier et de mettre à jour des sous-jeux de données multidimensionnelles.

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

La clause d'exportation MDX vous permet d'enregistrer et d'exporter des résultats d'interrogation en tant que sous-jeux de données que vous pouvez consulter ou importer ultérieurement.

Les énoncés d'insertion et d'exportation MDX peuvent être exécutés 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écuter des scripts MDX

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

Pour analyser les données de grille, utilisez les rapports MDX. Voir Analyser les données à l'aide de rapports MDX.

Pour utiliser des scripts MDX, sélectionnez un flux de travail :

Écrire, charger et exécuter un script MDX

Utilisez ce flux de travail pour écrire des scripts MDX dans un éditeur de texte et les charger dans Essbase.

  1. Écrivez le script MDX dans un éditeur de texte et enregistrez-le avec une extension .mdx.

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

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

Écrire un script MDX dans l'éditeur de script et l'exécuter

Utilisez ce flux de travail pour écrire des scripts MDX dans un éditeur de script sur le cube, et les exécuter à partir de travaux.

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

  2. Cliquez sur Scripts, puis sur Scripts MDX.

  3. Cliquez sur Créer, entrez un nom pour le script et cliquez sur OK.

  4. Écrivez le script MDX. Vous pouvez utiliser un arbre de membres et une liste de fonctions pour vous aider.

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

  6. Exécutez le script MDX à partir de Travaux (voir Exécuter MDX), ou si vous utilisez Smart View, à l'aide de l'option Calculer du ruban Essbase.

  1. Dans 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 + pour ouvrir un éditeur de script.

  5. Écrivez le script MDX. Vous pouvez utiliser un arbre de membres et une liste de fonctions pour vous aider.

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

  7. Exécutez le script MDX à partir de Travaux (voir Exécuter MDX), ou si vous utilisez Smart View, à l'aide de l'option Calculer du ruban Essbase.

Créer un script MDX dans le concepteur de cube et l'exécuter

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

  1. Dans un classeur d'application, créez une feuille de calcul MDX. Voir Utiliser des feuilles de calcul MDX dans le concepteur de cube.
  2. Ajoutez un nom de fichier dans le champ Nom de fichier.
  3. Indiquez, dans le champ Exécuter MDX, s'il faut exécuter le script MDX au moment de la création du cube. Les entrées valides sont Oui et Non.
  4. Ajoutez le script MDX sous la ligne Script.
  5. Enregistrez le classeur d'application.
  6. Créez le cube. Voir Créer une application et un cube dans le concepteur de cube.
  7. Exécutez le script MDX à partir de Travaux, ou si vous utilisez Smart View, à l'aide de l'option Calculer du ruban Essbase.

Instructions pour les scripts MDX

Lors de l'utilisation des scripts MDX, respectez les consignes suivantes.

  • Utilisez les scripts MDX pour exécuter des opérations d'insertion ou d'exportation de données.

  • Pour les analyses de grille, utilisez les rapports MDX, plutôt que les scripts.

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

    • Pour être exploitables dans Smart View, les scripts MDX avec des variables de substitution à l'exécution doivent utiliser la syntaxe XML dans la commande de calcul SET RUNTIMESUBVARS, notamment <RTSV_HINT>.

    • Pour définir une variable de substitution à l'exécution afin qu'elle calcule uniquement la tranche visible des données dans Smart View, réglez la valeur de la variable à PDV et le type des données à membre.

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

Utiliser des variables de substitution

Exemples de scripts MDX

Voici des exemples de scripts MDX que vous pouvez exécuter sur le cube de base, à partir de Travaux ou dans Smart View.

Insertion MDX

Vous pouvez enregistrer ce script .mdx et l'exécuter à partir de Travaux ou de 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 déjà ajouté une mesure Revised_Payroll à l'exemple de base [Sample].[Basic].

Exportation MDX

Vous pouvez enregistrer ce script .mdx et l'exécuter à partir de Travaux ou de 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])

Une fois le script exécuté, le fichier d'exportation suivant, sample01.txt, est enregistré dans le répertoire du 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

Exportation MDX à l'aide d'une variable de substitution à l'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])

Une fois le script exécuté, le fichier d'exportation suivant, sample002.txt, est enregistré dans le répertoire du 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