GUIA DE CURSO: ELABORADO POR: ING. LUIS TAMAYO PARA: FECHA DE PRESENTACIÓN: INTELIGENCIA DE NEGOCIOS CON PENTAHO- Versión 1.0.

Documentos relacionados
INTRODUCCIÓN MDX MDX. Jortilles.com

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

1. DML. Las consultas de resumen

Consultas SQL II. Diego Egüez. Universidad San Francisco de Quito (USFQ)

álgebra relacional 2

TEMA 4.. CONSULTA DE DATOS I.

CEP GUÍA DE REFERENCIA

SELECT listadecampos FROM nombredetablas WHERE condicionesdebúsqueda;

SQL, Consultas. Son Importantes las Consultas? Cuál es el Resultado de SELECT? Andrés Moreno S.

Uso de sentencias avanzadas

Temario. XI Encuentro Danysoft en Microsoft Crear modelos analíticos con herramientas Microsoft BI. XI Encuentro Danysoft Sala SQL

Guía práctica SQL. (c) Francisco Charte Ojeda

Bases de Datos Relacionales con Base de OpenOffice y consultas SQL para Tecnología de la Información.

FUNCIONES EN SQL SERVER

Primeros pasos en modelos Multidimensionales

SQL SERVER Curso Teórico-Práctico

INFORMÁTICA MÉDICA. Profesor: MsC. Liz Armenteros Chávez

Laboratorios de BASES DE DATOS. (I.T. Informática)

Modelos Multidimensionales con Analysis Services Primeros Pasos

SQL Básico. José Muñoz Jimeno Febrero 2015

Los DLL que permiten crear y definir nuevas bases de datos, campos e índices.

SQL. Amparo López Gaona. México, D.F. Noviembre 2003

Tutorial JPivot Del Giudice Glenda Della Mea Mariela Universidad Nacional de Córdoba

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

INSTITUTO LA PAZ. Tutorial Paso a Paso Tablas Dinámicas

Modulo I: Introducción Gestores de Bases De Datos

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT

Tutorial de MySQL Lección IV Funciones de Agregación

... Consultas. anfora CAPÍTULO. Introducción. Utilización de las CONSULTAS

Oracle Database 12c SQL and PLSQL Fundamentals

Anexo 3 COMPONENTES DE SQL SERVER. Los DDL (Data Definition Languaje) que permiten crear y definir nuevas

MDX. Introducción a MDX. MultiDimensional expressions (MDX) es un lenguaje de definición y consultas sobre el modelo multidimensional

Diseña y Administra Bases de Datos Guía de Estudio

Introducción a la Información Geográfica Selección de elementos Sesión 3

PARTE I Desarrollen las siguientes cuestiones (concepto, ejemplos, etc):

Las empresas han comenzado a aprovechar los cada vez más numerosos datos en línea para tomar mejores decisiones sobre sus actividades.

Manual Aprendiendo Practicando Oracle SQL (Spanish Edition) Click here if your download doesn"t start automatically

Método SQL para Calcular el valor máximo de un conjunto de columnas de una Tabla.

Lenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar /

Modificar estructura Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, etc.

Computación Web (Curso 2015/2016)

Objetivos del curso sobre fundamentos de bases de datos - Examen Oracle Database Foundations

20761 Querying Data with Transact-SQL

El SQL menos conocido

Implementing and Maintaining Microsoft SQL Server 2008 Analysis Services (6234)

Operador Restricción

Insertar Datos en Tablas

Conceptos básicos de una consulta

Soluciones OLAP con Microsoft Analysis Services

Prof. Dr. Jaime Solano Soto C102-1

Lenguaje de manipulación de datos

Bases de Datos Relacionales III

o SUM: suma los valores del campo que especifiquemos. Sólo se puede utilizar en columnas numéricas.

EXP-UNC: /2017 LA VICE DECANA DE LA FACULTAD DE CIENCIAS ECONÓMICAS RE S U EL VE:

FUNDAMENTOS ORACLE 12C

