Vous êtes sur la page 1sur 62

Para crear modelos analticos:

Power Query o Power Pivot?


M o DAX?

Ana Mara Bisb York


Consultora BI

http://amby.net/
anabisbe@amby.net
@ambynet

##SQLSatMadrid
BIG Thanks to SQLSatMadrid Sponsors

##SQLSatMadrid
4 Sponsor Sessions at 11:40

Dont 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

##SQLSatMadrid
4 |
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 adems de Power BI
MS Excel 2016

Mejoras en tabla dinmica


Nuevos grficos
Hojas de pronstico
Nuevas funciones Excel y DAX
Obtener y transformar vs Power Query
Mejoras en Power Pivot
Power View
Mapas 3D vs Power Map
Mejoras en colaboracin
Excel 2016 y PowerBI
Excel 2016 para Office 365

http://amby.net/2016/03/14/serie-ms-office-excel-2016/

##SQLSatMadrid
Excel vs Power BI

Power BI - Mucho ms que PowerBI Desktop

##SQLSatMadrid
Excel vs Power BI
Power BI acaba de cumplir un ao

https://powerbi.microsoft.com/es-es/blog/happy-first-birthday-to-power-bi/

##SQLSatMadrid
Excel vs Power BI - interfaz

Power BI Query Designer vs Power Query


Apenas se diferencian estticamente

##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
Tambin para consumir Power BI
Power BI es y ser en el futuro la herramienta ms
utilizada, con independencia del origen de datos para
crear modelos, publicar, compartir y consumir
modelos analticos
Se hermana con Excel, como origen y destino

##SQLSatMadrid
POWER QUERY VS
POWER PIVOT
##SQLSatMadrid
Power Query vs Power Pivot
Aspecto / Herramienta Power Query Power Pivot
Al reutilizar la conexin, s Al reutilizar la conexin, no
Identificacin de relaciones
importa las relaciones entre importa las relaciones entre
entre tablas en servidor SQL
tablas existentes en la base tablas existentes en la base
Server
de datos de origen de datos de origen
Importa los datos, creando
Extrae un subconjunto para una instantnea entre lo que
Extraccin de datos facilitar vista preliminar y hay fsicamente en Excel y lo
realizar las transformaciones que hay en el servidor en el
momento de la importacin
En Excel, al servidor de
En el servidor que
origen slo se accede
Ejecucin de corresponde al origen de
durante la importacin y el
transformaciones datos, siempre que sea
procesado o recarga de
posible
datos

##SQLSatMadrid
Power Query vs Power Pivot
Aspecto / Herramienta Power Query Power Pivot
Durante la creacin de la Al tener todos los datos
consulta al no tener almacenados en
Uso de memoria
cargados todos los datos, no memoria, puede provocar
es un problema problemas de rendimiento
Consumo del resultado No hay paso directo de PQ a
S, nativo
desde tabla dinmica (TD) TD
Consumo del resultado S, es origen de datos para
No
desde Power View (PV) PV
Consumo del resultado S, es origen de datos para
No
desde Power Map (PM) PM
Lenguaje de expresiones
Lenguaje para Lenguaje M para extraccin
DAX para crear columnas
transformaciones y transformacin
calculadas y medidas

##SQLSatMadrid
Power Query vs Power Pivot
Aspecto / Herramienta Power Query Power Pivot
No existen opciones de
men para transformaciones.
Cubren todas las
Opciones de men para Para crear columnas
transformaciones bsicas
transformaciones calculadas y/o medidas hay
necesarias
que escribir expresiones
DAX
Opciones de men para
Si, existen Si, existen
propiedades
No se puede evitar, hay que
No hay que aprender M,
entender DAX, que aunque
conviene entenderlo y
puede recordar a Excel y/o al
Curva de aprendizaje trabajar, en algn caso,
mundo relacional, es
desde el editor avanzado de
diferente y puede costar
cdigo
entender su comportamiento

