Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porRosa María Casado Ayala Modificado hace 8 años
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 !!
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.