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 :
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 en savoir plus sur MDX, voir MDX et Écriture d'interrogations 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.
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 :
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 :
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 :
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 :
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.
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 :
Utilisez ce flux de travail pour écrire des scripts MDX dans un éditeur de texte et les charger dans Essbase.
Écrivez le script MDX dans un éditeur de texte et enregistrez-le avec une extension .mdx
.
Chargez le script MDX dans le répertoire de l'application ou du cube sous Fichiers dans l'interface Web d'Essbase.
Exécutez le script MDX à partir de Travaux, ou de Smart View, à l'aide de l'option Calculer du ruban Essbase.
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.
Dans la page Applications, ouvrez l'application, puis ouvrez la base de données (cube).
Cliquez sur Scripts, puis sur Scripts MDX.
Cliquez sur Créer, entrez un nom pour le script et cliquez sur OK.
Écrivez le script MDX. Vous pouvez utiliser un arbre de membres et une liste de fonctions pour vous aider.
Validez et fermez le script, puis fermez l'éditeur de script.
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.
Dans 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 + pour ouvrir un éditeur de script.
Écrivez le script MDX. Vous pouvez utiliser un arbre de membres et une liste de fonctions pour vous aider.
Validez et fermez le script, puis fermez l'éditeur de script.
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.
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.
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.
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