Saltearse al contenido

MDX y exportación

Dos funcionalidades de usuario avanzado relacionadas: el editor MDX (para escribir consultas a mano o ajustar a mano la salida del workbench), y las opciones de exportación (para sacar el resultado a otra herramienta o a un informe).

El editor MDX

Detrás de las bambalinas, cada drag-and-drop en el workbench compila a una consulta MDX — el lenguaje de consulta para cubos OLAP. La mayoría de los análisis nunca necesitan que mire MDX; el workbench es más rápido para el caso común. Pero a veces lo quiere:

  • Depuración. Una consulta del workbench devuelve números inesperados y quiere ver exactamente qué se preguntó.
  • Copiar. Otra herramienta habla MDX (o está guardando una consulta a un archivo para control de versiones).
  • Ajuste a mano. El workbench le da un punto de partida; usted refina.
  • Cosas que el workbench no puede expresar. Algunas funcionalidades avanzadas de MDX (named sets, sub-cubos, cláusulas WITH complejas) no aparecen como elementos en zonas de soltar.

Abrir el panel MDX

Haga clic en Mostrar MDX en la barra de herramientas. Un panel se desliza mostrando la consulta actual como MDX.

El panel es de solo lectura por defecto; haga clic en Cambiar a MDX para hacer la consulta editable. Desde ese punto está creando MDX directamente — las zonas de soltar ya no dirigen la consulta. Para volver al modo workbench, Cambiar atrás descarta sus ediciones MDX y reconstruye desde las zonas de soltar.

Cómo se ve MDX

Una consulta MDX mínima:

SELECT
{ [Measures].[Revenue] } ON COLUMNS,
{ [Time].[Year].MEMBERS } ON ROWS
FROM [Sales]

Eso le da una tabla de ingresos año por año — lo mismo que arrastrar Revenue a Columnas y Time › Year a Filas.

MDX más interesante:

WITH
MEMBER [Measures].[YoY Growth] AS
([Measures].[Revenue], [Time].CURRENTMEMBER) /
([Measures].[Revenue], [Time].CURRENTMEMBER.PREVMEMBER) - 1,
FORMAT_STRING = '0.0%'
SELECT
{ [Measures].[Revenue], [Measures].[YoY Growth] } ON COLUMNS,
{ [Time].[Year].MEMBERS } ON ROWS
FROM [Sales]

Eso añade un porcentaje de crecimiento year-over-year como medida calculada — el workbench podría producir un resultado similar con el diálogo de miembros calculados, pero escribirlo como MDX le da control exacto.

Patrones MDX útiles

Unos pocos patrones que vale la pena conocer:

  • TOPCOUNT(set, n, expression) — top-N por una medida. Por ejemplo, TOPCOUNT([Customer].[Name].MEMBERS, 10, [Measures].[Revenue]) le da los 10 clientes con mayores ingresos.
  • FILTER(set, predicate) — restringir un conjunto. FILTER([Region].[Name].MEMBERS, [Measures].[Revenue] > 1000000) conserva solo regiones con ingresos sobre un millón.
  • PARALLELPERIOD — mismo período del año pasado. Más limpio que restar manualmente 1 del nivel de año.
  • NON EMPTY en un conjunto — descartar filas o columnas con medidas todas nulas, equivalente al toggle Non-Empty del workbench.

Para una referencia MDX más profunda, la documentación MDX de Microsoft es la estándar. Mondrian (el motor detrás de Saiku) implementa la mayor parte del MDX estándar con algunas peculiaridades documentadas en los documentos upstream de Mondrian.

Exportar datos

La barra de herramientas tiene tres botones de exportación. Producen cosas diferentes para audiencias diferentes.

Exportar a Excel (XLSX)

Lo que obtiene: un archivo .xlsx con la tabla de resultados formateada como hoja. La estructura pivot (filas, columnas, totales) se preserva. Varias medidas se convierten en varias columnas. Los hijos del drillthrough se convierten en filas indentadas en la misma hoja.

Mejor para: entregar a alguien que seguirá analizando en Excel, donde la forma pivot es útil.

Exportar a CSV

Lo que obtiene: un CSV plano con una fila por celda de la tabla de resultados. La fila de cabecera lleva los nombres de columna. Los totales se excluyen por defecto (un CSV con filas mixtas de total + detalle es confuso para parsers downstream).

Mejor para: canalizar a otra herramienta — un script Python, una herramienta BI, un data warehouse, cualquier cosa que quiera datos tabulares.

Exportar a PDF

Lo que obtiene: un renderizado PDF de la vista actual — la tabla de resultados O el gráfico, el que se esté mostrando. Salida multi-página para tablas grandes; el gráfico encaja en una página.

Mejor para: pegar en un informe, enviar por correo como instantánea, archivar un hallazgo específico junto a su visual.

Exportación de drillthrough

Haga clic derecho en cualquier celda en el resultado y elija Exportar drillthrough. Esto evita la agregación del cubo por completo y exporta las filas crudas de la tabla de hechos subyacentes a esa celda. Útil cuando alguien cuestiona un número y quiere enviarle los registros subyacentes.

Las exportaciones de drillthrough son solo CSV, intencionalmente — las filas crudas no tienen una estructura pivot que preservar.

Cuándo usar qué exportación

  • CSV cuando los datos van a otro sitio para procesamiento adicional.
  • Excel cuando una persona va a seguir trabajando con los datos en Excel.
  • PDF cuando la salida es el entregable final — una instantánea para un informe, un adjunto de correo, un share-out compartiendo pantalla.
  • Drillthrough cuando necesita las filas subyacentes detrás de un número agregado específico.

Una nota sobre límites de filas

Saiku no limita artificialmente el tamaño de la exportación, pero la consulta del data warehouse subyacente tiene que completarse. Un drillthrough de un millón de filas tarda en ejecutarse y en descargarse. Si está exportando rutinariamente cientos de miles de filas, considere si la agregación del cubo está haciendo lo que debería — el objetivo de OLAP es resumir, no volcar filas.

Próximos pasos