Tablas dinámicas Excel 2003

CUBE, ROLLUP, GROUPING del SQL

Computación Aplicada. Universidad de Las Américas. Aula virtual de Computación Aplicada. Módulo de Excel 2013 LIBRO 6

Operadores. Además se pueden emplear en sentencias SET.

Oracle Fundamentos. Programa de Estudio.

Oracle Fundamentos. Programa de Estudio.

1. DML. Las consultas multitabla

SQL: Lenguaje de Interrogación Estructurado

Parcial Bases de Datos

MANUAL BÁSICO DEL LENGUAJE SQL

Vistas en InformiX Sistemas de Bases de Datos II EMT CETP A/S Leonardo Carámbula

Para aquellos que tengais conocimientos de Access es lo más parecido a una consulta de referencias cruzadas, pero con más interactividad.

Adquisición y Tratamiento de Datos (Febrero 2009).

LENGUAJE DE MANIPULACIÓN DE DATOS (DML) CONSULTA DE DATOS

Tema 7. Elaboración de consultas básicas de selección. Lenguajes de bases de datos. SQL básico 15/12/2011

INTELIGENCIA DE NEGOCIO CON MS- EXCEL POWERPIVOT Y POWERVIEW

Un proyecto de IBM llamado Sistem/R construye un prototipo simple llamado SQUARE que después se transformó en SQL.

Manual de Sentencias Básicas en SQL

Tema 4. TEMA 4. El lenguaje de consulta SQL

Vistas en MS SQL Server. Bases de Datos I Universidad Católica II Cuatrimestre

EXCEL AVANZADO MÓDULO ESPECIAL

DESARROLLO PLATAFORMA WEB LITEBI

SQL Los fundamentos del lenguaje (con ejercicios corregidos) (2ª edición)

GUIA PARA LA MANIPULACION DE DATOS EN UNA BASE DE DATOS A TRAVÉS DE MYSQL

Implementación Plataforma BI para seguimiento de flotas Edición: 1

GUIA DE AUTOAPRENDIZAJE #10 EXCEL 2003

TECNOLOGIAS PARA LA INTEGRACION DE SOLUCIONES. Facultad de Estadística e Informática

Consultas SQL INNER JOIN

Procedimientos para agrupar y resumir datos

Programación de Base de Datos con SQL Duración: 25 Horas Código Sence:

SQL DML Select. Ges$ón y Modelación de Datos. María Constanza Pabón

Necesitamos poder agrupar, acceder y analizar la información sobre la operativa de nuestro negocio,

Reporting (objeto Query)

XQuery. Un lenguaje de consulta para XML.

Procedimientos para agrupar y resumir datos

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN

Inteligencia de Negocios. Modelado Multidimensional Lógico

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

CC BASES DE DATOS OTOÑO 2018

Transcripción:

GUIA DE CURSO: INTELIGENCIA DE NEGOCIOS CON PENTAHO- MDX Versión 1.0 ELABORADO POR: ING. LUIS TAMAYO www.relative-engine.com PARA: CEC - EPN FECHA DE PRESENTACIÓN: Quito, 17 de Junio del 2013

CONTENIDO ANALISIS DE CUBOS OLAP Y MDX... 3 INTRODUCCION... 3 QUE ES MDX... 4 PRINCIPALES ASPECTOS DE LA SINTAXIS MDX... 4 Primera consulta... 5 Analogía a SQL... 5 PRINCIPALES FUNCIONES, OPCIONES Y ELEMENTOS MDX... 5 Dimensiones de tiempo en MDX: funciones especiales... 6 Miembros calculados y formulas complejas.... 7 REFERENCIAS... 9 2

