Workbencg
Enviado por jorge053 • 28 de Septiembre de 2012 • 1.475 Palabras (6 Páginas) • 348 Visitas
Sistemas de Información Estratégica
Docente: Ing. Reiner Guerra Salas 1
MDX
MDX (Expresiones multidimensionales) es un lenguaje para consultas de base de datos multidimensionales, de la misma forma que SQL es usada para consultas sobre base de datos relacionales. Fue originalmente definida como parte de las especificaciones OLE DB.
MDX funciona para expresiones multidimensionales. Este es un lenguaje de consultas implementado por Mondrian.
Las expresiones multidimensionales (MDX) permiten consultar objetos multidimensionales, como los cubos, y devolver conjuntos de celdas multidimensionales que contengan los datos del cubo.
Una consulta básica de MDX luce como esto:
SELECT {[Measures].[Unit Sales], [Measures].[Store Sales]} ON COLUMNS,
{[Product].members} ON ROWS
FROM [Sales]
WHERE [Time].[1997].[Q2]
Consulta de MDX básica (MDX)
La consulta de MDX (Expresiones multidimensionales) básica es la instrucción SELECT: la consulta utilizada con más frecuencia en MDX. Si se comprende cómo una instrucción MDX SELECT debe especificar un conjunto de resultados, en qué consiste la sintaxis de la instrucción SELECT y cómo crear una consulta simple mediante la instrucción SELECT, se tendrá un conocimiento sólido de cómo utilizar MDX para realizar consultas de datos multidimensionales.
Sintaxis de la Instrucción SELECT
En la sintaxis siguiente se muestra una instrucción SELECT básica que incluye el uso de las cláusulas SELECT, FROM y WHERE:
[ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ]
SELECT [ * | ( <SELECT query axis clause>
[ , <SELECT query axis clause> ... ] ) ]
FROM <SELECT subcube clause>
[ <SELECT slicer axis clause> ]
[ <SELECT cell property list clause> ]
Ejemplo de la Instrucción SELECT
En el siguiente ejemplo se muestra una consulta de MDX básica que utiliza la instrucción SELECT . Esta consulta devuelve un conjunto de resultados que contiene las cifras de ventas e impuestos de 2002 y 2003 de la zona de ventas sudoeste.
SELECT
{ [Measures].[Sales Amount],
[Measures].[Tax Amount] } ON COLUMNS,
{ [Date].[Fiscal].[Fiscal Year].&[2002],
[Date].[Fiscal].[Fiscal Year].&[2003] } ON ROWS
FROM [Adventure Works]
Sistemas de Información Estratégica
Docente: Ing. Reiner Guerra Salas 2
WHERE ( [Sales Territory].[Southwest] )
Ejecución de Consultas
Revisemos el cubo Quadrant Analysis del esquema SampleData.mondrian ubicado en
C:\pentaho\bi-server\pentaho-solutions\samples\analysis, este esquema es proveído con la instalación de Pentaho.
Se probarán algunas de las consultas MDX para la verificación de este cubo.
Este cubo trabaja con la tabla quadrant _actuals de la base de datos PENTAHO_sampledata.
Al momento de conectar el esquema con la plantilla de diseño de consultas MDX se debe verificar que la conexión haya sido exitosa. Se muestra el mensaje Mondrian connection Successful.
Sistemas de Información Estratégica
Docente: Ing. Reiner Guerra Salas 3
Descripción de la Tabla
La tabla quadrant_actuals registra las cantidades asignadas a cada cargo dentro de un departamento en cada región.
Las cantidades registradas son tres:
Actual: Real, cantidad real asignada.
Budget: Presupuesto, la cantidad proyectada o presupuestada para ese cargo.
Variance: Varianza, la diferencia entre las dos anteriores (Budget-Actual).
Descripción del Cubo
El cubo Quadrant Analysis trabaja con la tabla de hechos descrita en la parte superior.
El cubo presenta tres medidas específicas para cada cantidad registrada en la tabla.
Actual: Suma de todas estas cantidades.
Budget: Suma de todos los presupuestos.
Variance: Suma de todos las cantidades calculadas en el campo Variance.
Las medidas realizan sumas y presentas totales y subtotales a manera que se van expandiendo los niveles. Se establece aquí el nivel de detalle en el concepto de granularidad.
El nivel más general tiene que ver con la suma de cantidades de todas las regiones.
A un nivel intermedio se encuentra la medida para todos los departamentos por región.
Y en el nivel más específico se tiene la suma de todos los cargos por departamento.
De la misma manera estas medidas permiten también mostrar las cantidades por cada cargo, por cada departamento, por cada región.
Consultas
1. Consulta General que permite mostrar el total de la medida Actual por todo el conjunto de posiciones, en todos los departamentos de todas las regiones.
Sistemas de Información Estratégica
Docente: Ing. Reiner Guerra Salas 4
select NON EMPTY {[Measures].[Actual]} ON COLUMNS, /*Select marca el inicio de la consulta para los campos no vacios en la medida Actual, estos datos constituyen los valores mostrados en la columna de mi tabla*/
NON EMPTY {([Region].[All Regions], [Department].[All Departments], [Positions].[All Positions])} ON ROWS /*Se debe señalar los valores que se mostraran en las filas de la tabla. En la tabla figurarán los nombres de todas las regiones, de todos los departamentos y de todas las posiciones o cargos.*/
from [Quadrant Analysis] /*la clausula from indica el cubo con el que estoy trabajando*/
Los nombres All Regions, All Deparments y All Positions fueron indicados en la creación del cubo en el atributo allMenberName del primer nivel de jerarquía de la dimensión Región, del primer nivel de jerarquía de la dimensión Deparments y en el primer nivel de jerarquía de la dimensión Positions.
Copiamos la consulta en el diseñador de consultas MDX de Pentaho Schema Workbench, dar clic en Execute…
2. Consulta que devuelve el valor de la medida Actual de todos las posiciones de todos los departamentos detallada por cada Región. Central, Eastern, Southern, Western.
select NON EMPTY {[Measures].[Actual]} ON COLUMNS,
NON EMPTY Crossjoin(Hierarchize(Union({[Region].[All Regions]}, [Region].[All Regions].Children)), {([Department].[All Departments], [Positions].[All Positions])}) ON ROWS
from [Quadrant Analysis]
Sistemas de Información Estratégica
Docente: Ing. Reiner Guerra Salas 5
Expresión
Descripción
Sintaxis
Argumentos
Crossjoin
Devuelve
...