##SQLSatMadrid Para crear modelos analíticos: ¿Power Query o Power Pivot? ¿M o DAX? Ana María Bisbé York Consultora BI
##SQLSatMadrid BIG Thanks to SQLSatMadrid Sponsors
##SQLSatMadrid 4 Sponsor Sessions at 11:40 Don’t miss them, they might be getting distributing some awesome prizes! HPE SolidQ KABEL TSD Consulting Also BIG Raffle prizes at the end of the event provided by: Plainconcepts, SolidQ, Kabel, TSD Consulting, Pyramid Analytics & sqlpass.es
##SQLSatMadrid Agenda Modelos tabulares con Microsoft Excel Power BI vs Power BI Desktop Power Query vs Power Pivot M vs DAX Combinar consultas vs RELATED() Agrupar columnas vs RELATEDTABLE() Control de errores Columnas calculadas vs transformaciones de consulta BI de tiempos Semanas Columnas vs Medidas Granularidad Analizar en Excel desde PowerBI 4 |
##SQLSatMadrid Consulta y Modelos tabulares Consulta para acceder a datos Lenguaje M Modelos tabulares Basados en tablas y sus relaciones Lenguaje DAX Data Analysis Expressions Entornos tabulares Microsoft SQL Server Analysis Services Tabular Power Pivot Power BI
##SQLSatMadrid EXCEL VS POWER BI
##SQLSatMadrid Excel vs Power BI Excel - herramienta madura de Microsoft con muchas funcionalidades además de Power BI MS Excel 2016 Mejoras en tabla dinámica Nuevos gráficos Hojas de pronóstico Nuevas funciones Excel y DAX Obtener y transformar vs Power Query Mejoras en Power Pivot Power View Mapas 3D vs Power Map Mejoras en colaboración Excel 2016 y PowerBI Excel 2016 para Office 365
##SQLSatMadrid Excel vs Power BI Power BI - Mucho más que PowerBI Desktop
##SQLSatMadrid Excel vs Power BI Power BI acaba de cumplir un año
##SQLSatMadrid Excel vs Power BI - interfaz Power BI Query Designer vs Power Query Apenas se diferencian estéticamente
##SQLSatMadrid Excel vs Power BI - interfaz Vista relaciones
##SQLSatMadrid Excel vs Power BI - interfaz Vista Datos
##SQLSatMadrid ¿Excel vs Power BI? Lo mejor de ambos mundos Excel como herramienta de uso masivo sigue siendo imprescindible También para consumir Power BI Power BI es y será en el futuro la herramienta más utilizada, con independencia del origen de datos para crear modelos, publicar, compartir y consumir modelos analíticos Se hermana con Excel, como origen y destino
##SQLSatMadrid POWER QUERY VS POWER PIVOT
##SQLSatMadrid Power Query vs Power Pivot Aspecto / HerramientaPower QueryPower Pivot Identificación de relaciones entre tablas en servidor SQL Server Al reutilizar la conexión, sí importa las relaciones entre tablas existentes en la base de datos de origen Al reutilizar la conexión, no importa las relaciones entre tablas existentes en la base de datos de origen Extracción de datos Extrae un subconjunto para facilitar vista preliminar y realizar las transformaciones Importa los datos, creando una instantánea entre lo que hay físicamente en Excel y lo que hay en el servidor en el momento de la importación Ejecución de transformaciones En el servidor que corresponde al origen de datos, siempre que sea posible En Excel, al servidor de origen sólo se accede durante la importación y el procesado o recarga de datos
##SQLSatMadrid Power Query vs Power Pivot Aspecto / HerramientaPower QueryPower Pivot Uso de memoria Durante la creación de la consulta al no tener cargados todos los datos, no es un problema Al tener todos los datos almacenados en memoria, puede provocar problemas de rendimiento Consumo del resultado desde tabla dinámica (TD) No hay paso directo de PQ a TD Sí, nativo Consumo del resultado desde Power View (PV) No Sí, es origen de datos para PV Consumo del resultado desde Power Map (PM) No Sí, es origen de datos para PM Lenguaje para transformaciones Lenguaje M para extracción y transformación Lenguaje de expresiones DAX para crear columnas calculadas y medidas
##SQLSatMadrid Power Query vs Power Pivot Aspecto / HerramientaPower QueryPower Pivot Opciones de menú para transformaciones Cubren todas las transformaciones básicas necesarias No existen opciones de menú para transformaciones. Para crear columnas calculadas y/o medidas hay que escribir expresiones DAX Opciones de menú para propiedades Si, existen Curva de aprendizaje No hay que aprender M, conviene entenderlo y trabajar, en algún caso, desde el editor avanzado de código No se puede evitar, hay que entender DAX, que aunque puede recordar a Excel y/o al mundo relacional, es diferente y puede costar entender su comportamiento
##SQLSatMadrid Power Query vs Power Pivot Aspecto / HerramientaPower QueryPower Pivot Reusabilidad La consulta en M, puede ser copiada y pegada en otro libro Excel, ejecuta, modificada a mano, por ejemplo, es muy sencillo actualizar la ruta de un origen de datos No es posible “copiar” y “pegar” un modelo tabular creado en PowerPivot, lo que sí se puede hacer es consultar, con DAX, uno existente ResultadoConsultaModelo tabular Funcionalidad Definir la consulta para extraer datos, transformarlos y cargarlos en hojas Excel y/o Modelos de datos (Power BI Designer) Su funcionalidad es crear el Modelo tabular que será consumido, entre otros, por tablas y gráficos dinámicos, PV y PM
##SQLSatMadrid ¿Power Query vs Power Pivot? Lo mejor de ambos mundos Power Query para acceder, limpiar, y transformar datos que llegan desde todo tipo de origen Lenguaje M Power Pivot para modelar, clasificar columnas por categorías, crear jerarquías, sinónimos, crear cálculos Lenguaje DAX
##SQLSatMadrid Consulta vs Modelo Escenarios Normalizar o De-normalizar Funcionalidad de los campos en el modelo Jerarquías de usuario Obtención de agregados Detalles específicos dentro de los agregados Control de errores División por cero Errores en conversión de datos BI de tiempos Semanas
##SQLSatMadrid M - COMBINAR VS DAX - RELATED() Escenario: De-normalizar
##SQLSatMadrid Escenario Los campos Subcategoría y Categoría sólo sirven para describir el Producto El objetivo es analizar desde jerarquía Obtención de detalles por niveles
##SQLSatMadrid Combinar M vs RELATED() DAX Combinar RELATED()
##SQLSatMadrid M - AGRUPAR VS DAX - RELATEDTABLE() Escenario: Agregados
##SQLSatMadrid Escenario Escenario La columna CodCliente se repite tantas veces como haya comprado cada uno de los clientes Objetivos para cada cliente ¿Cuántas veces ha comprado? Agregado ¿Cuánto ha comprado? Agregado ¿Por cuánto compró la primera y última vez? Detalle
##SQLSatMadrid Agregados y Detalles Consulta DAX
##SQLSatMadrid M – Agrupar filas - Agregados Ordenar previamente por columna Fechas Agrupar Definir granularidad del grupo Seleccionar CodCliente Columnas agrupadas CantidadVeces – conteo de filas Ingresos – Suma de las Ventas DetalleVentas – todos las filas
##SQLSatMadrid M – Agrupar filas - Agregados Ver Resultados Ver detalles
##SQLSatMadrid M – Agrupar filas - Detalles Agregar dos líneas con el código para obtener el monto de la primera y última venta
##SQLSatMadrid M – Agrupar filas – Agregados y detalles Ver Resultado Ver detalles
##SQLSatMadrid DAX – Agregar con RELATEDTABLE() RELATEDTABLE() Sigue la relación 1:M y devuelve todas las filas que se relacionan con la fila actual Ver datos
##SQLSatMadrid M – FUNCIONES VARIAS VS DAX – FUNCIONES VARIAS Escenario: Control de errores
##SQLSatMadrid Control de errores Escenarios Error al convertir tipo de datos Error al realizar operaciones con “números” División Posibles soluciones Eliminar toda la fila, ¿cómo? No, no, cuidadín Curarse en salud preguntando por el error y sustituyendo… antes de Obtener información detallada del error Devolver el dato al origen para su corrección
##SQLSatMadrid M – Control de errores - Conversión Utilizar TRY…0 Ver resultado
##SQLSatMadrid M – Control de errores - División División por cero y otros errores Columna calculada en la consulta Resultados Problemas Si el numerador o denominador no es número Devuelve Error Si el numerador o denominador es NULL Devuelve NULL Si el denominador es cero: Infinity si el numerador es positivo -Infinity si el numerador es negativo 0/0 devuelve NaN
##SQLSatMadrid M – Control de errores - División Uso de función TRY (código M) Resultado, registro con detalles Expandir y ver detalles Resultado, registro con detalles
##SQLSatMadrid M – Control de errores - División Utilizar función TRY con sustitución Ver resultados
##SQLSatMadrid M – Control de errores - División Crear función - comprobar registros con errores Nueva consulta en blanco Crear función
##SQLSatMadrid M – Control de errores - División Ver función creada Comprobar calidad datos
##SQLSatMadrid DAX – ¿Control de calidad y tipos de datos? Para DAX ya es tarde Las funciones de control de errores en DAX son lentas, Muy muy dañinas para el rendimiento En el momento de modelado hay que saber ya de qué tipo es nuestro dato y garantizar su limpieza Columna ID, columna de relación No duplicados Tipo correcto Control de calidad de datos Consulta, consulta y otra vez consulta Código M - TRY
##SQLSatMadrid Control de errores en DAX Funciones DAX DIVIDE(), optimizado por el motor
##SQLSatMadrid M – FUNCIONES NATIVAS VS DAX – NO EXISTEN FUNCIONES Escenario: BI de tiempo - Semanas
##SQLSatMadrid Escenarios BI de tiempos Lo mejor de ambos mundos Crear las columnas desde Power Query, las necesarias Disfrutar de las funciones DAX de BI de tiempo ¿Y qué hay para semanas?
##SQLSatMadrid BI de tiempos – DAX Períodos anteriores y posteriores
##SQLSatMadrid Consulta – BI de tiempos Transformaciones disponibles para Semanas M
##SQLSatMadrid Consulta BI de Tiempo Devuelve Verdadero o Falso ¿Semana pasada? ¿Últimas n semanas? ¿Semana actual? ¿Próxima semana? Devuelve Fecha Suma y Resta semanas ¿Hay funciones para estos escenarios? Sí, hay funciones en lenguaje M nativo
##SQLSatMadrid Consulta BI de Tiempo - ¡¡¡ Ayuda !!! Nueva consulta en blanco Función #shared Devuelve funciones y enumeradores del lenguaje M Convertir a tabla Resultado
##SQLSatMadrid Consulta BI de Tiempo Obtener ayuda de la referencia del lenguaje Filtrar por “Week” Resultado Crear nuevas consultas (funciones)
##SQLSatMadrid Consulta BI de Tiempo Crear las funciones necesarias Dar respuesta a requerimientos Crear columnas que llamen a las funciones
##SQLSatMadrid Consulta BI de Tiempo Resultado Final
##SQLSatMadrid DAX – FUNCIONES ¿Olvidar DAX? De eso nada !!! DAX es nuestro mejor aliado a la hora de modelar
##SQLSatMadrid Escenarios Jerarquías no balanceadas: padre-hijo Identificación y uso de patrones Filtros avanzados Crear tablas, columnas calculadas y medidas
##SQLSatMadrid Variables en DAX Muy útil y poderoso Ventajas Legibilidad del código Menos repeticiones La variable garantiza que la evaluación de la expresión ocurre una sola vez Todos los tipos de datos están soportados en las variables
##SQLSatMadrid Uso de Columnas calculadas vs Medidas Columnas Filtros Segmentadores Es necesario tener el dato visible Análisis ABC o de Pareto Medidas Cálculos para implementar lógica BI de tiempos Cálculos de Porcentajes Ratios Agregaciones complejas
##SQLSatMadrid Cálculos DAX para modelos tabulares Columnas calculadas ¡¡ evitar las innecesarias !! Estas dos son innecesarias, crear medidas Medida o campo calculado Tabla calculada
##SQLSatMadrid DAX columnas vs medidas Analizar en Excel Contenido modelo Power BI vs Excel Replica exactamente el modelo Al panel valores sólo se pueden agregar las Medidas No reconoce las columnas numéricas como valores
##SQLSatMadrid ¿Preguntas? Ana María Bisbé York ¡¡ Gracias !!
##SQLSatMadrid Recursos Consultas y M Libro /ref=as_li_tl?ie=UTF8&camp=1789 &creative=390957&creativeASIN= &linkCode=as2&tag=powe &linkId=QHM62FCPUOXVRTIJ /ref=as_li_tl?ie=UTF8&camp=1789 &creative=390957&creativeASIN= &linkCode=as2&tag=powe &linkId=QHM62FCPUOXVRTIJ Comparativas entre herramientas 3iTk 3iTk query-vs-power-pivot/ query-vs-power-pivot/ Power Query y lenguaje M power-query power-query language-m language-m
##SQLSatMadrid Recursos Consultas y M Uso de Shared shared-keyword shared-keyword and-invoke-them-in-power-query and-invoke-them-in-power-query Trabajo con Semanas the-last-item-in-each-group the-last-item-in-each-group Y más… functions-from-parameterised-queries-in-power-bi/ functions-from-parameterised-queries-in-power-bi/
##SQLSatMadrid Recursos DAX Libro 835X/?tag=wwwsqlbicom0f X/?tag=wwwsqlbicom0f-21 BI Tiempos ek-based-time-intelligence-in- dax/ ek-based-time-intelligence-in- dax/ Patrones ases/ ases/
##SQLSatMadrid Recursos DAX Trabajo con semanas desde DAX intelligence-in-dax/ intelligence-in-dax/ Y más… sort-by-column-and-dax-calculations-that-use-the-all- function/ sort-by-column-and-dax-calculations-that-use-the-all- function/ columns-vs-measures-video-tutorial columns-vs-measures-video-tutorial intelligence-video-tutorial intelligence-video-tutorial hierarchies-dax-video-tutorial-data-analysis-expressions hierarchies-dax-video-tutorial-data-analysis-expressions
##SQLSatMadrid BIG Thanks to SQLSatMadrid Sponsors