La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a DAX, problema vs solución

Presentaciones similares


Presentación del tema: "Introducción a DAX, problema vs solución"— Transcripción de la presentación:

1 Introducción a DAX, problema vs solución
Ana María Bisbé York Consultora BI #sqlsatMadrid #sqlsat459 @ambynet

2 3 Sponsor Sessions at 11:30 Don’t miss them, they might be getting distributing some awesome prizes! HP SolidQ Pyramid Analytics Also Raffle prizes at the end of the event provided by HP, SolidQ, Pyramid Analytics, Altran & Microsoft

3 Our Main Sponsors:

4 Introducción a DAX, problema vs solución
Agenda Modelos tabulares DAX vs Excel DAX vs T-SQL DAX vs MDX Solucionando problemas Columnas calculadas vs medidas Contextos Patrones BI de tiempos

5 Modelos tabulares… dax

6 DAX … algo nuevo Modelo tabular Orígenes de datos Tablas Columnas
No olvidar Power Query  Tablas Columnas Relaciones Jerarquías Otras funcionalidades

7 Modelos tabulares DEMO

8 Demo Modelo tabular

9 Lenguaje de expresiones DAX
Encontramos DAX en PowerPivot para Excel y Sharepoint BISM – Modelo tabular PowerBI

10 Lenguaje de expresiones DAX
DAX – Data Analysis Expressions DAX - colección de funciones, operadores, referencias y valores constantes que se pueden utilizar en una fórmula o expresión, para calcular y devolver uno o más valores. Las expresiones DAX brindan capacidades de cálculo, de integración de datos y más.

11 Comparación DAX vs Excel, SQL y MDX
Resumen comparativo DAX, lenguaje funcional, todo en DAX es una expresión, como Excel DAX usa modelo tabular relacional, como T-SQL DAX usa concepto de contexto actual, como MDX

12 Dax vs Excel

13 DAX vs MS Office Excel Creado a partir del lenguaje de fórmulas Excel
PowerPivot es una herramienta para usuarios expertos de Excel Muchas funciones existen igual en Excel Ambos son lenguajes funcionales, todo en Excel y DAX es una expresión Reduce la curva de aprendizaje En poco tiempo se crean las primeras columnas calculadas y medidas 

14 DAX vs MS Office Excel DAX es diferente a Excel,
Celdas vs tablas y columnas No se puede copiar y pegar una fórmula de uno en otro Hay un conjunto de funcionalidades que no existen en Excel BI de tiempos

15 DAX vs MS Office Excel DAX es diferente a Excel,
Diferencia de sintaxis en Excel, no existente en DAX =SUMA([Importe]) vs Uso de iteradores en DAX, no existen en Excel =SUMX(Ventas, Ventas[Cantidad]*Ventas[Precio]) Excel exige la columna para poder crear agregado

16 DAX vs Excel

17 Dax vs T-SQL

18 DAX vs SQL Consultas al modelo como si de una base de datos relacional se tratara EVALUATE vs SELECT FROM Selección de columnas WHERE ORDER BY GROUP BY, con y sin agregados

19 Consultar DAX - Recurso

20 DAX vs SQL

21 DAX vs SQL

22 DAX vs TSQL DEMO

23 DAX vs SQL

24 Recurso – DAXFormatter.com

25 DAX vs SQL Trabajo con relaciones entre tablas: igual y a la vez diferente  En DAX, no hay que expresar la condición del JOIN Sólo LEFT JOIN Subconsultas SQL = funciones anidadas DAX

26 DAX vs SQL - JOIN

27 DAX vs SQL – JOIN más agregado

28 DAX vs SQL – Subconsultas

29 DAX vs MDX

30 DAX vs MDX Saber MDX no ayuda demasiado para aprender DAX 
Dos tipos de modelos, dos sabores, funcionalidades compartidas,… o no Ambos son lenguajes de programación En MDX, repositorio para código, para crear miembros y conjuntos y además, existe SCOPE En DAX, nada de esto; pero a su favor Creación de columnas calculadas Ambos son lenguajes de consulta En MDX, para consultar: SELECT En DAX, para consultar: EVALUATE

31 DAX vs MDX Otras razones para cambiar de forma de pensar
Diferente trabajo con jerarquías MDX se apoya en las jerarquías, digamos… (PrevMember(CurrentMember)) DAX filtra tablas, no usa las jerarquías más que para visualizar Función de agregación MDX utiliza la función de agregación definida en el modelo multidimensional DAX necesita que se especifique en la expresión, no existe definición de función de agregado en el modelo tabular

32 Columnas calculadas vs medidas en DAX

33 Columnas calculadas vs medidas… algo nuevo
Dos tipos de cálculos: Columnas calculadas Se evalúa cada fila Consume más recursos, calcula para cada fila de la tabla Cálculo inmediato, en columnas, dentro del modelo Tabular Medidas Nuevo campo en la tabla PowerPivot – se evalúa en el momento que se agrega a la tabla/gráfico Consume menos recursos, sólo se calcula para las celdas que se utilizan en tablas y gráficos dinámicos Cálculo dinámico, en medidas o cálculos, al vuelo para cada celda de la tabla dinámica

34 Columnas calculadas DEMO

