2. La Inteligencia de Negocios (BI)
• Un conjunto de herramientas y técnicas
basadas en el procesamiento de datos, para
generar información útil para la toma de
decisiones
3. Big Picture del BI
Excel
csv
Data Warehouse /
Data Mart
Ventas
Contabilidad
RRHH
Sistemas
Transaccionales y
otras fuentes Repositorio
Analítico
Reportería
Distribución
de
Información
ETL Explotación
Data
Mining
OLAP
Datos Información Conocimiento
4. Big Picture del BI
Excel
csv
Data Warehouse /
Data Mart
Ventas
Contabilidad
RRHH
Sistemas
Transaccionales y
otras fuentes Repositorio
Analítico
Reportería
Distribución
de
Información
ETL Explotación
Data
Mining
OLAP
Datos Información Conocimiento
OPERACIÓN DEL
NEGOCIO
ANÁLISIS PARA TOMA DE DECISIONES
5. Cómo Agilizar el BI
• Proyectos de BI toman tiempo
– ¿Pero qué pasa cuando necesitamos más
agilidad analítica que la que el avance de los
proyectos nos permite?
– Queremos agilizar el proceso de generar
información
6. Cómo agilizar el BI
• Self Service BI
– Darle más herramientas a los usuarios de
negocio para desarrollar soluciones
– Principalmente de explotación
• Visualización y Distribución de información
7. ¿Que es Power BI?
“Power BI es una colección de servicios de Software, aplicaciones y
conectores que trabajan juntos para transformar sus fuentes de
datos no relacionadas en visualizaciones coherentes, absorbentes e
interactivas.“
Fuente: https://powerbi.microsoft.com/en-us/guided-learning/powerbi-learning-0-0-what-is-power-bi/
8. Qué es Power BI
• Power BI viene a atacar 2 objetivos:
– Visualización de información para toma de
decisiones
– Distribución de información
9. Ecosistema de Power BI
Power BI Desktop
Power BI Service (SaaS)
Power BI Mobile
10. Roles de aplicaciones
Importar los datos y crear reportes.
Publicar a Power BI service, donde se pueden crear
nuevas visualizaciones o bien construir Dashboards.
Compartir los Dashboards con otras personas,
especialmente personas que están en constante
movimiento.
Ver e interactuar con los Dashboards compartidos y
los reportes en Power BI Mobile.
Power BI Desktop
Power BI Service (SaaS)
Power BI Mobile
11. Visita Power BI
• Visualización de entornos de Power BI
Link de interés: https://powerbi.microsoft.com/en-us/partner-showcase/
13. Bloques de Construcción Básicos
Set de Datos (datasets)
Objetivo:
1. Exploración
2. “Self Service”
Características:
• Acceso a variadas fuentes de
información.
• Se pueden compartir a
usuarios de la misma
organización
14. Bloques de Construcción Básicos
Reportes
Power BI Service
Pin
Visión organizada de conceptos en común
Se pueden crear muchas visualizaciones
distribuidas en páginas
Uso: Creación de reportes estándar y
exploración local.
Visualización de reportes creados tanto
en PwBI Desktop como en SaaS.
Se puede agrupar reportes en grupos
de trabajos.
Uso: Compartir, distribuir reportes y
exploración “self-services”.
Visualización resumida de algunos elementos
creados en reportes y combinados con otros
tipos de recursos como imágenes y videos.
Información desplegadas en Baldosas (tiles)
Uso: Resumen ejecutivo de comportamientos
de los datos.
Dashboards
15. A quién está dirigido
• Usuarios de negocio
– Personas que usarían Excel
• Tablas dinámicas
• Gráficos dinámicos
• Gráficos en general
– No es necesario tener conocimientos técnicos de
desarrollo de aplicaciones ni de SQL
• Aunque de todas maneras servirá saber más.
– La herramienta permite desde lo simple a lo complejo
16. A quién está dirigido
• … desde lo simple a lo complejo…
– Lo simple:
• Un par de clicks y tenemos una visualización
– Lo complejo:
• Extracciones y transformaciones complejas de datos
con “Power Query Formula Language” (o más
conocido como “M”)
17. A quién está dirigido
• Extracciones y transformaciones complejas
de datos con “Power Query Formula
Language” (o más conocido como “M”)
let
Source = Csv.Document(File.Contents("D:tempPenta VidadatospoblacionPaises.txt"),[Delimiter="
", Columns=3, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"Promoted Headers" = Table.PromoteHeaders(Source),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Rank", type text}, {"Country
(or dependent territory)", type text}, {"Population", Int64.Type}})
in
#"Changed Type"
19. Orígenes de Datos
• Orígenes de datos variados.
• Divididos en 5 clasificaciones:
– Archivo
– Base de datos
– Servicios Azure
– Servicios Online
– Otros
20. Carga de datos
• Orígenes posibles
– Azure
• Azure SQL Server
• Azure SQL Datawarehouse
– La versión Azure de APS
• Cuentas de Storage
• Azure Marketplace
• DocumentDB (NoSQL)
• etc
21. Carga de datos
• Archivos de texto
– Deben estar bien estructurados
• Mismo número de elementos por cada fila
– Idealmente, sólo contenido tabular
• Sin encabezados como un título del archivo o algo así
• Encabezados de columnas son bienvenidos
22. Carga de datos
• Otras fuentes
– Odata feeds
– Web
• Páginas HTML con tablas
• Hadoop
– Lee archivos de HDFS
• Facebook
• Google Analytics
• Salesforce
• Y más
– ODBC
24. Orígenes SQL Server
Servidor (no browseable)
BD: Opcional. Browseable una vez establecida la
conexión
Modo de conexión:
Import: Copia los datos al modelo de datos en
Power BI
DirectQuery: Se trae la metadata del modelo,
pero no los datos. Al momento de necesitarlos,
los consulta.
SQL Statement: Consulta SQL específica
Si se ocupa, la entidad de datos creada tiene la estructura
de la consulta, no de las tablas subyacentes. Un join
genera 1 entidad en el modelo Power BI. También se
pueden invocar procedimientos almacenados
26. Modo de Obtención de datos
• Import
– Power BI genera extracción de datos y los almacena
en un modelo tabular optimizado para su
procesamiento en memoria.
– Se aplican transformaciones y filtros de los datos
extraídos (preparación).
– Los datos, la lógica relacional y la forma de reportes
son almacenados en un archivo .pbix
– Límite máximo de .pbix, 1 GB.
27. Import Data
• Orígenes soportados
– En general todos
– Excepciones:
• Cubos multidimensionales
• Modelos tabulares
28. Modo de Obtención de datos
• DirectQuery
– No se importan o copian datos hacia Power BI Desktop
– Se utiliza el motor de datos de origen para procesar
cada consulta.
– Se genera archivo .pbix con el modelo de datos tabular y
la definición de los reportes. Los datos se almacenan en
el origen.
• Cada interacción del usuario implica una consulta
– Orígenes de datos Multidimensional o tabular sólo
pueden usar este tipo de conexión.
29. DirectQuery
• Desde SQL Server
• Desde Analysis Services
• Desde SQL Datawarehouse
• SAP HANA
• BD Oracle
• BD Teradata
• Amazon Redshift (preview)
• Impala (preview)
• Snowflake (preview)
30. DirectQuery
• Beneficios:
– Permite construir visualizaciones sobre datasets
muy grandes que no se podrían importar
– Latencia de datos prácticamente cero. Siempre
se consultan datos frescos.
– La limitación de dataset de 1 GB no aplica a
Direct Query
31. DirectQuery
• Limitaciones
– Todas las tablas deben provenir de una sola BD
– No soporta Cross Filter bidireccional.
– Capacidades de Time intelligence no son soportadas
– Limitaciones en las expresiones DAX que se pueden utilizar
– Límite de 1 millón de filas leidas en una consulta
– El performance depende de la red y del performance del
origen de datos
– Limitaciones en transformaciones en el editor de consultas
• Cambio de tipo de dato, por ejemplo
32. Limpieza y Transformación de datos
• Editor de consultas
– Poderosa herramienta para dar forma y transformar datos.
– Cumple la función de Extracción, transformación y carga
(proceso ETL).
• Funciones destacables:
– Nuevo Origen.
– Tipo de dato.
– Filtro de fila
– Nueva Columna.
– Combinar Query.
34. Transformaciones
• Varias…
– De tipos de datos
• Reinterpretar un tipo de dato por otro
– Split
– Manipulaciones de fechas
• Duplicar fechas y generar partes de fecha
– Replace de valores
– Replace de errores
– Extract de texto
36. Merge y Append
• Merge
– Juntar 2 o más columnas en una
– Juntar 2 queries (como un join)
• Append
– Equivalente al Union de SQL , para queries
• Se juntan los filas de ambas queries, considerando
que
37. Add Column
• Agregar columna
– En dos modalidades
• La columna agregada es resultado de otra
transformación (merge, Parse, Extract, Format)
– Útil para que las columnas originales no desaparezcan con
dichas operaciones
• La columna agregada es definida explícitamente
38. Transformaciones
• Unpivot
– Convertir una tabla de doble entrada en una
tabla normal
• Un set de columnas se convierte en valores de una
columna que las viene a reemplazar
• Los valores de cada columna ahora se asocian a las
filas con los nombres de las columnas a las que
pertenecían
39. Transformaciones
• Pivot
– Convertir datos de una columna en nombres de
columnas nuevas
• Cada valor distinto se convierte en el título de una
columna nueva
• Por ej: Si la columna contenía 12 valores distintos (los
12 meses del año), el efecto del pivot es generar 12
columnas que reemplazan a la seleccionada
40. Transformaciones
• Pivot
– De las columnas que no son pivoteadas, se debe
seleccionar una
• A esta se le aplicará una función de agregación a
gusto del cliente.
• Los valores de la(s) otra(s) columnas(s) no pivoteadas
serán criterios de agrupación, al igual que los valores
de la pivoteada
43. Ejercicio Pivot y Unpivot
• Despivoteando y pivoteando
datos de la UF
– Crear consulta a URL del SII
– Verificar y modificar tipos de dato
en caso de ser necesario
– En editor de consultas seleccionar
todas las columnas con nombre
de mes
– Menú transform Unpivot
columns
– Renombrar columna a “Mes”
– Disfrutar y meditar sobre lo
logrado
– Duplicar la consulta
– En el duplicado eliminar columna
del día
– Crear columna nueva con valor =
“Promedio UF”
– Seleccionar columna del Mes
– Transform Pivot Column
• Values Column columna del
monto
• Advanced Options Average
– Disfrutar y meditar sobre lo
logrado
44. Ejercicio Pivot y Unpivot
• ¿Qué pasó al
unpivotear los meses?
• ¿Qué pasó al pivotear
los meses en la
segunda tabla?
45. Transformaciones
• Para cálculos complejos
– Hacerlos sobre el modelo de datos (posterior al
editor de queries)
• Se puede utilizar lenguaje DAX
49. Cardinalidad de relaciones
Many to One
One to One
• Indica el número máximo de
entidades relacionadas por cada lado
de la relación
• Esto determina cómo Power BI
vinculará los datos de las tablas
50. Relación circular
• Cuando hay muchos
caminos para resolver una
consulta
• Es necesario realizar un
“quiebre” en la relación
Tabla 1 Tabla 2
Tabla 3
52. Relación Circular
Crear Tabla “Clon”
Se crea una réplica de la tabla que menos afecte
al modelo
Auto Dueño
Tiene
Ciudad Ciudad
(clon)
53. Desarrollo recomendado
1. Importar datos para crear tablas
2. Definir relaciones entre tablas
• Poderoso! Puedo relacionar datos de orígenes diversos
3. Mejorar el diseño del modelo de datos con jerarquías,
columnas calculadas y KPIs
4. Preparar el modelo de datos para que sea usable por
usuarios
5. Producir reportes basados en el modelo de datos
6. Publicar el reporte al servicio Power BI
54. Mejorando el Modelo de Datos
• Un buen modelo de datos debería
– Tener relaciones creadas
– Tener jerarquías relevantes
– Tener escondidos los campos que no tienen
utilidad analítica
– Tener escondidas tablas que no tienen utilidad
analítica
55. Mejorando el Modelo de datos
• Jerarquías
– Asociaciones de columnas de una tabla, que
representan cadenas de relaciones 1:n entre ellas
– Por ejemplo:
• Categoría Sub Categoría Producto
• Año Quarter Mes Fecha
56. Mejorando el Modelo de datos
• Jerarquías
– Visualizaciones que pueden hacer drill down
aprovechan las jerarquías
• Gráficos de barra, de línea
– Drill Down
• Navegación hacia niveles crecientes de detalle
57. Mejorando el Modelo de datos
• Creando jerarquías
– Condición necesaria:
• Las columnas qe participen deben estar ubicadas en
la misma tabla
58. Mejorando el Modelo de datos
• Creando jerarquías
– Tenemos 3 tablas relacionadas
con columnas que forman una
jerarquía:
• EnglishProductName
• EnglishProductSubcategoryname
• EnglishProductCateboryName
– ¿qué hacemos en este caso
entonces?
59. Invocamos el poder de DAX
• Creamos columnas calculadas que traigan
los valores a la tabla que necesitamos
– A la tabla DimProduct nos traemos:
• EnglishProductSubcategoryname
• EnglishProductCategoryName
60. Invocamos el poder de DAX
• Creamos columnas calculadas que traigan
los valores a la tabla que necesitamos
– A la tabla DimProduct nos traemos:
• EnglishProductSubcategoryname
• EnglishProductCategoryName
62. Invocamos el poder de DAX
• Columna “catprod”:
SubCat =
RELATED ( DimProductSubcategory[EnglishProductSubcategoryName] )
Categoria =
RELATED ( DimProductCategory[EnglishProductCategoryName] )
63. Invocamos el poder de DAX
• ¿Intrigad@?
– Todo esto y mucho más en una clase exclusiva
para hablar de DAX
64. Mejorando el Modelo de datos
• Creando jerarquías
– Seleccionamos la columna de
mayor nivel jerárquico
• En este caso, Categoria
– Hacemos click derecho y “New
Hierarchy”
65. Mejorando el Modelo de datos
• Creando jerarquías
– Arrastramos los demás campos
en orden jerárquico a la jerarquía
66. Mejorando el Modelo de Datos
• Eliminar columnas y tablas que no tengan
valor analítico
– Un monto, una cantidad, un ratio, etc. Tienen
valor analítico
– Una llave (un rut, un ID, número de boleta,
folio,…) (generalmente) no tienen valor
analítico
67. Mejorando el Modelo de Datos
• Si no tiene valor analítico
– Igual puede tener valor para la construcción del
modelo.
• Llaves participan en relaciones!!
– ¿Entonces?
• No podemos eliminarlas, pero sí ocultarlas del usuario
68. Mejorando el Modelo de Datos
• El usuario debe tener a la vista sólo lo que le
reporta valor directamente
– Escondemos columnas y tablas.
• Así logramos un modelo “limpio”.
69. Mejorando el Modelo de Datos
• Sobre las relaciones, 2
temas importantes:
– Cardinalidad
– Cross filtering bien
definido
70. Mejorando el Modelo de Datos
• Cardinalidad de relación
– Concepto análogo al de un modelo de BD relacional
• Power BI lo deduce de las restricciones de integridad de
llave foránea en las BD
• Power BI se da cuenta si nos estamos equivocando al
definir la cardinalidad
– Tabla de ventas tiene llave foránea de IdVendedor
– Tabla de vendedores tiene llave primaria IdVendedor
Relación no puede ser 1:1 entre ambas.
71. Mejorando el Modelo de Datos
• Cross Filter Direction
– Indica la dirección en que
se propaga el efecto de
aplicar un filtro
– Ej:
• Si filtro productos de
DimProduct, se filtran
ventas en FactOnlineSales.
• ¿Pero quiero que pase lo
contrario?
72. Mejorando el Modelo de Datos
• Cross Filtering: 2
posibilidades
– Single
• El efecto del filtrado se
difunde desde tabla en
lado 1 a tabla del lado n
de la relación
– Both
• El efecto del filtrado se
difunde en ambas
direcciones.
74. Ejercicio Columnas Calculadas vs
Medidas
• Columnas calculadas
versus Medidas
– Solución a pregunta:
– Crear una medida:
MargenBrutoPctM := SUM (Ventas[MargenBruto]) /
SUM(ventas[SalesAmount])
– Reflexione
• Qué diferencias hay
entre el MargenBrutoPct
como columna calculada
y el MargenBrutoPctM
como medida?
75. DAX
• Cuándo usar columnas
calculadas
– Para definir expresiones
estrictamente atadas a la fila
para la cual se calculan
• Ej: Precio * Cantidad
– Categorizar texto o números
• Tramificaciones
– Usar los resultados como
valores no agregados, o usar
el resultado como condición
de filtro en consultas DAX
• Cuándo usar medidas
– Cuando se necesita desplegar
cálculos que reflejen los filtros
de usuario o los filtros
definidos por la visualización
• Ej: En tabla matriz, una celda de
datos está gobernada por el
filtro dado por la fila y la
columna a la que pertenecen
• Ej: Los datos de un mapa están
filtrados por el área geográfica
en donde están siendo
desplegados
76. DAX
• Errores
– De Conversión
– De Operaciones Aritméticas
– Valores vacíos o faltantes
78. DAX
• Errores
– De Operaciones Aritméticas
• 10 / 0 Infinity
• 0 / 0 NaN (Not a Number)
– Ojo que Infinity y NaN no son errores, sino que valores
especiales
SQRT( -1 )
79. DAX
• Errores
– Valores vacíos o faltantes
• No es en sí error, pero indicador de una situación que
podría resultar en retornos inesperados o errores de
cálculo.
• DAX los maneja utilizando el valor BLANK, el cual
podemos obtener invocando BLANK()
– Pruébelo creando una columna calculada con BLANK()
81. DAX
• BLANK()
– En sí mismo es inútil
• Pero es útil cuando queremos retornar un vacío en
vez de, p. ej., un 0:
IF (
venta[UnitPriceDiscountPct] = 0;
BLANK();
venta[UnitPriceDiscountPct] * venta[SalesAmount]
)
82. DAX
• Interceptando errores
– Funciones
• ISERROR() Retorna TRUE si la expresión es de error
• IFERROR() Es un IF (ISERROR() … ) abreviado
• ISBLANK() Retorna TRUE si la expresión resulta en un
valor vacío (Valor BLANK)
83. DAX
• Condicionales
– Como en Excel, las instrucciones condicionales
están disponibles como funciones.
– IF ( 20 < 30, "second", "third" ) = "second"
– IF ( 20 < 15, "second", BLANK() ) = BLANK()
– IF ( 20 < 15, "second" ) = BLANK()
84. DAX
• Condicionales (IF)
IF ( Customer[Status] = "A", "Platinum",
IF ( Customer[Status] = "B", "Gold",
IF ( Customer[Status] = "C", "Silver",
IF ( Customer[Status] = "D", "White", "None" )
)
)
)
87. DAX
• Funciones de agregación
MIN, MAX, SUM, AVERAGE, STDEV, VAR (TÍPICAS)
COUNT Cuenta filas para columnas numéricas
COUNTA Cuenta filas con cualquier tipo de dato
COUNTBLANK Cuenta filas con BLANK
COUNTROWS Retorna el número de filas de una tabla
DISTINCTCOUNT Cuenta valores distintos en una columna
88. DAX
• Funciones con sufijo X
– SUMX, MINX, MAXX, AVERAGEX, PRODUCTX,
COUNTX, COUNTAX, CONCATENATEX
– Cómo funcionan
FUNCIONX(Tabla, Expresión)
Para cada fila de “Tabla”, se calcula la
“Expresión” y se aplica la agregación
correspondiente.
89. DAX
• Expresiones de tabla
– En el fondo ,tablas… reales o calculadas
• Ej:
[Monto Venta] =
SUMX (
venta,
venta[OrderQuantity] * venta[UnitPrice]
)
Aquí venta es una expresión de tabla (la
más simple posible, que es nombrar la
tabla misma)
90. DAX
• Funciones de Tabla
– Retornan una tabla
– FILTER(): Recibe una tabla y retorna una tabla
filtrada de acuerdo a la expresión
FILTER( <tabla>, <condición>)
91. DAX
• FILTER()
– Ejemplo:
[MontoGrandesVentas] =
SUMX (
FILTER(
venta
venta[OrderQuantity] > 5
),
venta[OrderQuantity] * venta[UnitPrice]
)
Aquí todo lo que está en rojo es una
expresión de tabla retornada por FILTER(), la
cual toma la tabla venta y la devuelve
filtrada de acuerdo a la condición
94. Opciones en Visualización
Campos:
Aquí se arrastran las columnas
que serán utilizadas.
Formato:
Aquí se escoge el tamaño de
letra, color, posición.
Analytics:
Lineas de tendencia,
proyecciones, lineas de
promedio y otros valores de
interés.
96. Construcción de Visualizaciones
Valor
Punto de Comparación
La mayor parte de las
visualizaciones se
compone de dos
elementos principales
Valor: El tamaño de las
barras, o los angúlos que
usa un gráfico de torta
Comparación: Categorías
en la cual se dividen
estos valores (Los meses
en el caso de la
izquierda)
97. Otros Detalles Interesantes.
Es possible importar
visuales personalizadas a
Power BI, descargandolas
de la Office Store
Cuando en el gráfico
de línea se tiene un
solo dato, es possible
agregar una línea de
tendencia en la
opción de analytics.
99. Power BI en la nube
• Para distribuir la
información Power BI
Desktop no es efectivo
• Lo que haremos es
Publicar nuestros
reportes
100. Power BI en la nube
• Si no lo hemos hecho
antes, debemos
identificarnos con una
cuenta Power BI
– Es gratuito crear una
101. Tipos de cuenta Power BI
• Power BI gratuita
– Gratis ☺
– 1 GB de datos como
máximo
• Power BI Pro
– Costo mensual (aprox
10 USD)
– 10 GB datos como
máximo
– Conexión a datos on
premise con Power BI
Gateway
102. Distintos objetos
• Datasets
– Representan los datos de origen de un reporte
• Reportes
– Son nuestras creaciones
– Publicados desde Power BI Desktop
– Editables en la nube!
– No se pueden compartir directamente
• Dashboards
– Son visualizaciones de alto nivel
• Tienen elementos de uno o más reportes
• Se pueden compartir con otros usuarios, lo que
implícitamente permite compartir reportes.
103. Dashboards (paneles)
• Elementos
1. Barra de navegación
2. Panel con iconos
3. Cuadro de pregunta de
Preguntas y respuestas
4. Botones de ayuda y comentarios
5. Título del panel
6. Iniciador de aplicaciones de
Office 365
7. Botones de la página principal de
Power BI
8. Acciones adicionales del panel
104. Q&A
• En un dashboard podemos visualizaciones
creadas a partir de preguntas
– En pseudo-inglés
105. Q&A
• En un dashboard podemos visualizaciones
creadas a partir de preguntas
– En pseudo-inglés
107. Accediendo a datos locales
• Armé un reporte conectado a datos de
nuestra base de datos
– Cuando lo publique ¿podré actualizar los datos
o tendré que publicarlo nuevamente cada vez
que necesite actualizarlo?
– ¡¡¡Power BI puede acceder a datos dentro de mi
red!!!
108. Accediendo a datos locales
• La solución: On premises data Gateway
– Un puente que permite transferencia rápida y
segura (encriptada) de datos entre una fuente
local y servicios como Power BI
– (Sólo una cuenta Pro puede configurarlo)
109. Power BI Gateway
Fuentes de datos
corporativos
El Gateway se instala
localmente y envía los
datos a la nube a través de
canales seguros
encriptados
Credenciales de
acceso son
almacenadas de
manera segura
localmente