##SQLSatMadrid
Power Query vs Power Pivot
Aspecto / Herramienta Power Query Power Pivot
La consulta en M, puede ser
No es posible copiar y
copiada y pegada en otro
pegar un modelo tabular
libro Excel, ejecuta,
creado en PowerPivot, lo
Reusabilidad modificada a mano, por
que s se puede hacer es
ejemplo, es muy sencillo
consultar, con DAX, uno
actualizar la ruta de un
existente
origen de datos
Resultado Consulta Modelo tabular
Definir la consulta para Su funcionalidad es crear el
extraer datos, transformarlos Modelo tabular que ser
Funcionalidad y cargarlos en hojas Excel consumido, entre otros, por
y/o Modelos de datos (Power tablas y grficos dinmicos,
BI Designer) 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
categoras, crear jerarquas, sinnimos, crear
clculos
Lenguaje DAX

http://amby.net/2015/03/04/serie-power-query-vs-power-pivot/

##SQLSatMadrid
Consulta vs Modelo

Escenarios
Normalizar o De-normalizar
Funcionalidad de los campos en el modelo
Jerarquas de usuario
Obtencin de agregados
Detalles especficos dentro de los agregados
Control de errores
Divisin por cero
Errores en conversin de datos
BI de tiempos
Semanas
##SQLSatMadrid
Escenario: De-normalizar

M - COMBINAR VS
DAX - RELATED()
##SQLSatMadrid
Escenario

Los campos Subcategora y Categora slo


sirven para describir el Producto
El objetivo es analizar desde jerarqua
Obtencin de detalles por niveles

##SQLSatMadrid
Combinar M vs RELATED() DAX

Combinar

RELATED()

##SQLSatMadrid
Escenario: Agregados

M - AGRUPAR VS
DAX - RELATEDTABLE()
##SQLSatMadrid
Escenario

Escenario
La columna CodCliente se repite tantas veces como
haya comprado cada uno de los clientes
Objetivos para cada cliente
Cuntas veces ha comprado?
Agregado
Cunto ha comprado?
Agregado
Por cunto 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 lneas con el cdigo 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 relacin 1:M y devuelve todas las filas que
se relacionan con la fila actual

Ver datos

##SQLSatMadrid
Escenario: Control de errores

M FUNCIONES VARIAS VS
DAX FUNCIONES VARIAS
##SQLSatMadrid
Control de errores

Escenarios
Error al convertir tipo de datos
Error al realizar operaciones con nmeros
Divisin
Posibles soluciones
Eliminar toda la fila, cmo? No, no, cuidadn
Curarse en salud preguntando por el error y
sustituyendo antes de
Obtener informacin detallada del error
Devolver el dato al origen para su correccin

##SQLSatMadrid
M Control de errores - Conversin

Utilizar TRY0

Ver resultado

##SQLSatMadrid
M Control de errores - Divisin
Divisin por cero y otros errores
Columna calculada en la consulta
Resultados
Problemas
Si el numerador o denominador no es
nmero
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 - Divisin

Uso de funcin TRY (cdigo M)

Resultado, registro con detalles


Expandir y ver detalles

Resultado, registro con detalles


##SQLSatMadrid
M Control de errores - Divisin

Utilizar funcin TRY con sustitucin

Ver resultados

##SQLSatMadrid
M Control de errores - Divisin

Crear funcin - comprobar registros con errores


Nueva consulta en blanco

Crear funcin

##SQLSatMadrid
M Control de errores - Divisin

Ver funcin 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 dainas 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 relacin
No duplicados
Tipo correcto
Control de calidad de datos
Consulta, consulta y otra vez consulta
Cdigo M - TRY
##SQLSatMadrid
Control de errores en DAX

Funciones DAX

DIVIDE(), optimizado por el motor

##SQLSatMadrid
Escenario: BI de tiempo - Semanas