35 DEMO Columnas calculadas con DAX
Ya teníamos de las jerarquías: -- Sentido relación M:1 En Productos =RELATED(Categorias[EnglishProductCategoryName]) =RELATED(Subcategorias[EnglishProductSubcategoryName]) En Clientes =RELATED(Geografia[EnglishCountryRegionName]) Ventas Margen:=Ventas[Venta]-Ventas[Coste] VentasNegativas=IF(Ventas[SalesTerritoryKey]=1;-1*Ventas[Venta];Ventas[Venta]) Productos LíneaProductos=SWITCH(Productos[Línea];"T";"Turismo";"M";"Montaña";"R";"Ruta";"S";"Sencilla";"Sin Asignar") Clientes: =IF(Clientes[Ingresos]>50000;"Alto";IF(Clientes[Ingresos]>30000;"Medio";"Bajo")) Fechas: Semestre:=ROUNDUP(MONTH(Fechas[FullDateAlternateKey])/6;0) Territorios: -- Calcular agregado en tabla relacionada -- Sentido relación 1:M =SUMX(RELATEDTABLE(Ventas);Ventas[Venta])

36 Medidas DEMO

37 DEMO Medidas con DAX 3.- Trabajo con Medidas Columnas vs Medidas
%Margen -- Primero como columna calculada Margen%=Ventas[Margen]/Ventas[Venta] -- Luego, lo mismo; pero como Medida %Margen_M %Margen_M=SUM(Ventas[Margen])/SUM(Ventas[Venta]) -- Correcto Medidas y agregados simples y complejos SumaVentas:=SUM(Ventas[Venta]) SumaXVentas:=SUMX(Ventas;Ventas[Venta]) -- Uso de SUMX para sumar varias columnas SumaXCantidadPrecio:=SUMX(Ventas;Ventas[Cantidad]*Ventas[Precio]) SumaXVentasIVA:=SUMX(Ventas;Ventas[Venta]+Ventas[IVA])

38 Columna calculada vs Medida
En filas y/o columnas de tabla dinámica En segmentadores En agrupaciones o categorizaciones de elementos, para discretizar datos Medida Examinar el resultado como valor, en el panel central de tabla dinámica Utilizar este valor como origen de datos para KPI Su valor dependerá del contexto definido por el usuario en la tabla dinámica Está afectado por filtros de tabla dinámica y segmentadores

39 Contextos en DAX

40 Contextos de evaluación
Cada consulta se resuelve dentro de un contexto específico Contexto de filtro Siempre existe y define a un conjunto de filas activas en un cálculo Contexto de filas Existe sólo durante la iteración de una tabla y es la fila actual de la tabla en el momento de su iteración

41 Manipular el contexto de filtro
Función CALCULATE Para manipular el contexto de filtro con filtros diferentes El argumento expresión es el único obligatorio La expresión del filtro es la que al ser evaluada modifica el contexto de filtro Pueden ser de dos tipos: Expresión lógica que contenga una sola columna, en ese caso, cualquier contexto de filtro sobre esta columna se sustituye por la nueva condición Una expresión de tabla que devuelve una o más columnas, en este caso, todos los filtros sobre las columnas devueltas por la expresión de tabla se sustituyen por la nueva condición de filtro

42 Propagación del contexto de filtros
Cuando se aplica contexto de filtro sobre una tabla el filtro se propaga a las otras tablas relacionadas para cada relación uno a muchos (1:M) Si se aplica un filtro a una columna de la tabla Categoría, se propaga a Productos y también a Ventas No se propaga a Fechas

43 Contextos DEMO

44 Manipular el contexto de filtro

45 Manipular el contexto de filtro

46 Manipular el contexto de filtro

47 Manipular el contexto de filtro

48 Recurso

49 BI de tiempos con DAX

50 Inteligencia de tiempos
Comparar valores en períodos de tiempo equivalentes Requerimientos del modelo: Tabla de tiempos independiente, que contiene exclusivamente fechas y columnas derivadas sobre fechas La tabla de tiempos no puede contener saltos en fechas, de inicio a fin sin interrupciones El mínimo nivel de granularidad para el día, no puede incluir rangos de horas, el día es la mínima unidad. Al menos una columna tiene que ser de tipo fecha (Date) Utilizan funciones de inteligencia de tiempo para definir el comportamiento del negocio a través del tiempo Comparación de resultados entre años, donde el objetivo es un tanto porciento de crecimiento sobre el valor del período anterior

51 BI de tiempos DEMO

52 Períodos anteriores y posteriores
TrimestreAnterior:= CALCULATE(SUM(Ventas[Ventas]); PREVIOUSQUARTER(Fechas[Fecha])) AñoAnterior:= CALCULATE(SUM(Ventas[Ventas]); PREVIOUSYEAR(Fechas[Fecha])) MismoPeríodoAñoPasado:= CALCULATE(SUM(Ventas[Ventas]); SAMEPERIODLASTYEAR(Fechas[Fecha]))

53 Períodos paralelos

54 Inteligencia de tiempos – Desde / Hasta

55 Agregar y comparar en el tiempo
Obtener los totales desde inicios de año, trimestre, mes hasta día actual Conocidas como YTD (Year to date) Comparar estos agregados con los de años anteriores Ambos, agregados y comparativas cambian según el filtro de fecha y el nivel que se esté analizando

56 Acumulados

57 patrones

58 Clasificación ABC

59 Clasificación ABC

60 Clientes nuevos y recuperados

61 Clientes nuevos y recuperados

62 Recursos http://www.daxpatterns.com/

63 Resumen de recursos

64 ¿Preguntas? Ana María Bisbé York anabisbe@amby.net http://amby.net/
¡¡ Gracias !!


Descargar ppt "Introducción a DAX, problema vs solución"

Presentaciones similares


Anuncios Google