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 :
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 en savoir plus sur MDX, reportez-vous à MDX et à Ecriture de requêtes 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.
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 :
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 :
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 :
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 :
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.
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 :
Utilisez ce workflow pour écrire des scripts MDX dans un éditeur de texte et les télécharger vers Essbase.
Ecrivez le script MDX dans un éditeur de texte et enregistrez-le avec l'extension .mdx
.
Téléchargez le script MDX dans le répertoire d'application ou de cube sous Fichiers dans l'interface Web Essbase.
Exécutez le script MDX à partir de Jobs ou de Smart View, à l'aide de l'option Calculer du ruban Essbase.
Utilisez ce workflow pour écrire des scripts MDX dans un éditeur de scripts sur le cube et les exécuter à partir de Jobs.
Sur la page Applications, ouvrez l'application et la base de données (cube).
Cliquez sur Scripts, puis sur Scripts MDX.
Cliquez sur Créer, saisissez le nom du script, puis cliquez sur OK.
Ecrivez le script MDX. Vous pouvez vous aider d'un arbre de membres et d'une liste de fonctions.
Validez et enregistrez le script, puis fermez l'éditeur de scripts.
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.
Sur la page Applications, développez une application et un cube.
Dans le menu Actions du cube, cliquez sur Inspecter.
Cliquez sur Scripts, puis sur Scripts MDX.
Cliquez sur l'icône + pour ouvrir un éditeur de scripts.
Ecrivez le script MDX. Vous pouvez vous aider d'un arbre de membres et d'une liste de fonctions.
Validez et enregistrez le script, puis fermez l'éditeur de scripts.
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.
Utilisez ce workflow pour créer des scripts MDX à l'aide d'un classeur d'application et les exécuter à partir de Jobs.
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.
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