ANALISIS DE CUBOS OLAP y MDX Antes de empezar a hablar de MDX debemos entender que significa el análisis multidimensional y los cubos OLAP ya que el lenguaje MDX se utiliza para realizar consultas sobre estos modelos de datos. El análisis multidimensional consiste en organizar la información y los datos de una organización de forma que los elementos medibles o métricas del negocio (también llamados hechos) puedan ser cualificados utilizando las diferentes "dimensiones" o vistas del negocio. El objetivo de este modelo es permitir analizar una métrica cruzándola con diferentes puntos de vista del negocio. Pero entendamos mejor con un ejemplo: o Supongamos que tenemos un supermercado con una tarjeta de fidelización que nos permita saber quién compra que y cuando. o Un análisis u organización multidimensional de los datos de ventas de un supermercado nos podría permitir responder a preguntas como: Que artículo es el más vendido este mes? Que tienda ha vendido más artículos del tipo X? Qué edad tienen los clientes que más gastan en mi supermercado (de media)? o Veamos el paralelismo entre estas consultas y el modelo multidimensional. Qué artículo es el más vendido este mes? En esta pregunta queremos analizar el hecho artículos vendidos y lo queremos analizar desde 2 dimensiones distintas: tiempo y familia de productos Qué supermercado ha vendido más artículos del tipo X? El hecho a contar aquí es el mismo ( cantidad de artículos) pero las dimensiones son aquí las diferentes tiendas y la familia de productos Qué edad tienen los clientes que más gastan en mi supermercado (de media)? En este caso el hecho es el importe de las ventas y la dimensión son los clientes, o bien la edad de los clientes, o bien su rango de edad. Lo veremos más adelante. 3

MDX es un acrónimo de Multidimensional Query Expression. Este lenguaje fue creado en 1997 por Microsoft. No es un lenguaje estándar sin embargo diferentes fabricantes de herramientas OLAP (entre ellos Mondrian) lo han adoptado como estándar de hecho. El MDX es en los sistemas OLAP el equivalente al SQL en los sistemas gestores de bases de datos relacionales. Eso significa que es el lenguaje a través del cual podemos explotar la información que reside en los motores OLAP y satisfacer las consultas analíticas revisadas en la introducción. Si bien es similar a SQL posee funciones y fórmulas que lo hacen muy potente para el análisis de datos. La principal diferencia del mundo OLAP respecto al mundo relacional radica en que las estructuras dimensionales están jerarquizadas y se representan en forma de árbol y por lo tanto existen relaciones entre los diferentes miembros de las dimensiones. Este hecho hace que el lenguaje MDX disponga de funciones y atributos especiales que permiten referenciar los diferentes elementos de las dimensiones con expresiones como MIEMBROS-HIJO, MIEMBROS- PRIMO, MIEMBROS-PADRE haciendo una analogía con los árboles genealógicos. Estas estructuras jerarquizadas son especialmente útiles para poder visualizar los datos de forma comparada a nivel temporal pero de las dimensiones temporales y sus particularidades serán revisadas más adelante. El lenguaje MDX permite realizar consultas con una sintaxis parecida al lenguaje natural SQL. Para ejemplificar las consultas y la sintaxis trabajaremos con un ejemplo de un cubo. Imaginamos un cubo de ventas con las siguientes dimensiones: o Dimensión temporal de las ventas con niveles de año y mes. o Dimensión productos vendidos con niveles de familia de productos y productos. o Dimensión de medidas con importe de las ventas y unidades vendidas 4