M FUNCIONES NATIVAS VS
DAX NO EXISTEN FUNCIONES

##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
Perodos anteriores y posteriores

##SQLSatMadrid
Consulta BI de tiempos

Transformaciones disponibles para Semanas

##SQLSatMadrid
Consulta BI de Tiempo

Devuelve Verdadero o Falso


Semana pasada?
ltimas n semanas?
Semana actual?
Prxima 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


Funcin #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
Olvidar DAX?
De eso nada !!! DAX es nuestro mejor aliado a la hora de modelar

DAX FUNCIONES

##SQLSatMadrid
Escenarios

Jerarquas no balanceadas: padre-hijo


Identificacin y uso de patrones
Filtros avanzados
Crear tablas, columnas calculadas y medidas

##SQLSatMadrid
Variables en DAX

Muy til y poderoso


Ventajas
Legibilidad del cdigo
Menos repeticiones
La variable garantiza que la evaluacin de la
expresin ocurre una sola vez
Todos los tipos de datos estn soportados en las
variables

##SQLSatMadrid
Uso de Columnas calculadas vs Medidas

Columnas
Filtros
Segmentadores
Es necesario tener el dato visible
Anlisis ABC o de Pareto
Medidas
Clculos para implementar lgica
BI de tiempos
Clculos de Porcentajes
Ratios
Agregaciones complejas

##SQLSatMadrid
Clculos 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 slo se pueden
agregar las Medidas
No reconoce las columnas
numricas como valores

##SQLSatMadrid
Preguntas?

Ana Mara Bisb York


anabisbe@amby.net
http://amby.net/
@ambynet

Gracias !!

##SQLSatMadrid
Recursos Consultas y M
Libro
https://www.amazon.com/gp/product/1615
470395/ref=as_li_tl?ie=UTF8&camp=1789
&creative=390957&creativeASIN=161547
0395&linkCode=as2&tag=powe022-
20&linkId=QHM62FCPUOXVRTIJ
Comparativas entre herramientas
https://www.youtube.com/watch?v=clIjG9q
3iTk
http://amby.net/2015/03/04/serie-power-
query-vs-power-pivot/
Power Query y lenguaje M
http://radacad.com/tutorial-introduction-to-
power-query
http://radacad.com/power-query-formula-
language-m

##SQLSatMadrid
Recursos Consultas y M

Uso de Shared
http://radacad.com/power-query-library-of-functions-
shared-keyword
http://radacad.com/how-to-get-list-of-all-functions-
and-invoke-them-in-power-query
Trabajo con Semanas
http://radacad.com/grouping-in-power-query-getting-
the-last-item-in-each-group
Y ms
https://blog.crossjoin.co.uk/2016/05/15/creating-m-
functions-from-parameterised-queries-in-power-bi/

##SQLSatMadrid
Recursos DAX

Libro
http://www.amazon.es/dp/073569
835X/?tag=wwwsqlbicom0f-21
BI Tiempos
https://www.sqlbi.com/articles/we
ek-based-time-intelligence-in-
dax/
Patrones
http://www.daxpatterns.com/
http://www.daxpatterns.com/usec
ases/

##SQLSatMadrid
Recursos DAX
Trabajo con semanas desde DAX
https://www.sqlbi.com/articles/week-based-time-
intelligence-in-dax/
Y ms
https://blog.crossjoin.co.uk/2015/12/15/power-bi-desktop-
sort-by-column-and-dax-calculations-that-use-the-all-
function/
https://projectbotticelli.com/knowledge/dax-calculated-
columns-vs-measures-video-tutorial
https://projectbotticelli.com/knowledge/what-is-time-
intelligence-video-tutorial
https://projectbotticelli.com/knowledge/how-calculate-
hierarchies-dax-video-tutorial-data-analysis-expressions

##SQLSatMadrid
BIG Thanks to SQLSatMadrid Sponsors

##SQLSatMadrid

Vous aimerez peut-être aussi