Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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 bsica de MDX luce como esto: SELECT {[Measures].[Unit Sales], [Measures].[Store Sales]} ON COLUMNS, {[Product].members} ON ROWS FROM [Sales] WHERE [Time].[1997].[Q2]
Ejecucin de Consultas
Revisemos el cubo Quadrant Analysis del esquema SampleData.mondrian ubicado en C:\pentaho\bi-server\pentaho-solutions\samples\analysis, este esquema es provedo con la instalacin de Pentaho.
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 diseo de consultas MDX se debe verificar que la conexin haya sido exitosa. Se muestra el mensaje Mondrian connection Successful.
Descripcin de la Tabla
La tabla quadrant_actuals registra las cantidades asignadas a cada cargo dentro de un departamento en cada regin. 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).
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.
2.
Consulta que devuelve el valor de la medida Actual de todos las posiciones de todos los departamentos detallada por cada Regin. 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]
Expresin
Descripcin
Sintaxis
Argumentos Set_Expression1 Expresin MDX vlida que devuelve un conjunto. Set_Expression2 Expresin MDX vlida que devuelve un conjunto.
Crossjoin
Standard syntax Crossjoin(Set_Expression1 ,Set_Expression2 [,...n] ) Alternate syntax Set_Expression1 * Set_Expression2 [* ...n]
El orden de las tuplas en el conjunto resultante depende del orden de los conjuntos que deben unirse y del orden de sus miembros. Por ejemplo, cuando el primer conjunto consta de {x1, x2,...,xn} y el segundo conjunto consta de {y1, y2, ..., yn}, el producto cruzado de estos conjuntos es: {(x1, y1), (x1, y2),...,(x1, yn), (x2, y1), (x2, y2),..., (x2, yn),..., (xn, y1), (xn, y2),..., (xn, yn)}
Hierarchize
Ordena los miembros de un conjunto en una jerarqua. La funcin siempre conserva los duplicados.
Hierarchize(Set_Expression [ , POST ] )
Si no se especifica POST, la funcin ordena los miembros en un nivel en su orden natural. Si se especifica POST, la funcin Hierarchize ordena los miembros en un nivel siguiendo un orden postnatural.
Union
Devuelve un conjunto generado por la unin de dos conjuntos que, opcionalmente, conserva miembros duplicados.
Standard syntax Union(Set_Expression1, Set_Expression2 [,...n][, ALL]) Alternate syntax 1 Set_Expression1 + Set_Expression2 [+...n] Alternate syntax 2 {Set_Expression1 , Set_Expression2 [,...n]}
Set Expression 2 Expresin MDX vlida que devuelve un conjunto. Con la sintaxis 1 alternativa, los duplicados se eliminan de forma predeterminada.Con la sintaxis estndar, el indicador ALL conserva los duplicados del conjunto combinado. Se eliminan los duplicados de la cola del conjunto. Con la sintaxis alternativa 2, siempre se conservan los duplicados.
Children
Member_Expression
Member_Expression.Children
Copiamos la consulta en el diseador de consultas MDX de Pentaho Schema Workbench, dar clic en Execute
select NON EMPTY {[Measures].[Actual]} ON COLUMNS, NON EMPTY Crossjoin(Hierarchize(Union(Union(Crossjoin({[Region].[All Regions]}, {[Department].[All Departments]}), Crossjoin({[Region].[All Regions]}, [Department].[All Departments].Children)), Crossjoin([Region].[All Regions].Children, {[Department].[All Departments]}))), {[Positions].[All Positions]}) ON ROWS from [Quadrant Analysis] 4. Consulta que muestra los valores de la suma de actual de todas las posiciones en todas las regiones, detallando slo los departamentos de la regin central. select NON EMPTY {[Measures].[Actual]} ON COLUMNS, NON EMPTY Crossjoin(Hierarchize(Union(Union({([Region].[All Regions], [Department].[All Departments])}, Crossjoin([Region].[All Regions].Children, {[Department].[All Departments]})), Crossjoin({[Region].[All Regions].[Central]}, [Department].[All Departments].Children))), {[Positions].[All Positions]}) ON ROWS from [Quadrant Analysis]
5.
select NON EMPTY {[Measures].[Actual]} ON COLUMNS NON EMPTY {[Region].[All Regions].Children} ON ROWS from [Quadrant Analysis]
6.
Consulta que muestra el valor de la medida Actual de todas las posiciones de todos los departamentos detalladas por regin. select NON EMPTY {[Measures].[Actual]} ON COLUMNS, NON EMPTY Crossjoin(Hierarchize([Region].[All Regions].Children), {([Department].[All Departments], [Positions].[All Positions])}) ON ROWS from [Quadrant Analysis]
7.
Consulta que muestra el valor de la medida Actual de todos los departamentos detalladas por regin. select NON EMPTY {[Measures].[Actual]} ON COLUMNS, NON EMPTY Crossjoin({[Region].[All Regions].Children}, {[Department].[All Departments]}) ON ROWS from [Quadrant Analysis]
Ejercicios
Resolver las siguientes consultas de tal modo que muestren los resultados de los campos que se consignan en cada tabla. 1. Consulta General que permite mostrar el total de la medida Budget en todas las regiones.
Region Departments Southern Executive Management Finance Human Resource Marketing & Comunication Product Development Professional Services Sales Docente: Ing. Reiner Guerra Salas
Medidas Actual ?
Region Eastern
Departments Executive Management Finance Human Resource Marketing & Comunication Product Development Professional Services Sales
Medidas Actual ?
5.
Consulta que muestra los valores de Actual para cada departamento pero slo de la regin Oeste.
Region Departments Western Executive Management Finance Human Resource Marketing & Comunication Product Development Professional Services Sales
Medidas Actual ?
10