PRIMERA CONSULTA Si queremos obtener por ejemplo el importe de las ventas para el año 2008 para la familia de productos lácteos la consulta seria la siguiente: SELECT { [Medidas].[importe ventas]} on columns, { [Tiempo].[2008] } on rows FROM [cubo ventas] WHERE ([Familia].[lacteos]) ANALOGÍA A SQL Analizando la consulta de ejemplo podemos establecer una analogía con las sentencias SQL para explicar mejor la estructura del lenguaje. En primer lugar tenemos la estructura idéntica general de la consulta con las cláusulas SELECT... FROM... WHERE que en MDX se usa idénticamente a SQL: o SELECT especifica un conjunto de elementos que queremos visualizar o FROM se indica el cubo del que queremos sacar la información o WHERE detalla las condiciones de filtrado. Una de las particularidades del MDX es que la información la devuelve en forma tabular normalmente. En la cláusula select se usa on columns. Esta cláusula sirve para separar los elementos que queremos visualizar en las filas de los que queremos en las columnas. En la consulta de ejemplo veremos el importe en las columnas y el tiempo en las filas. Los { } son para permitir listas de elementos en las selecciones y los [] encapsulan elementos de las dimensiones y niveles. A nivel de funcionalidades y potencia a la hora de realizar consultas el MDX es potente como SQL aunque su objetivo está orientado a temas de comparaciones, relaciones jerárquicas entre elementos,etc. Una de las funcionalidades que distinguen al MDX es el acceder a los elementos utilizando estructura de árbol. Así para un Determinado nivel de una dimensión tenemos comandos como: [Familia].[lácteos].CurrentMember : Permite acceder al miembro actual [Familia].[lácteos].Children : Permite acceder a los hijos de la familia de los lácteos 5

[Familia].[lácteos].prevMember: Permite acceder al miembro anterior de la dimensión Por otro lado existen diferentes funciones que permiten realizar cálculos y complementar las consultas como por ejemplo: o CrossJoin (conjunto_a,conjunto_b): Obtiene el producto cartesiano de dos conjuntos de datos. o BottomCount(conjunto_datos,N): Obtener un número determinado de elementos de un conjunto, empezando por abajo, opcionalmente ordenado. o BottomSum(conjunto_datos,N,S): Obtener de un conjunto ordenado los N elementos cuyo total es como mínimo el especificado( S). o Except(conjunto_a,conjunto_b): Obtener la diferencia entre dos conjuntos. Finalmente comentar que en MDX también están implementadas muchas funciones matemáticas y estadísticas que permiten enriquecer los análisis. Encontramos entre muchas otras funciones como: o AVG o COUNT o VARIANCE o VARIANCEn o Todas las funciones trigonométricas (Seno,Coseno,tangente,etc...) DIMENSIONES DE TIEMPO EN MDX: FUNCIONES ESPECIALES Como ya hemos comentado una de las funcionalidades destacadas del lenguaje MDX son las funciones especiales de tratamiento del tiempo. En el análisis multidimensional es muy frecuente comparar los valores de las métricas con los valores de periodos anteriores: o Por ejemplo comparar las ventas de junio de 2009 con las ventas de junio de 2008, 2007, 2006, etc. También es muy común hacer operaciones acumuladas con periodos móviles: o Por ejemplo las ventas de los últimos 6 meses o desde enero hasta el mes actual, etc. Para estas operaciones MDX permite identificar y tratar de forma especial las dimensiones temporales, para poder aplicar las fórmulas que permiten obtener los cálculos mencionados. A continuación nombramos algunas de las principales fórmulas relacionadas con las dimensiones temporales y su sintaxis. PeriodsToDate Funcionalidad: Devuelve un conjunto de miembros del mismo nivel que un miembro determinado, empezando por el primer miembro del 6

