MDX (expresiones multidimensionales) es un lenguaje de consulta y manipulación de datos de gran eficacia.
Con MDX, puede realizar las siguientes acciones:
Realizar consultas e informes a partir de los datos y metadatos de los cubos de Essbase.
Insertar datos en un cubo de Essbase.
Exportar datos de un cubo de Essbase.
Una consulta MDX es una sentencia MDX única que tiene exactamente un juego de resultados, el cual se aplica a un solo cubo.
Un informe MDX es una consulta MDX única, que se guarda en el contexto del cubo. Se puede acceder a los informes MDX en Smart View y en la interfaz web de Essbase.
Un script MDX es un archivo con una extensión .mdx
que se puede cargar y ejecutar desde Trabajos o en Smart View. En los scripts MDX solo deben usarse las sentencias MDX de inserción y exportación. Para analizar datos de cuadrícula, se recomienda utilizar informes MDX en lugar de scripts MDX.
Temas:
Puede almacenar y representar consultas en la interfaz web deEssbase mediante informes de MDX. El permiso mínimo necesario para crear un informe es Gestor de base de datos.
La definición de diseños mediante el separador Análisis ad hoc no siempre es la forma más eficaz de crear un informe sofisticado. Si sabe con exactitud lo que desea consultar, puede utilizar MDX para crear una consulta y rellenar la cuadrícula.
Para obtener más información sobre MDX, consulte MDX y Escritura de consultas de MDX.
La forma en la que puede trabajar con los informes depende de su tipo de acceso al cubo.
Los usuarios que tienen, al menos, el rol de nivel de aplicación Acceso a base de datos pueden representar los informes de MDX guardados creados por otros usuarios. Los datos que puede ver un usuario en el informe dependen del acceso filtrado de dicho usuario.
Además de representar los informes guardados, los usuarios con Acceso a base de datos pueden exportar los juegos de resultados en varios formatos: HTML, CSV, Excel y JSON.
Los usuarios con Acceso a base de datos también pueden ver la consulta de MDX que define el informe. Para ello, deben hacer clic en el menú Acciones situado junto al nombre del informe y seleccionar Ver.
Si tiene, al menos, el rol Gestor de bases de datos, puede utilizar los informes de la misma forma que pueden hacerlo los usuarios con Acceso a base de datos. Además, puede editar y suprimir los informes mediante el menú Acciones.
Si es un administrador de servicio, también puede utilizar el botón Ejecutar como para suplantar a otros usuarios y comprobar su acceso a los datos. Esto puede resultar útil para probar los filtros asignados a varios usuarios.
Los ejemplos de MDX de esta sección muestran tipos especiales de análisis que puede llevar a cabo, mediante informes de MDX, y que no se realizan fácilmente en la vista Análisis ad hoc.
Los siguientes ejemplos están diseñados para funcionar en el cubo básico de ejemplo.
Informe de metadatos
El siguiente ejemplo solo devuelve metadatos (nombres de miembro, pero no datos):
SELECT {[Product].Levels(1).Members} ON ROWS, {} ON COLUMNS
Y devuelve la cuadrícula:
Informe de atributos
El siguiente ejemplo usa, en las columnas, miembros de una dimensión de atributos:
SELECT [Product].Children ON ROWS, [Ounces].Children ON COLUMNS WHERE {Sales}
Y devuelve la cuadrícula:
Informe filtrado
En el siguiente ejemplo, se usa un divisor (cláusula WHERE) para limitar la consulta a Cola. La función de filtro también limita los marcadores de nivel cero de la consulta a aquellos que tienen ganancias negativas.
SELECT { Profit } ON COLUMNS, Filter( [Market].levels(0).members, Profit < 0) ON ROWS WHERE {Cola}
Y devuelve la cuadrícula:
Informe ADU
En el siguiente ejemplo, se muestran datos de producto de miembros de la dimensión de mercado que tienen un atributo definido por el usuario (ADU) de "Major Market". El divisor (cláusula WHERE) limita la consulta para incluir solo datos de venta.
SELECT [Product].Children ON ROWS, {Intersect(UDA([Market], "Major Market"), [Market].Children)} ON COLUMNS WHERE {Sales}
Y devuelve la cuadrícula:
Además de resultar de utilidad para el análisis basado en cuadrícula, MDX también le permite copiar y actualizar subjuegos de datos multidimensionales.
La cláusula de inserción de MDX le permite actualizar el cubo con datos utilizando un miembro calculado (no físico) que usted defina mediante MDX.
La cláusula de exportación de MDX le permite guardar y exportar los resultados de la consulta como subjuegos de datos que puede ver o importar más tarde.
Las sentencias de inserción y exportación de MDX se pueden ejecutar como scripts MDX guardados.
Para obtener más información sobre la inserción y exportación de MDX, consulte Especificación de inserción de MDX y Especificación de exportación de MDX.
Utilice los scripts MDX cuando necesite ejecutar operaciones de inserción o exportación de datos.
Para el análisis de los datos de la cuadrícula, utilice los informes de MDX. Consulte Análisis de datos con informes MDX.
Para utilizar scripts MDX, seleccione un flujo de trabajo:
Utilice este flujo de trabajo para escribir scripts MDX en un editor de texto y cargarlos en Essbase.
Escriba el script MDX en un editor de texto y guárdelo con una extensión .mdx
.
Cargue el script MDX en el directorio de la aplicación o de cubo en Archivos, en la interfaz web de Essbase.
Ejecute el script MDX desde Trabajos o desde Smart View mediante Calcular en la cinta de Essbase.
Utilice este flujo de trabajo para escribir scripts MDX en un editor de scripts en el cubo y ejecútelos en Trabajos.
En la página Aplicaciones, abra la aplicación y abra la base de datos (cubo).
Haga clic en Scripts y en Scripts MDX.
Haga clic en Crear, introduzca un nombre para el script y haga clic en Aceptar.
Escriba el script MDX. Un árbol de miembros y una lista de funciones pueden resultarle útiles.
Valide y guarde el script y, a continuación, cierre el editor de scripts.
Ejecute el script MDX desde Trabajos (consulte Ejecutar MDX) o bien, si utiliza Smart View, mediante Calcular en la cinta de Essbase.
En la página Aplicaciones, amplíe una aplicación y un cubo.
En el menú Acciones del cubo, haga clic en Inspeccionar.
Haga clic en Scripts y, a continuación, en Scripts MDX.
Haga clic en + para abrir un editor de scripts.
Escriba el script MDX. Un árbol de miembros y una lista de funciones pueden resultarle útiles.
Valide y guarde el script y, a continuación, cierre el editor de scripts.
Ejecute el script MDX desde Trabajos (consulte Ejecutar MDX) o bien, si utiliza Smart View, mediante Calcular en la cinta de Essbase.
Utilice este flujo de trabajo para crear scripts MDX mediante un libro de trabajo de aplicación y ejecútelos en Trabajos.
Utilice las directrices siguientes al trabajar con scripts MDX.
Utilice los scripts de MDX para realizar operaciones de datos de inserción o exportación.
Para los análisis de cuadrícula, utilice los informes de MDX en lugar de los scripts MDX.
Los scripts MDX pueden incluir de manera opcional variables de sustitución de tiempo de ejecución.
Para que se puedan utilizar en Smart View, los scripts MDX con variables de sustitución de tiempo de ejecución deben utilizar la sintaxis XML dentro del comando de cálculo SET RUNTIMESUBVARS, incluyendo <RTSV_HINT>
.
Si desea definir una variable de sustitución de tiempo de ejecución para que calcule solo la porción visible de datos en Smart View, defina el valor de la variable de sustitución de tiempo de ejecución en PDV, y el tipo de dato en miembro.
Si se ejecutan desde la interfaz web de Essbase, los scripts MDX pueden utilizar variables de sustitución, pero no variables de sustitución de tiempo de ejecución. Para utilizar variables de sustitución de tiempo de ejecución en scripts MDX, debe ejecutar los scripts desde Smart View, mediante Calcular en la cinta de Essbase.
A continuación se muestran ejemplos de scripts MDX que puede ejecutar en el cubo Sample Basic, ya sea desde Trabajos o en Smart View.
Inserción de MDX
Puede guardar este script .mdx
y ejecutarlo desde Trabajos o desde el cuadro de diálogo Calcular en 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] );
En el ejemplo anterior se asume que ha agregado previamente una medida Revised_Payroll en Sample Basic.
Exportación de MDX
Puede guardar este script .mdx
y ejecutarlo desde Trabajos o desde el cuadro de diálogo Calcular en 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])
Después de ejecutar el script, el siguiente archivo de exportación (sample01.txt
) se guarda en el directorio de cubo del catálogo de archivos:
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
Exportación de MDX mediante una variable de sustitución de tiempo de ejecución
Puede guardar este script .mdx
y ejecutarlo desde el cuadro de diálogo Calcular en 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])
Después de ejecutar el script, el siguiente archivo de exportación (sample002.txt
) se guarda en el directorio de cubo del catálogo de archivos:
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