mismo nivel y acabando con el miembro en cuestión, de acuerdo con la restricción del nivel especificado en la dimensión de tiempo Sintaxis: <Conjunto> PeriodsToDate(<Nivel>, <Miembro>) Ejemplo: PeriodsToDate([Tiempo].[Mensual].[Semestre],[Tiempo].[Mensual].[Mes]. [Agosto 2009] El ejemplo devolvería el conjunto de meses desde agosto de 2009 hasta el final del semestre es decir julio y agosto de 2009. Existen funciones especiales para simplificar el uso de PeriodsToDate en sus versiones más comunes y son las siguientes: o WTD (<Miembro>): Devuelve los miembros de la misma semana del miembro especificado. o MTD (<Miembro>): Devuelve los miembros del mismo mes del miembro especificado. o QTY (<Miembro>): Devuelve los miembros del mismo trimestre del miembro especificado. o YTD(<Miembro>): Devuelve los miembros del mismo año del miembro especificado. ParallelPeriod Funcionalidad: Devuelve un miembro de un periodo anterior en la misma posición relativa que el miembro especificado. Sintaxis: <Miembro> ParallelPeriod(<Nivel>, <Expresión numerica>, <Miembro>) Ejemplo: ParallelPeriod ([Tiempo].[Mes].[Semestre], 3, [Tiempo].[Mensual].[Mes].[Junio 2009]) El ejemplo devolvería diciembre 2007 que es el equivalente al último mes del semestre retrocediendo 3 semestres en el tiempo. MIEMBROS CALCULADOS Y FORMULAS COMPLEJAS. Una de las funcionalidades más potentes que ofrece el lenguaje MDX es la posibilidad de realizar cálculos complejos tanto dinámicos (en función de los datos que se están analizando en ese momento) como estáticos. Los cubos multidimensionales trabajan con medidas (del inglés measures) y con miembros calculados (calculated members). Las medidas son las métricas de la tabla de hechos a las que se aplica una función de agregación (count, distinct count, sum, max, avg, etc), en otras palabras son las métricas del negocio en estado puro. Los miembros calculados son tratados como métricas a la hora de explotar los cubos, sin embargo son mucho más potentes que estas. 7

Un miembro calculado es una métrica que tiene como valor el resultado de la aplicación de una fórmula que puede utilizar todos los elementos disponibles en un cubo, así como otras funciones de MDX disponibles. Veamos un ejemplo sencillo. o Imaginamos que tenemos dos métricas en nuestro cubo que son: [Medidas].[importe ventas] y [Medidas].[Número de artículos vendidos]. Podríamos obtener el precio medio de artículo utilizando un miembro calculado con la siguiente formula: [Medidas].[precio medio articulo]=[medidas].[importe ventas] / [Medidas].[Número de artículos vendidos] o Esto genera un miembro calculado. Los miembros calculados son realmente muy potentes pues podemos utilizar expresiones condicionales para mostrar diferente información en función del nivel o las dimensiones que estamos visualizando. Un segundo ejemplo algo más complejo: iif([tiempo.mensual].currentmember.level IS [Tiempo.mensual].[Mes],[Measures].[promedio mensual],null) o En el ejemplo utilizamos una función condicional de MDX llamada iif que nos permite asignar valor a un miembro calculado sólo cuando estamos en un nivel determinado de una dimensión. o Concretamente este miembro calculado sólo tiene valor cuando estamos en el nivel Mes de la dimensión temporal, en cualquier otro caso el valor es nulo. Añadimos otro ejemplo algo más complejo. sum({parallelperiod([tiempo].[periodo],1, [tiempo].currentmember).lag(5):parallelperiod([tiempo].[periodo],1, [tiempo].currentmember)},[importe Ventas]) IIf( sum({parallelperiod([tiempo].[periodo],1, [tiempo].currentmember).lag(5):parallelperiod([tiempo].[periodo],1, [tiempo].currentmember)},[importe Ventas])>0,' ##,##% arrow=up',' ##,##% arrow=down') o Aquí podemos ver un ejemplo de cómo se define una fórmula más compleja y como se da un formato especial en función del valor a esa fórmula. o La fórmula está utilizando una función de agregación para sumar la métrica [Importe Ventas] haciendo el acumulado de los últimos 5 valores del nivel (5 años, 5 meses o 5 semanas) utilizando la 8

función de tiempo ParallelPeriod con el intervalo de los últimos 5 miembros (con ayuda de la función Lag(5)) o El formato se define en la propiedad FORMAT_STRING y consiste en una flecha verde o roja en función de si la cantidad es negativa o positiva utilizando de nuevo la función iif y las propiedades de formato como arrow=up y arrow=down que son propias de la implementación de mondrian. REFERENCIAS www.mondrian.pentaho.org http://en.wikipedia.org/wiki/multidimensional_expressions http://msdn.microsoft.com/es-es/library/ms145595.aspx Capítulo: REFERENCIAS 9